diff options
author | lloyd <[email protected]> | 2010-09-03 13:55:19 +0000 |
---|---|---|
committer | lloyd <[email protected]> | 2010-09-03 13:55:19 +0000 |
commit | 7e54763ea43c8b34729387c7429922dd981c4f5b (patch) | |
tree | 33a1bd0f32e4ab7958a484e468316291c527dd24 /src/math/bigint | |
parent | fb68795162b8d107cbd284c4a75d8e13ce589829 (diff) | |
parent | ec8c59af3db02ff159908f9a446e53c4ea20d474 (diff) |
propagate from branch 'net.randombit.botan' (head a29c41b4a949207b1544096c3afab668f8b5179e)
to branch 'net.randombit.botan.c++0x' (head a9d0c2f805b3c20a4c648575d7256959db8329fe)
Diffstat (limited to 'src/math/bigint')
-rw-r--r-- | src/math/bigint/bigint.cpp | 21 | ||||
-rw-r--r-- | src/math/bigint/bigint.h | 9 |
2 files changed, 29 insertions, 1 deletions
diff --git a/src/math/bigint/bigint.cpp b/src/math/bigint/bigint.cpp index 7feec4d59..84dd4e2a3 100644 --- a/src/math/bigint/bigint.cpp +++ b/src/math/bigint/bigint.cpp @@ -40,7 +40,7 @@ BigInt::BigInt(Sign s, u32bit size) } /* -* Construct a BigInt from a "raw" BigInt +* Copy constructor */ BigInt::BigInt(const BigInt& b) { @@ -100,6 +100,25 @@ BigInt::BigInt(RandomNumberGenerator& rng, u32bit bits) randomize(rng, bits); } +/** +* Move constructor +*/ +BigInt::BigInt(BigInt&& other) + { + std::swap(*this, other); + } + +/** +* Move assignment +*/ +BigInt& BigInt::operator=(BigInt&& other) + { + if(this != &other) + std::swap(*this, other); + + return (*this); + } + /* * Swap this BigInt with another */ diff --git a/src/math/bigint/bigint.h b/src/math/bigint/bigint.h index 64bf20068..aa2e4347e 100644 --- a/src/math/bigint/bigint.h +++ b/src/math/bigint/bigint.h @@ -493,6 +493,15 @@ class BOTAN_DLL BigInt */ BigInt(NumberType type, u32bit n); + /** + * Move constructor + */ + BigInt(BigInt&& other); + + /** + * Move assignment + */ + BigInt& operator=(BigInt&& other); private: SecureVector<word> reg; Sign signedness; |