aboutsummaryrefslogtreecommitdiffstats
path: root/src/math/bigint
diff options
context:
space:
mode:
authorlloyd <[email protected]>2011-06-17 16:03:16 +0000
committerlloyd <[email protected]>2011-06-17 16:03:16 +0000
commit41a11496d5594d8ea5c7879804a540f482033644 (patch)
treec99fbbc1691ae8b3593aa73a007f0658b72f0354 /src/math/bigint
parent9fd0362d65435adf377ed1e4b85f010737b7def0 (diff)
parent6aac9723c9c286b5486e970e496daf7d01d83f4b (diff)
propagate from branch 'net.randombit.botan' (head 5dc30d88afdeec4896b5065f9260e66d52b1a730)
to branch 'net.randombit.botan.cxx11' (head 8d42792537db92fab3136f5696ee1eba3e73fa76)
Diffstat (limited to 'src/math/bigint')
-rw-r--r--src/math/bigint/bigint.cpp11
-rw-r--r--src/math/bigint/bigint.h29
2 files changed, 29 insertions, 11 deletions
diff --git a/src/math/bigint/bigint.cpp b/src/math/bigint/bigint.cpp
index e2e062f2d..e2bbe7f5a 100644
--- a/src/math/bigint/bigint.cpp
+++ b/src/math/bigint/bigint.cpp
@@ -40,7 +40,7 @@ BigInt::BigInt(Sign s, size_t size)
}
/*
-* Construct a BigInt from a "raw" BigInt
+* Copy constructor
*/
BigInt::BigInt(const BigInt& b)
{
@@ -101,15 +101,6 @@ BigInt::BigInt(RandomNumberGenerator& rng, size_t bits)
}
/*
-* Swap this BigInt with another
-*/
-void BigInt::swap(BigInt& other)
- {
- reg.swap(other.reg);
- std::swap(signedness, other.signedness);
- }
-
-/*
* Grow the internal storage
*/
void BigInt::grow_reg(size_t n)
diff --git a/src/math/bigint/bigint.h b/src/math/bigint/bigint.h
index 87c7cb766..57aa84528 100644
--- a/src/math/bigint/bigint.h
+++ b/src/math/bigint/bigint.h
@@ -438,7 +438,11 @@ class BOTAN_DLL BigInt
* Swap this value with another
* @param other BigInt to swap values with
*/
- void swap(BigInt& other);
+ void swap(BigInt& other)
+ {
+ reg.swap(other.reg);
+ std::swap(signedness, other.signedness);
+ }
/**
* Create empty BigInt
@@ -500,6 +504,29 @@ class BOTAN_DLL BigInt
*/
BigInt(NumberType type, size_t n);
+ /**
+ * Move constructor
+ */
+ BigInt(BigInt&& other)
+ {
+ this->swap(other);
+ }
+
+ /**
+ * Move assignment
+ */
+ BigInt& operator=(BigInt&& other)
+ {
+ if(this != &other)
+ this->swap(other);
+
+ return (*this);
+ }
+
+ /**
+ * Copy assignment
+ */
+ BigInt& operator=(const BigInt&) = default;
private:
SecureVector<word> reg;
Sign signedness;