mirror of
https://github.com/pocoproject/poco.git
synced 2024-12-13 10:32:57 +01:00
* As of C++11, std::swap is noexcept. #2386 * fix(Any): remove throw on swap * fix(Any): As of C++11, std::swap is noexcept. #2386 * fix(Any): make size const #2386 * fix(SimpleRowFormatter): clang won't compile noexcept #2386 * a couple of arm fixes * fix(Any): As of C++11, std::swap is noexcept. #2386 * fix(AnyTest): local() for POCO_NO_SOO# 2386 * test(RSACipher): RSA encryption without private key #2367 * chore(RSACipherTest): delete ciphers #2367
This commit is contained in:
parent
c37780726d
commit
168f1eb6e2
@ -84,7 +84,7 @@ public:
|
||||
X509Certificate& operator = (X509Certificate&& cert) noexcept;
|
||||
/// Move assignment.
|
||||
|
||||
void swap(X509Certificate& cert);
|
||||
void swap(X509Certificate& cert) noexcept;
|
||||
/// Exchanges the certificate with another one.
|
||||
|
||||
~X509Certificate();
|
||||
|
@ -121,7 +121,7 @@ X509Certificate& X509Certificate::operator = (X509Certificate&& cert) noexcept
|
||||
}
|
||||
|
||||
|
||||
void X509Certificate::swap(X509Certificate& cert)
|
||||
void X509Certificate::swap(X509Certificate& cert) noexcept
|
||||
{
|
||||
using std::swap;
|
||||
swap(cert._issuerName, _issuerName);
|
||||
|
@ -15,7 +15,10 @@
|
||||
#include "Poco/Crypto/CipherFactory.h"
|
||||
#include "Poco/Crypto/Cipher.h"
|
||||
#include "Poco/Crypto/X509Certificate.h"
|
||||
#include "Poco/Path.h"
|
||||
#include "Poco/File.h"
|
||||
#include <sstream>
|
||||
#include <fstream>
|
||||
|
||||
|
||||
using namespace Poco::Crypto;
|
||||
@ -203,6 +206,33 @@ void RSATest::testRSACipher()
|
||||
std::string dec = pCipher->decryptString(enc);
|
||||
assertTrue (dec == val);
|
||||
}
|
||||
|
||||
RSAKey key(RSAKey::KL_1024, RSAKey::EXP_SMALL);
|
||||
std::string pubKeyFile = Poco::Path::temp() + "poco.key.pub";
|
||||
std::string privKeyFile = Poco::Path::temp() + "poco.key.priv";
|
||||
|
||||
if (Poco::File(pubKeyFile).exists()) Poco::File(pubKeyFile).remove();
|
||||
if (Poco::File(privKeyFile).exists()) Poco::File(privKeyFile).remove();
|
||||
std::ofstream strPub(pubKeyFile);
|
||||
std::ofstream strPriv(privKeyFile);
|
||||
key.save(&strPub, &strPriv);
|
||||
strPub.close();
|
||||
strPriv.close();
|
||||
|
||||
Poco::Crypto::RSAKey encryptKey(pubKeyFile);
|
||||
Poco::Crypto::RSAKey decryptKey(pubKeyFile, privKeyFile);
|
||||
|
||||
Poco::Crypto::CipherFactory factory;
|
||||
auto iengine = factory.createCipher(encryptKey);
|
||||
auto oengine = factory.createCipher(decryptKey);
|
||||
|
||||
std::string ss = "test_str";
|
||||
auto enc = iengine->encryptString(ss);
|
||||
auto dec = oengine->decryptString(enc);
|
||||
assertEqual (ss, dec);
|
||||
|
||||
delete iengine;
|
||||
delete oengine;
|
||||
}
|
||||
|
||||
|
||||
|
@ -90,7 +90,7 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
void swap(Column& other)
|
||||
void swap(Column& other) noexcept
|
||||
/// Swaps the column with another one.
|
||||
{
|
||||
using std::swap;
|
||||
@ -237,7 +237,7 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
void swap(Column& other)
|
||||
void swap(Column& other) noexcept
|
||||
/// Swaps the column with another one.
|
||||
{
|
||||
using std::swap;
|
||||
@ -378,7 +378,7 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
void swap(Column& other)
|
||||
void swap(Column& other) noexcept
|
||||
/// Swaps the column with another one.
|
||||
{
|
||||
using std::swap;
|
||||
@ -492,7 +492,7 @@ private:
|
||||
|
||||
|
||||
template <typename C>
|
||||
inline void swap(Column<C>& c1, Column<C>& c2)
|
||||
inline void swap(Column<C>& c1, Column<C>& c2) noexcept
|
||||
{
|
||||
c1.swap(c2);
|
||||
}
|
||||
|
@ -109,7 +109,7 @@ public:
|
||||
return *_pContent != *other._pContent;
|
||||
}
|
||||
|
||||
void swap(LOB& other)
|
||||
void swap(LOB& other) noexcept
|
||||
/// Swaps the LOB with another one.
|
||||
{
|
||||
using std::swap;
|
||||
@ -228,7 +228,7 @@ using JSON = std::string;
|
||||
//
|
||||
|
||||
template <typename T>
|
||||
inline void swap(LOB<T>& b1, LOB<T>& b2)
|
||||
inline void swap(LOB<T>& b1, LOB<T>& b2) noexcept
|
||||
{
|
||||
b1.swap(b2);
|
||||
}
|
||||
|
@ -78,7 +78,7 @@ public:
|
||||
MetaColumn& operator = (MetaColumn&& other) noexcept;
|
||||
/// Assignment operator.
|
||||
|
||||
void swap(MetaColumn& other);
|
||||
void swap(MetaColumn& other) noexcept;
|
||||
/// Swaps the contents with another instance.
|
||||
|
||||
~MetaColumn();
|
||||
|
@ -98,7 +98,7 @@ public:
|
||||
/// Returns a copy the RowIterator backed by diff positions.
|
||||
/// Throws RangeException if diff is larger than current position.
|
||||
|
||||
void swap(RowIterator& other);
|
||||
void swap(RowIterator& other) noexcept;
|
||||
/// Swaps the RowIterator with another one.
|
||||
|
||||
private:
|
||||
|
@ -49,7 +49,7 @@ public:
|
||||
~SimpleRowFormatter();
|
||||
/// Destroys the SimpleRowFormatter.
|
||||
|
||||
void swap(SimpleRowFormatter& other);
|
||||
void swap(SimpleRowFormatter& other) noexcept;
|
||||
/// Swaps the row formatter with another one.
|
||||
|
||||
std::string& formatNames(const NameVecPtr pNames, std::string& formattedNames);
|
||||
@ -109,9 +109,13 @@ inline std::streamsize SimpleRowFormatter::getSpacing() const
|
||||
|
||||
namespace std
|
||||
{
|
||||
// Note: for an unknown reason, clang refuses to compile this function as noexcept
|
||||
template<>
|
||||
inline void swap<Poco::Data::SimpleRowFormatter>(Poco::Data::SimpleRowFormatter& s1,
|
||||
inline void swap<Poco::Data::SimpleRowFormatter>(Poco::Data::SimpleRowFormatter& s1,
|
||||
Poco::Data::SimpleRowFormatter& s2)
|
||||
#ifndef POCO_COMPILER_CLANG
|
||||
noexcept
|
||||
#endif
|
||||
/// Full template specalization of std:::swap for SimpleRowFormatter
|
||||
{
|
||||
s1.swap(s2);
|
||||
|
@ -125,7 +125,7 @@ public:
|
||||
Statement& operator = (Statement&& stmt) noexcept;
|
||||
/// Move assignment.
|
||||
|
||||
void swap(Statement& other);
|
||||
void swap(Statement& other) noexcept;
|
||||
/// Swaps the statement with another one.
|
||||
|
||||
template <typename T>
|
||||
@ -814,7 +814,7 @@ inline const RowFormatter::Ptr& Statement::getRowFormatter()
|
||||
}
|
||||
|
||||
|
||||
inline void swap(Statement& s1, Statement& s2)
|
||||
inline void swap(Statement& s1, Statement& s2) noexcept
|
||||
{
|
||||
s1.swap(s2);
|
||||
}
|
||||
|
@ -53,7 +53,7 @@ public:
|
||||
StatementCreator& operator = (StatementCreator&& other) noexcept;
|
||||
/// Assignment operator.
|
||||
|
||||
void swap(StatementCreator& other);
|
||||
void swap(StatementCreator& other) noexcept;
|
||||
/// Swaps the StatementCreator with another one.
|
||||
|
||||
template <typename T>
|
||||
|
@ -92,7 +92,7 @@ MetaColumn& MetaColumn::operator = (MetaColumn&& other) noexcept
|
||||
}
|
||||
|
||||
|
||||
void MetaColumn::swap(MetaColumn& other)
|
||||
void MetaColumn::swap(MetaColumn& other) noexcept
|
||||
{
|
||||
std::swap(_name, other._name);
|
||||
std::swap(_length, other._length);
|
||||
|
@ -67,7 +67,7 @@ RowIterator& RowIterator::operator = (RowIterator&& other) noexcept
|
||||
}
|
||||
|
||||
|
||||
void RowIterator::swap(RowIterator& other)
|
||||
void RowIterator::swap(RowIterator& other) noexcept
|
||||
{
|
||||
using std::swap;
|
||||
|
||||
|
@ -49,7 +49,7 @@ SimpleRowFormatter& SimpleRowFormatter::operator = (const SimpleRowFormatter& ro
|
||||
}
|
||||
|
||||
|
||||
void SimpleRowFormatter::swap(SimpleRowFormatter& other)
|
||||
void SimpleRowFormatter::swap(SimpleRowFormatter& other) noexcept
|
||||
{
|
||||
using std::swap;
|
||||
|
||||
|
@ -89,7 +89,7 @@ Statement& Statement::operator = (Statement&& stmt) noexcept
|
||||
return *this;
|
||||
}
|
||||
|
||||
void Statement::swap(Statement& other)
|
||||
void Statement::swap(Statement& other) noexcept
|
||||
{
|
||||
using std::swap;
|
||||
|
||||
|
@ -57,7 +57,7 @@ StatementCreator& StatementCreator::operator = (StatementCreator&& other) noexce
|
||||
return *this;
|
||||
}
|
||||
|
||||
void StatementCreator::swap(StatementCreator& other)
|
||||
void StatementCreator::swap(StatementCreator& other) noexcept
|
||||
{
|
||||
using std::swap;
|
||||
swap(_ptrImpl, other._ptrImpl);
|
||||
|
@ -106,7 +106,7 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
void swap(ActiveMethod& other)
|
||||
void swap(ActiveMethod& other) noexcept
|
||||
{
|
||||
std::swap(_pOwner, other._pOwner);
|
||||
std::swap(_method, other._method);
|
||||
@ -198,7 +198,7 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
void swap(ActiveMethod& other)
|
||||
void swap(ActiveMethod& other) noexcept
|
||||
{
|
||||
std::swap(_pOwner, other._pOwner);
|
||||
std::swap(_method, other._method);
|
||||
|
@ -269,7 +269,7 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
void swap(ActiveResult& result)
|
||||
void swap(ActiveResult& result) noexcept
|
||||
{
|
||||
using std::swap;
|
||||
swap(_pHolder, result._pHolder);
|
||||
@ -407,7 +407,7 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
void swap(ActiveResult& result)
|
||||
void swap(ActiveResult& result) noexcept
|
||||
{
|
||||
using std::swap;
|
||||
swap(_pHolder, result._pHolder);
|
||||
|
@ -23,6 +23,9 @@
|
||||
#include <cstring>
|
||||
|
||||
|
||||
#define poco_any_assert(cond) do { if (!(cond)) std::abort(); } while (0)
|
||||
|
||||
|
||||
namespace Poco {
|
||||
|
||||
class Any;
|
||||
@ -56,6 +59,9 @@ union Placeholder
|
||||
/// (i.e. there will be no heap-allocation). The local buffer size is one byte
|
||||
/// larger - [POCO_SMALL_OBJECT_SIZE + 1], additional byte value indicating
|
||||
/// where the object was allocated (0 => heap, 1 => local).
|
||||
///
|
||||
/// Important: for SOO builds, only same-type (or trivial both-empty no-op)
|
||||
/// swap operation is allowed.
|
||||
{
|
||||
public:
|
||||
struct Size
|
||||
@ -80,12 +86,10 @@ public:
|
||||
destruct(false);
|
||||
}
|
||||
|
||||
void swap(Placeholder& other)
|
||||
void swap(Placeholder& other) noexcept
|
||||
{
|
||||
if (!isLocal() && !other.isLocal())
|
||||
std::swap(pHolder, other.pHolder);
|
||||
else
|
||||
throw Poco::InvalidAccessException("Placeholder::swap()");
|
||||
if (!isEmpty() || !other.isEmpty())
|
||||
std::swap(holder, other.holder);
|
||||
}
|
||||
|
||||
void erase()
|
||||
@ -167,7 +171,7 @@ private:
|
||||
delete pHolder;
|
||||
}
|
||||
|
||||
void swap(Placeholder& other)
|
||||
void swap(Placeholder& other) noexcept
|
||||
{
|
||||
std::swap(pHolder, other.pHolder);
|
||||
}
|
||||
@ -207,7 +211,7 @@ private:
|
||||
|
||||
|
||||
class Any
|
||||
/// An Any class represents a general type and is capable of storing any type, supporting type-safe extraction
|
||||
/// Any class represents a general type and is capable of storing any type, supporting type-safe extraction
|
||||
/// of the internally stored data.
|
||||
///
|
||||
/// Code taken from the Boost 1.33.1 library. Original copyright by Kevlin Henney. Modified for Poco
|
||||
@ -247,12 +251,11 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
Any& swap(Any& other)
|
||||
Any& swap(Any& other) noexcept
|
||||
/// Swaps the content of the two Anys.
|
||||
///
|
||||
/// When small object optimization is enabled, swap only
|
||||
/// has no-throw guarantee when both (*this and other)
|
||||
/// objects are allocated on the heap.
|
||||
/// If an exception occurs during swapping, the program
|
||||
/// execution is aborted.
|
||||
{
|
||||
if (this == &other) return *this;
|
||||
|
||||
@ -262,16 +265,15 @@ public:
|
||||
}
|
||||
else
|
||||
{
|
||||
Any tmp(*this);
|
||||
try
|
||||
{
|
||||
Any tmp(*this);
|
||||
construct(other);
|
||||
other = tmp;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
construct(tmp);
|
||||
throw;
|
||||
std::abort();
|
||||
}
|
||||
}
|
||||
|
||||
@ -307,7 +309,7 @@ public:
|
||||
return _valueHolder.isEmpty();
|
||||
}
|
||||
|
||||
const std::type_info & type() const
|
||||
const std::type_info& type() const
|
||||
/// Returns the type information of the stored content.
|
||||
/// If the Any is empty typeid(void) is returned.
|
||||
/// It is recommended to always query an Any for its type info before
|
||||
@ -316,6 +318,14 @@ public:
|
||||
return empty() ? typeid(void) : content()->type();
|
||||
}
|
||||
|
||||
bool local() const
|
||||
/// Returns true if data is held locally (ie. not allocated on the heap).
|
||||
/// If POCO_NO_SOO is defined, it always return false.
|
||||
/// The main purpose of this function is use for testing.
|
||||
{
|
||||
return _valueHolder.isLocal();
|
||||
}
|
||||
|
||||
private:
|
||||
class ValueHolder
|
||||
{
|
||||
@ -334,7 +344,7 @@ private:
|
||||
{
|
||||
}
|
||||
|
||||
virtual const std::type_info & type() const
|
||||
virtual const std::type_info& type() const
|
||||
{
|
||||
return typeid(ValueType);
|
||||
}
|
||||
|
@ -159,7 +159,7 @@ public:
|
||||
|
||||
enum { static_size = N };
|
||||
|
||||
void swap (Array<T,N>& y)
|
||||
void swap (Array<T,N>& y) noexcept
|
||||
{
|
||||
std::swap_ranges(begin(),end(),y.begin());
|
||||
}
|
||||
@ -246,7 +246,7 @@ bool operator>= (const Array<T,N>& x, const Array<T,N>& y)
|
||||
|
||||
|
||||
template<class T, std::size_t N>
|
||||
inline void swap (Array<T,N>& x, Array<T,N>& y)
|
||||
inline void swap (Array<T,N>& x, Array<T,N>& y) noexcept
|
||||
/// global swap()
|
||||
{
|
||||
x.swap(y);
|
||||
|
@ -194,7 +194,7 @@ public:
|
||||
return assign<Other>(ptr);
|
||||
}
|
||||
|
||||
void swap(AutoPtr& ptr)
|
||||
void swap(AutoPtr& ptr) noexcept
|
||||
{
|
||||
std::swap(_ptr, ptr._ptr);
|
||||
}
|
||||
@ -398,7 +398,7 @@ private:
|
||||
|
||||
|
||||
template <class C>
|
||||
inline void swap(AutoPtr<C>& p1, AutoPtr<C>& p2)
|
||||
inline void swap(AutoPtr<C>& p1, AutoPtr<C>& p2) noexcept
|
||||
{
|
||||
p1.swap(p2);
|
||||
}
|
||||
|
@ -248,7 +248,7 @@ public:
|
||||
return _capacity * sizeof(T);
|
||||
}
|
||||
|
||||
void swap(Buffer& other)
|
||||
void swap(Buffer& other) noexcept
|
||||
/// Swaps the buffer with another one.
|
||||
{
|
||||
using std::swap;
|
||||
|
@ -67,7 +67,7 @@ public:
|
||||
Clock& operator = (const Clock& other);
|
||||
Clock& operator = (ClockVal tv);
|
||||
|
||||
void swap(Clock& clock);
|
||||
void swap(Clock& clock) noexcept;
|
||||
/// Swaps the Clock with another one.
|
||||
|
||||
void update();
|
||||
@ -220,7 +220,7 @@ inline Clock::ClockDiff Clock::resolution()
|
||||
}
|
||||
|
||||
|
||||
inline void swap(Clock& s1, Clock& s2)
|
||||
inline void swap(Clock& s1, Clock& s2) noexcept
|
||||
{
|
||||
s1.swap(s2);
|
||||
}
|
||||
|
@ -79,7 +79,7 @@
|
||||
// while those smaller will be placement new-ed into an
|
||||
// internal stack-auto-allocated buffer.
|
||||
#if !defined(POCO_SMALL_OBJECT_SIZE)
|
||||
#define POCO_SMALL_OBJECT_SIZE 32
|
||||
#define POCO_SMALL_OBJECT_SIZE 64
|
||||
#endif
|
||||
|
||||
|
||||
|
@ -149,7 +149,7 @@ public:
|
||||
///
|
||||
/// Throws an InvalidArgumentException if an argument date is out of range.
|
||||
|
||||
void swap(DateTime& dateTime);
|
||||
void swap(DateTime& dateTime) noexcept;
|
||||
/// Swaps the DateTime with another one.
|
||||
|
||||
int year() const;
|
||||
@ -431,7 +431,7 @@ inline bool DateTime::isLeapYear(int year)
|
||||
}
|
||||
|
||||
|
||||
inline void swap(DateTime& d1, DateTime& d2)
|
||||
inline void swap(DateTime& d1, DateTime& d2) noexcept
|
||||
{
|
||||
d1.swap(d2);
|
||||
}
|
||||
|
@ -67,7 +67,7 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
Pair& swap(Pair& other)
|
||||
Pair& swap(Pair& other) noexcept
|
||||
/// Swaps the content of the two Pairs.
|
||||
{
|
||||
std::swap(_data, other._data);
|
||||
|
@ -173,7 +173,7 @@ public:
|
||||
_data.clear();
|
||||
}
|
||||
|
||||
inline void swap(Struct& other)
|
||||
inline void swap(Struct& other) noexcept
|
||||
/// Swap content of Struct with another Struct
|
||||
{
|
||||
_data.swap(other._data);
|
||||
|
@ -103,7 +103,7 @@ public:
|
||||
File& operator = (const Path& path);
|
||||
/// Assignment operator.
|
||||
|
||||
void swap(File& file);
|
||||
void swap(File& file) noexcept;
|
||||
/// Swaps the file with another one.
|
||||
|
||||
const std::string& path() const;
|
||||
@ -312,7 +312,7 @@ inline bool File::operator >= (const File& file) const
|
||||
}
|
||||
|
||||
|
||||
inline void swap(File& f1, File& f2)
|
||||
inline void swap(File& f1, File& f2) noexcept
|
||||
{
|
||||
f1.swap(f2);
|
||||
}
|
||||
|
@ -120,7 +120,7 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
void swap(HashMap& map)
|
||||
void swap(HashMap& map) noexcept
|
||||
/// Swaps the HashMap with another one.
|
||||
{
|
||||
_table.swap(map._table);
|
||||
|
@ -74,7 +74,7 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
void swap(HashSet& set)
|
||||
void swap(HashSet& set) noexcept
|
||||
/// Swaps the HashSet with another one.
|
||||
{
|
||||
_table.swap(set._table);
|
||||
|
@ -98,7 +98,7 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
void swap(ConstIterator& it)
|
||||
void swap(ConstIterator& it) noexcept
|
||||
{
|
||||
using std::swap;
|
||||
// uninitialized iterators crash when swapped
|
||||
@ -192,7 +192,7 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
void swap(Iterator& it)
|
||||
void swap(Iterator& it) noexcept
|
||||
{
|
||||
ConstIterator::swap(it);
|
||||
}
|
||||
@ -265,7 +265,7 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
void swap(LinearHashTable& table)
|
||||
void swap(LinearHashTable& table) noexcept
|
||||
/// Swaps the LinearHashTable with another one.
|
||||
{
|
||||
using std::swap;
|
||||
|
@ -87,7 +87,7 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
void swap(ListMap& map)
|
||||
void swap(ListMap& map) noexcept
|
||||
/// Swaps the ListMap with another one.
|
||||
{
|
||||
_container.swap(map._container);
|
||||
|
@ -376,7 +376,7 @@ inline void LocalDateTime::adjustForTzd()
|
||||
}
|
||||
|
||||
|
||||
inline void swap(LocalDateTime& d1, LocalDateTime& d2)
|
||||
inline void swap(LocalDateTime& d1, LocalDateTime& d2) noexcept
|
||||
{
|
||||
d1.swap(d2);
|
||||
}
|
||||
|
@ -277,7 +277,7 @@ inline int Message::getSourceLine() const
|
||||
}
|
||||
|
||||
|
||||
inline void swap(Message& m1, Message& m2)
|
||||
inline void swap(Message& m1, Message& m2) noexcept
|
||||
{
|
||||
m1.swap(m2);
|
||||
}
|
||||
|
@ -177,7 +177,7 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
void swap(Nullable& other)
|
||||
void swap(Nullable& other) noexcept
|
||||
/// Swaps this Nullable with other.
|
||||
{
|
||||
std::swap(_value, other._value);
|
||||
@ -310,7 +310,7 @@ private:
|
||||
|
||||
|
||||
template <typename C>
|
||||
inline void swap(Nullable<C>& n1, Nullable<C>& n2)
|
||||
inline void swap(Nullable<C>& n1, Nullable<C>& n2) noexcept
|
||||
{
|
||||
n1.swap(n2);
|
||||
}
|
||||
|
@ -141,7 +141,7 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
void swap(Optional& other)
|
||||
void swap(Optional& other) noexcept
|
||||
{
|
||||
std::swap(_value, other._value);
|
||||
std::swap(_isSpecified, other._isSpecified);
|
||||
@ -185,7 +185,7 @@ private:
|
||||
|
||||
|
||||
template <typename C>
|
||||
inline void swap(Optional<C>& n1, Optional<C>& n2)
|
||||
inline void swap(Optional<C>& n1, Optional<C>& n2) noexcept
|
||||
{
|
||||
n1.swap(n2);
|
||||
}
|
||||
|
@ -102,7 +102,7 @@ public:
|
||||
Path& operator = (const char* path);
|
||||
/// Assigns a string containing a path in native format.
|
||||
|
||||
void swap(Path& path);
|
||||
void swap(Path& path) noexcept;
|
||||
/// Swaps the path with another one.
|
||||
|
||||
Path& assign(const std::string& path);
|
||||
@ -495,7 +495,7 @@ inline char Path::pathSeparator()
|
||||
}
|
||||
|
||||
|
||||
inline void swap(Path& p1, Path& p2)
|
||||
inline void swap(Path& p1, Path& p2) noexcept
|
||||
{
|
||||
p1.swap(p2);
|
||||
}
|
||||
|
@ -81,7 +81,7 @@ public:
|
||||
SharedMemory& operator = (const SharedMemory& other);
|
||||
/// Assigns another SharedMemory object.
|
||||
|
||||
void swap(SharedMemory& other);
|
||||
void swap(SharedMemory& other) noexcept;
|
||||
/// Swaps the SharedMemory object with another one.
|
||||
|
||||
char* begin() const;
|
||||
@ -100,7 +100,7 @@ private:
|
||||
//
|
||||
// inlines
|
||||
//
|
||||
inline void SharedMemory::swap(SharedMemory& other)
|
||||
inline void SharedMemory::swap(SharedMemory& other) noexcept
|
||||
{
|
||||
using std::swap;
|
||||
swap(_pImpl, other._pImpl);
|
||||
|
@ -239,7 +239,7 @@ public:
|
||||
return assign<Other>(ptr);
|
||||
}
|
||||
|
||||
void swap(SharedPtr& ptr)
|
||||
void swap(SharedPtr& ptr) noexcept
|
||||
{
|
||||
std::swap(_ptr, ptr._ptr);
|
||||
std::swap(_pCounter, ptr._pCounter);
|
||||
|
@ -91,7 +91,7 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
void swap(SimpleHashTable& ht)
|
||||
void swap(SimpleHashTable& ht) noexcept
|
||||
{
|
||||
using std::swap;
|
||||
swap(_entries, ht._entries);
|
||||
|
@ -81,7 +81,7 @@ public:
|
||||
TextBufferIterator& operator = (const TextBufferIterator& it);
|
||||
/// Assignment operator.
|
||||
|
||||
void swap(TextBufferIterator& it);
|
||||
void swap(TextBufferIterator& it) noexcept;
|
||||
/// Swaps the iterator with another one.
|
||||
|
||||
int operator * () const;
|
||||
@ -127,7 +127,7 @@ inline bool TextBufferIterator::operator != (const TextBufferIterator& it) const
|
||||
}
|
||||
|
||||
|
||||
inline void swap(TextBufferIterator& it1, TextBufferIterator& it2)
|
||||
inline void swap(TextBufferIterator& it1, TextBufferIterator& it2) noexcept
|
||||
{
|
||||
it1.swap(it2);
|
||||
}
|
||||
|
@ -77,7 +77,7 @@ public:
|
||||
TextIterator& operator = (const TextIterator& it);
|
||||
/// Assignment operator.
|
||||
|
||||
void swap(TextIterator& it);
|
||||
void swap(TextIterator& it) noexcept;
|
||||
/// Swaps the iterator with another one.
|
||||
|
||||
int operator * () const;
|
||||
@ -123,7 +123,7 @@ inline bool TextIterator::operator != (const TextIterator& it) const
|
||||
}
|
||||
|
||||
|
||||
inline void swap(TextIterator& it1, TextIterator& it2)
|
||||
inline void swap(TextIterator& it1, TextIterator& it2) noexcept
|
||||
{
|
||||
it1.swap(it2);
|
||||
}
|
||||
|
@ -77,7 +77,7 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
void swap(Timespan& timespan);
|
||||
void swap(Timespan& timespan) noexcept;
|
||||
/// Swaps the Timespan with another one.
|
||||
|
||||
bool operator == (const Timespan& ts) const;
|
||||
@ -300,7 +300,7 @@ inline bool Timespan::operator <= (TimeDiff microSeconds) const
|
||||
}
|
||||
|
||||
|
||||
inline void swap(Timespan& s1, Timespan& s2)
|
||||
inline void swap(Timespan& s1, Timespan& s2) noexcept
|
||||
{
|
||||
s1.swap(s2);
|
||||
}
|
||||
|
@ -77,7 +77,7 @@ public:
|
||||
Timestamp& operator = (const Timestamp& other);
|
||||
Timestamp& operator = (TimeVal tv);
|
||||
|
||||
void swap(Timestamp& timestamp);
|
||||
void swap(Timestamp& timestamp) noexcept;
|
||||
/// Swaps the Timestamp with another one.
|
||||
|
||||
void update();
|
||||
@ -260,7 +260,7 @@ inline Timestamp::TimeDiff Timestamp::resolution()
|
||||
}
|
||||
|
||||
|
||||
inline void swap(Timestamp& s1, Timestamp& s2)
|
||||
inline void swap(Timestamp& s1, Timestamp& s2) noexcept
|
||||
{
|
||||
s1.swap(s2);
|
||||
}
|
||||
|
@ -109,7 +109,7 @@ public:
|
||||
/// Parses and assigns an URI from the given string. Throws a
|
||||
/// SyntaxException if the uri is not valid.
|
||||
|
||||
void swap(URI& uri);
|
||||
void swap(URI& uri) noexcept;
|
||||
/// Swaps the URI with another one.
|
||||
|
||||
void clear();
|
||||
@ -412,7 +412,7 @@ inline unsigned short URI::getSpecifiedPort() const
|
||||
}
|
||||
|
||||
|
||||
inline void swap(URI& u1, URI& u2)
|
||||
inline void swap(URI& u1, URI& u2) noexcept
|
||||
{
|
||||
u1.swap(u2);
|
||||
}
|
||||
|
@ -70,7 +70,7 @@ public:
|
||||
URIRedirection(const URIRedirection& redir);
|
||||
|
||||
URIRedirection& operator = (const URIRedirection& redir);
|
||||
void swap(URIRedirection& redir);
|
||||
void swap(URIRedirection& redir) noexcept;
|
||||
|
||||
const std::string& uri() const;
|
||||
/// Returns the new URI.
|
||||
|
@ -70,7 +70,7 @@ public:
|
||||
UUID& operator = (const UUID& uuid);
|
||||
/// Assignment operator.
|
||||
|
||||
void swap(UUID& uuid);
|
||||
void swap(UUID& uuid) noexcept;
|
||||
/// Swaps the UUID with another one.
|
||||
|
||||
void parse(const std::string& uuid);
|
||||
@ -207,7 +207,7 @@ inline bool UUID::isNull() const
|
||||
}
|
||||
|
||||
|
||||
inline void swap(UUID& u1, UUID& u2)
|
||||
inline void swap(UUID& u1, UUID& u2) noexcept
|
||||
{
|
||||
u1.swap(u2);
|
||||
}
|
||||
|
@ -622,7 +622,7 @@ public:
|
||||
return erase_impl(key, hash);
|
||||
}
|
||||
|
||||
void swap(ordered_hash& other) {
|
||||
void swap(ordered_hash& other) noexcept {
|
||||
using std::swap;
|
||||
|
||||
swap(static_cast<Hash&>(*this), static_cast<Hash&>(other));
|
||||
|
@ -400,7 +400,7 @@ public:
|
||||
|
||||
|
||||
|
||||
void swap(ordered_map& other) { other.m_ht.swap(m_ht); }
|
||||
void swap(ordered_map& other) noexcept { other.m_ht.swap(m_ht); }
|
||||
|
||||
/*
|
||||
* Lookup
|
||||
|
@ -324,7 +324,7 @@ public:
|
||||
|
||||
|
||||
|
||||
void swap(ordered_set& other) { other.m_ht.swap(m_ht); }
|
||||
void swap(ordered_set& other) noexcept { other.m_ht.swap(m_ht); }
|
||||
|
||||
/*
|
||||
* Lookup
|
||||
|
@ -85,7 +85,7 @@ Clock& Clock::operator = (ClockVal tv)
|
||||
}
|
||||
|
||||
|
||||
void Clock::swap(Clock& timestamp)
|
||||
void Clock::swap(Clock& timestamp) noexcept
|
||||
{
|
||||
std::swap(_clock, timestamp._clock);
|
||||
}
|
||||
|
@ -177,7 +177,7 @@ DateTime& DateTime::assign(int year, int month, int day, int hour, int minute, i
|
||||
}
|
||||
|
||||
|
||||
void DateTime::swap(DateTime& dateTime)
|
||||
void DateTime::swap(DateTime& dateTime) noexcept
|
||||
{
|
||||
std::swap(_utcTime, dateTime._utcTime);
|
||||
std::swap(_year, dateTime._year);
|
||||
|
@ -93,7 +93,7 @@ File& File::operator = (const Path& path)
|
||||
}
|
||||
|
||||
|
||||
void File::swap(File& file)
|
||||
void File::swap(File& file) noexcept
|
||||
{
|
||||
swapImpl(file);
|
||||
}
|
||||
|
@ -169,7 +169,7 @@ Path& Path::operator = (const char* path)
|
||||
}
|
||||
|
||||
|
||||
void Path::swap(Path& path)
|
||||
void Path::swap(Path& path) noexcept
|
||||
{
|
||||
std::swap(_node, path._node);
|
||||
std::swap(_device, path._device);
|
||||
|
@ -86,7 +86,7 @@ TextBufferIterator& TextBufferIterator::operator = (const TextBufferIterator& it
|
||||
}
|
||||
|
||||
|
||||
void TextBufferIterator::swap(TextBufferIterator& it)
|
||||
void TextBufferIterator::swap(TextBufferIterator& it) noexcept
|
||||
{
|
||||
std::swap(_pEncoding, it._pEncoding);
|
||||
std::swap(_it, it._it);
|
||||
|
@ -83,7 +83,7 @@ TextIterator& TextIterator::operator = (const TextIterator& it)
|
||||
}
|
||||
|
||||
|
||||
void TextIterator::swap(TextIterator& it)
|
||||
void TextIterator::swap(TextIterator& it) noexcept
|
||||
{
|
||||
std::swap(_pEncoding, it._pEncoding);
|
||||
std::swap(_it, it._it);
|
||||
|
@ -84,7 +84,7 @@ Timespan& Timespan::assign(long seconds, long microSeconds)
|
||||
}
|
||||
|
||||
|
||||
void Timespan::swap(Timespan& timespan)
|
||||
void Timespan::swap(Timespan& timespan) noexcept
|
||||
{
|
||||
std::swap(_span, timespan._span);
|
||||
}
|
||||
|
@ -192,7 +192,7 @@ Timestamp& Timestamp::operator = (TimeVal tv)
|
||||
}
|
||||
|
||||
|
||||
void Timestamp::swap(Timestamp& timestamp)
|
||||
void Timestamp::swap(Timestamp& timestamp) noexcept
|
||||
{
|
||||
std::swap(_ts, timestamp._ts);
|
||||
}
|
||||
|
@ -197,7 +197,7 @@ URI& URI::operator = (const char* uri)
|
||||
}
|
||||
|
||||
|
||||
void URI::swap(URI& uri)
|
||||
void URI::swap(URI& uri) noexcept
|
||||
{
|
||||
std::swap(_scheme, uri._scheme);
|
||||
std::swap(_userInfo, uri._userInfo);
|
||||
|
@ -49,7 +49,7 @@ URIRedirection& URIRedirection::operator = (const URIRedirection& redir)
|
||||
}
|
||||
|
||||
|
||||
void URIRedirection::swap(URIRedirection& redir)
|
||||
void URIRedirection::swap(URIRedirection& redir) noexcept
|
||||
{
|
||||
std::swap(_uri, redir._uri);
|
||||
}
|
||||
|
@ -109,7 +109,7 @@ UUID& UUID::operator = (const UUID& uuid)
|
||||
}
|
||||
|
||||
|
||||
void UUID::swap(UUID& uuid)
|
||||
void UUID::swap(UUID& uuid) noexcept
|
||||
{
|
||||
std::swap(_timeLow, uuid._timeLow);
|
||||
std::swap(_timeMid, uuid._timeMid);
|
||||
|
@ -184,8 +184,33 @@ void AnyTest::testAnyBadCast()
|
||||
|
||||
void AnyTest::testAnySwap()
|
||||
{
|
||||
Any empty1, empty2;
|
||||
assertTrue (empty1.empty());
|
||||
assertTrue (empty2.empty());
|
||||
empty1.swap(empty2);
|
||||
assertTrue (empty1.empty());
|
||||
assertTrue (empty2.empty());
|
||||
|
||||
std::string text = "test message";
|
||||
empty1 = text;
|
||||
assertTrue (!empty1.empty());
|
||||
assertTrue (empty2.empty());
|
||||
assertTrue (text == AnyCast<std::string>(empty1));
|
||||
|
||||
empty1.swap(empty2);
|
||||
assertTrue (empty1.empty());
|
||||
assertTrue (!empty2.empty());
|
||||
assertTrue (text == AnyCast<std::string>(empty2));
|
||||
|
||||
Any original = text, swapped;
|
||||
#ifdef POCO_NO_SOO
|
||||
assertFalse (original.local());
|
||||
#else
|
||||
assertTrue (original.local());
|
||||
#endif
|
||||
assertFalse (original.empty());
|
||||
assertFalse (swapped.local());
|
||||
assertTrue (swapped.empty());
|
||||
std::string* originalPtr = AnyCast<std::string>(&original);
|
||||
Any* swapResult = &original.swap(swapped);
|
||||
|
||||
@ -194,10 +219,80 @@ void AnyTest::testAnySwap()
|
||||
assertTrue (swapped.type() == typeid(std::string));
|
||||
assertTrue (text == AnyCast<std::string>(swapped));
|
||||
assertTrue (0 != originalPtr);
|
||||
#ifdef POCO_NO_SOO // pointers only match when heap-allocated
|
||||
assertTrue (originalPtr == AnyCast<std::string>(&swapped));
|
||||
#endif
|
||||
assertTrue (swapResult == &original);
|
||||
|
||||
struct BigObject
|
||||
{
|
||||
Poco::UInt64 one = 1;
|
||||
Poco::UInt64 two = 2;
|
||||
Poco::UInt64 three = 3;
|
||||
Poco::UInt64 four = 4;
|
||||
Poco::UInt64 five = 5;
|
||||
Poco::UInt64 six = 6;
|
||||
Poco::UInt64 seven = 7;
|
||||
Poco::UInt64 eight = 8;
|
||||
Poco::UInt64 nine = 9;
|
||||
|
||||
bool operator==(const BigObject& other)
|
||||
{
|
||||
return one == other.one &&
|
||||
two == other.two &&
|
||||
three == other.three &&
|
||||
four == other.four &&
|
||||
five == other.five &&
|
||||
six == other.six &&
|
||||
seven == other.seven &&
|
||||
eight == other.eight &&
|
||||
nine == other.nine;
|
||||
}
|
||||
};
|
||||
|
||||
poco_assert (sizeof(BigObject) > POCO_SMALL_OBJECT_SIZE);
|
||||
|
||||
BigObject bigObject;
|
||||
Any bigOriginal = bigObject, swappedBig;
|
||||
assertFalse (bigOriginal.local());
|
||||
assertFalse (bigOriginal.empty());
|
||||
assertFalse (swappedBig.local());
|
||||
assertTrue (swappedBig.empty());
|
||||
BigObject* bigPtr = AnyCast<BigObject>(&bigOriginal);
|
||||
Any* swapBigResult = &bigOriginal.swap(swappedBig);
|
||||
|
||||
assertTrue (bigOriginal.empty());
|
||||
assertTrue (!swappedBig.empty());
|
||||
assertTrue (swappedBig.type() == typeid(BigObject));
|
||||
assertTrue (bigObject == AnyCast<BigObject>(swappedBig));
|
||||
assertTrue (0 != bigPtr);
|
||||
assertTrue (swapBigResult == &bigOriginal);
|
||||
|
||||
// assure proper assignment behavior after swapping
|
||||
original = text;
|
||||
bigOriginal = bigObject;
|
||||
#ifdef POCO_NO_SOO
|
||||
assertFalse (original.local());
|
||||
#else
|
||||
assertTrue (original.local());
|
||||
#endif
|
||||
assertFalse (bigOriginal.local());
|
||||
|
||||
Any temp = original;
|
||||
#ifdef POCO_NO_SOO
|
||||
assertFalse (temp.local());
|
||||
#else
|
||||
assertTrue (temp.local());
|
||||
#endif
|
||||
|
||||
original = bigOriginal;
|
||||
assertTrue (bigObject == AnyCast<BigObject>(original));
|
||||
assertFalse (original.local());
|
||||
|
||||
bigOriginal = temp;
|
||||
assertTrue (text == AnyCast<std::string>(bigOriginal));
|
||||
#ifdef POCO_NO_SOO
|
||||
assertFalse (bigOriginal.local());
|
||||
#else
|
||||
assertTrue (bigOriginal.local());
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
@ -316,7 +316,7 @@ void NumberParserTest::testParseError()
|
||||
|
||||
try
|
||||
{
|
||||
const char test[] = { -23, -108, -103, -24, -81, -81, 0 };
|
||||
const char test[] = { char(-23), char(-108), char(-103), char(-24), char(-81), char(-81), 0 };
|
||||
Poco::NumberParser::parse(test);
|
||||
failmsg("must throw SyntaxException");
|
||||
} catch (SyntaxException&) { }
|
||||
|
@ -58,7 +58,7 @@ public:
|
||||
HostEntry& operator = (const HostEntry& entry);
|
||||
/// Assigns another HostEntry.
|
||||
|
||||
void swap(HostEntry& hostEntry);
|
||||
void swap(HostEntry& hostEntry) noexcept;
|
||||
/// Swaps the HostEntry with another one.
|
||||
|
||||
~HostEntry();
|
||||
@ -111,7 +111,7 @@ inline const HostEntry::AddressList& HostEntry::addresses() const
|
||||
}
|
||||
|
||||
|
||||
inline void swap(HostEntry& h1, HostEntry& h2)
|
||||
inline void swap(HostEntry& h1, HostEntry& h2) noexcept
|
||||
{
|
||||
h1.swap(h2);
|
||||
}
|
||||
|
@ -59,7 +59,7 @@ public:
|
||||
MailRecipient& operator = (const MailRecipient& recipient);
|
||||
/// Assigns another recipient.
|
||||
|
||||
void swap(MailRecipient& recipient);
|
||||
void swap(MailRecipient& recipient) noexcept;
|
||||
/// Exchanges the content of two recipients.
|
||||
|
||||
RecipientType getType() const;
|
||||
@ -108,7 +108,7 @@ inline const std::string& MailRecipient::getRealName() const
|
||||
}
|
||||
|
||||
|
||||
inline void swap(MailRecipient& r1, MailRecipient& r2)
|
||||
inline void swap(MailRecipient& r1, MailRecipient& r2) noexcept
|
||||
{
|
||||
r1.swap(r2);
|
||||
}
|
||||
|
@ -59,7 +59,7 @@ public:
|
||||
MediaType& operator = (const std::string& mediaType);
|
||||
/// Assigns another media type.
|
||||
|
||||
void swap(MediaType& mediaType);
|
||||
void swap(MediaType& mediaType) noexcept;
|
||||
/// Swaps the MediaType with another one.
|
||||
|
||||
void setType(const std::string& type);
|
||||
@ -163,7 +163,7 @@ inline const NameValueCollection& MediaType::parameters() const
|
||||
}
|
||||
|
||||
|
||||
inline void swap(MediaType& m1, MediaType& m2)
|
||||
inline void swap(MediaType& m1, MediaType& m2) noexcept
|
||||
{
|
||||
m1.swap(m2);
|
||||
}
|
||||
|
@ -60,7 +60,7 @@ public:
|
||||
NameValueCollection& operator = (NameValueCollection&& nvc) noexcept;
|
||||
/// Moves the name-value pairs of another NameValueCollection to this one.
|
||||
|
||||
void swap(NameValueCollection& nvc);
|
||||
void swap(NameValueCollection& nvc) noexcept;
|
||||
/// Swaps the NameValueCollection with another one.
|
||||
|
||||
const std::string& operator [] (const std::string& name) const;
|
||||
@ -120,7 +120,7 @@ private:
|
||||
//
|
||||
// inlines
|
||||
//
|
||||
inline void swap(NameValueCollection& nvc1, NameValueCollection& nvc2)
|
||||
inline void swap(NameValueCollection& nvc1, NameValueCollection& nvc2) noexcept
|
||||
{
|
||||
nvc1.swap(nvc2);
|
||||
}
|
||||
|
@ -126,7 +126,7 @@ public:
|
||||
bool operator == (const NetworkInterface& other) const;
|
||||
/// Operator equal. Compares interface indices.
|
||||
|
||||
void swap(NetworkInterface& other);
|
||||
void swap(NetworkInterface& other) noexcept;
|
||||
/// Swaps the NetworkInterface with another one.
|
||||
|
||||
unsigned index() const;
|
||||
|
@ -123,7 +123,7 @@ HostEntry& HostEntry::operator = (const HostEntry& entry)
|
||||
}
|
||||
|
||||
|
||||
void HostEntry::swap(HostEntry& hostEntry)
|
||||
void HostEntry::swap(HostEntry& hostEntry) noexcept
|
||||
{
|
||||
std::swap(_name, hostEntry._name);
|
||||
std::swap(_aliases, hostEntry._aliases);
|
||||
|
@ -65,7 +65,7 @@ MailRecipient& MailRecipient::operator = (const MailRecipient& recipient)
|
||||
}
|
||||
|
||||
|
||||
void MailRecipient::swap(MailRecipient& recipient)
|
||||
void MailRecipient::swap(MailRecipient& recipient) noexcept
|
||||
{
|
||||
std::swap(_type, recipient._type);
|
||||
std::swap(_address, recipient._address);
|
||||
|
@ -89,7 +89,7 @@ MediaType& MediaType::operator = (const std::string& mediaType)
|
||||
}
|
||||
|
||||
|
||||
void MediaType::swap(MediaType& mediaType)
|
||||
void MediaType::swap(MediaType& mediaType) noexcept
|
||||
{
|
||||
std::swap(_type, mediaType._type);
|
||||
std::swap(_subType, mediaType._subType);
|
||||
|
@ -63,7 +63,7 @@ NameValueCollection& NameValueCollection::operator = (NameValueCollection&& nvc)
|
||||
}
|
||||
|
||||
|
||||
void NameValueCollection::swap(NameValueCollection& nvc)
|
||||
void NameValueCollection::swap(NameValueCollection& nvc) noexcept
|
||||
{
|
||||
std::swap(_map, nvc._map);
|
||||
}
|
||||
|
@ -637,7 +637,7 @@ NetworkInterface& NetworkInterface::operator = (const NetworkInterface& interfc)
|
||||
}
|
||||
|
||||
|
||||
void NetworkInterface::swap(NetworkInterface& other)
|
||||
void NetworkInterface::swap(NetworkInterface& other) noexcept
|
||||
{
|
||||
using std::swap;
|
||||
swap(_pImpl, other._pImpl);
|
||||
|
@ -85,7 +85,7 @@ public:
|
||||
X509Certificate& operator = (X509Certificate&& cert) noexcept;
|
||||
/// Move-assigns a certificate.
|
||||
|
||||
void swap(X509Certificate& cert);
|
||||
void swap(X509Certificate& cert) noexcept;
|
||||
/// Exchanges the certificate with another one.
|
||||
|
||||
~X509Certificate();
|
||||
|
@ -116,7 +116,7 @@ X509Certificate& X509Certificate::operator = (X509Certificate&& cert) noexcept
|
||||
}
|
||||
|
||||
|
||||
void X509Certificate::swap(X509Certificate& cert)
|
||||
void X509Certificate::swap(X509Certificate& cert) noexcept
|
||||
{
|
||||
using std::swap;
|
||||
swap(cert._issuerName, _issuerName);
|
||||
|
@ -49,21 +49,21 @@ public:
|
||||
enum Size
|
||||
{
|
||||
PAGE_SIZE_LETTER = HPDF_PAGE_SIZE_LETTER,
|
||||
/// 8½ x 11 (Inches), 612 x 792 px
|
||||
/// 8<EFBFBD> x 11 (Inches), 612 x 792 px
|
||||
PAGE_SIZE_LEGAL = HPDF_PAGE_SIZE_LEGAL,
|
||||
/// 8½ x 14 (Inches), 612 x 1008 px
|
||||
/// 8<EFBFBD> x 14 (Inches), 612 x 1008 px
|
||||
PAGE_SIZE_A3 = HPDF_PAGE_SIZE_A3,
|
||||
/// 297 × 420 (mm), 841.89 x 1199.551 px
|
||||
/// 297 <EFBFBD> 420 (mm), 841.89 x 1199.551 px
|
||||
PAGE_SIZE_A4 = HPDF_PAGE_SIZE_A4,
|
||||
/// 210 × 297 (mm), 595.276 x 841.89 px
|
||||
/// 210 <EFBFBD> 297 (mm), 595.276 x 841.89 px
|
||||
PAGE_SIZE_A5 = HPDF_PAGE_SIZE_A5,
|
||||
/// 148 × 210 (mm), 419.528 x 595.276 px
|
||||
/// 148 <EFBFBD> 210 (mm), 419.528 x 595.276 px
|
||||
PAGE_SIZE_B4 = HPDF_PAGE_SIZE_B4,
|
||||
/// 250 × 353 (mm), 708.661 x 1000.63 px
|
||||
/// 250 <EFBFBD> 353 (mm), 708.661 x 1000.63 px
|
||||
PAGE_SIZE_B5 = HPDF_PAGE_SIZE_B5,
|
||||
/// 176 × 250 (mm), 498.898 x 708.661 px
|
||||
/// 176 <EFBFBD> 250 (mm), 498.898 x 708.661 px
|
||||
PAGE_SIZE_EXECUTIVE = HPDF_PAGE_SIZE_EXECUTIVE,
|
||||
/// 7½ x 10½ (Inches), 522 x 756 px
|
||||
/// 7<EFBFBD> x 10<31> (Inches), 522 x 756 px
|
||||
PAGE_SIZE_US4x6 = HPDF_PAGE_SIZE_US4x6,
|
||||
/// 4 x 6 (Inches), 288 x 432 px
|
||||
PAGE_SIZE_US4x8 = HPDF_PAGE_SIZE_US4x8,
|
||||
@ -165,7 +165,7 @@ public:
|
||||
bool operator == (const Page& other) const;
|
||||
/// Equality operator.
|
||||
|
||||
void swap(Page& other);
|
||||
void swap(Page& other) noexcept;
|
||||
/// Swaps this page with another.
|
||||
|
||||
void setWidth(float value);
|
||||
@ -301,19 +301,19 @@ public:
|
||||
/// Appends a path from the current point to the specified point..
|
||||
|
||||
void curveTo(const std::vector<float>& values);
|
||||
/// Appends a Bézier curve to the current path using two specified points.
|
||||
/// Appends a B<EFBFBD>zier curve to the current path using two specified points.
|
||||
/// The point (x1, y1) and the point (x2, y2) are used as the control points
|
||||
/// for a Bézier curve and current point is moved to the point (x3, y3)
|
||||
/// for a B<EFBFBD>zier curve and current point is moved to the point (x3, y3)
|
||||
|
||||
void curveToRight(float x2, float y2, float x3, float y3);
|
||||
/// Appends a Bézier curve to the right of the current point using two specified points.
|
||||
/// Appends a B<EFBFBD>zier curve to the right of the current point using two specified points.
|
||||
/// The current point and the point (x2, y2) are used as the control points
|
||||
/// for a Bézier curve and current point is moved to the point (x3, y3)
|
||||
/// for a B<EFBFBD>zier curve and current point is moved to the point (x3, y3)
|
||||
|
||||
void curveToLeft(float x2, float y2, float x3, float y3);
|
||||
/// Appends a Bézier curve to the left of the current point using two specified points.
|
||||
/// Appends a B<EFBFBD>zier curve to the left of the current point using two specified points.
|
||||
/// The current point and the point (x2, y2) are used as the control points
|
||||
/// for a Bézier curve and current point is moved to the point (x3, y3)
|
||||
/// for a B<EFBFBD>zier curve and current point is moved to the point (x3, y3)
|
||||
|
||||
void closePath();
|
||||
/// Appends a straight line from the current point to the start point of sub path.
|
||||
|
@ -74,7 +74,7 @@ public:
|
||||
return _pPDF == other._pPDF && _resource == other._resource;
|
||||
}
|
||||
|
||||
void swap(Resource& other)
|
||||
void swap(Resource& other) noexcept
|
||||
{
|
||||
using std::swap;
|
||||
|
||||
|
@ -67,7 +67,7 @@ bool Page::operator == (const Page& other) const
|
||||
}
|
||||
|
||||
|
||||
void Page::swap(Page& other)
|
||||
void Page::swap(Page& other) noexcept
|
||||
{
|
||||
using std::swap;
|
||||
|
||||
|
@ -62,7 +62,7 @@ public:
|
||||
ArchiveEntry& operator = (const ArchiveEntry& entry);
|
||||
/// Assignment operator.
|
||||
|
||||
void swap(ArchiveEntry& entry);
|
||||
void swap(ArchiveEntry& entry) noexcept;
|
||||
/// Swaps the entry with another one.
|
||||
|
||||
EntryType type() const;
|
||||
|
@ -65,7 +65,7 @@ ArchiveEntry& ArchiveEntry::operator = (const ArchiveEntry& entry)
|
||||
}
|
||||
|
||||
|
||||
void ArchiveEntry::swap(ArchiveEntry& entry)
|
||||
void ArchiveEntry::swap(ArchiveEntry& entry) noexcept
|
||||
{
|
||||
std::swap(_type, entry._type);
|
||||
std::swap(_path, entry._path);
|
||||
|
@ -91,7 +91,7 @@ public:
|
||||
Option& operator = (const Option& option);
|
||||
/// Assignment operator.
|
||||
|
||||
void swap(Option& option);
|
||||
void swap(Option& option) noexcept;
|
||||
/// Swaps the option with another one.
|
||||
|
||||
Option& shortName(const std::string& name);
|
||||
|
@ -113,7 +113,7 @@ Option& Option::operator = (const Option& option)
|
||||
}
|
||||
|
||||
|
||||
void Option::swap(Option& option)
|
||||
void Option::swap(Option& option) noexcept
|
||||
{
|
||||
std::swap(_shortName, option._shortName);
|
||||
std::swap(_fullName, option._fullName);
|
||||
|
@ -59,7 +59,7 @@ public:
|
||||
Name& operator = (Name&& name) noexcept;
|
||||
/// Move assignment.
|
||||
|
||||
void swap(Name& name);
|
||||
void swap(Name& name) noexcept;
|
||||
/// Swaps the name with another one.
|
||||
|
||||
void assign(const XMLString& qname);
|
||||
@ -132,7 +132,7 @@ inline const XMLString& Name::localName() const
|
||||
}
|
||||
|
||||
|
||||
inline void swap(Name& n1, Name& n2)
|
||||
inline void swap(Name& n1, Name& n2) noexcept
|
||||
{
|
||||
n1.swap(n2);
|
||||
}
|
||||
|
@ -47,7 +47,7 @@ public:
|
||||
|
||||
QName& operator = (const QName& qname);
|
||||
QName& operator = (QName&& qname) noexcept;
|
||||
void swap(QName& qname);
|
||||
void swap(QName& qname) noexcept;
|
||||
|
||||
const std::string& namespaceURI() const;
|
||||
/// Returns the namespace URI part of the name.
|
||||
|
@ -93,7 +93,7 @@ Name& Name::operator = (Name&& name) noexcept
|
||||
}
|
||||
|
||||
|
||||
void Name::swap(Name& name)
|
||||
void Name::swap(Name& name) noexcept
|
||||
{
|
||||
std::swap(_qname, name._qname);
|
||||
std::swap(_namespaceURI, name._namespaceURI);
|
||||
|
@ -83,7 +83,7 @@ QName& QName::operator = (QName&& qname) noexcept
|
||||
}
|
||||
|
||||
|
||||
void QName::swap(QName& qname)
|
||||
void QName::swap(QName& qname) noexcept
|
||||
{
|
||||
std::swap(_ns, qname._ns);
|
||||
std::swap(_name, qname._name);
|
||||
|
@ -43,7 +43,7 @@ SHAREDLIBLINKEXT = .so
|
||||
CFLAGS = -std=c11 $(ARCHFLAGS)
|
||||
CFLAGS32 =
|
||||
CFLAGS64 =
|
||||
CXXFLAGS = -std=c++14 -Wall -Wno-sign-compare $(ARCHFLAGS)
|
||||
CXXFLAGS = -std=c++14 -Wall -Wno-sign-compare -Wno-psabi $(ARCHFLAGS)
|
||||
CXXFLAGS32 =
|
||||
CXXFLAGS64 =
|
||||
LINKFLAGS =
|
||||
|
Loading…
Reference in New Issue
Block a user