Fix compile with microsoft c++ which still doesn't support noexcept

This commit is contained in:
Eric Frias 2015-05-22 16:15:00 -04:00
parent ccd14c7260
commit 043ead5579
3 changed files with 23 additions and 21 deletions

View file

@ -1,5 +1,6 @@
#pragma once #pragma once
#include <fc/crypto/elliptic.hpp> #include <fc/crypto/elliptic.hpp>
#include <boost/config.hpp>
/* public_key_impl implementation based on openssl /* public_key_impl implementation based on openssl
* used by mixed + openssl * used by mixed + openssl
@ -12,21 +13,21 @@ void _init_lib();
class public_key_impl class public_key_impl
{ {
public: public:
public_key_impl() noexcept; public_key_impl() BOOST_NOEXCEPT;
public_key_impl( const public_key_impl& cpy ) noexcept; public_key_impl( const public_key_impl& cpy ) BOOST_NOEXCEPT;
public_key_impl( public_key_impl&& cpy ) noexcept; public_key_impl( public_key_impl&& cpy ) BOOST_NOEXCEPT;
~public_key_impl() noexcept; ~public_key_impl() BOOST_NOEXCEPT;
public_key_impl& operator=( const public_key_impl& pk ) noexcept; public_key_impl& operator=( const public_key_impl& pk ) BOOST_NOEXCEPT;
public_key_impl& operator=( public_key_impl&& pk ) noexcept; public_key_impl& operator=( public_key_impl&& pk ) BOOST_NOEXCEPT;
static int ECDSA_SIG_recover_key_GFp(EC_KEY *eckey, ECDSA_SIG *ecsig, const unsigned char *msg, int msglen, int recid, int check); static int ECDSA_SIG_recover_key_GFp(EC_KEY *eckey, ECDSA_SIG *ecsig, const unsigned char *msg, int msglen, int recid, int check);
EC_KEY* _key = nullptr; EC_KEY* _key = nullptr;
private: private:
void free_key() noexcept; void free_key() BOOST_NOEXCEPT;
}; };
}}} }}}

View file

@ -1,4 +1,5 @@
#include <fc/fwd_impl.hpp> #include <fc/fwd_impl.hpp>
#include <boost/config.hpp>
#include "_elliptic_impl_pub.hpp" #include "_elliptic_impl_pub.hpp"
@ -7,29 +8,29 @@
namespace fc { namespace ecc { namespace fc { namespace ecc {
namespace detail { namespace detail {
public_key_impl::public_key_impl() noexcept public_key_impl::public_key_impl() BOOST_NOEXCEPT
{ {
_init_lib(); _init_lib();
} }
public_key_impl::public_key_impl( const public_key_impl& cpy ) noexcept public_key_impl::public_key_impl( const public_key_impl& cpy ) BOOST_NOEXCEPT
{ {
_init_lib(); _init_lib();
*this = cpy; *this = cpy;
} }
public_key_impl::public_key_impl( public_key_impl&& cpy ) noexcept public_key_impl::public_key_impl( public_key_impl&& cpy ) BOOST_NOEXCEPT
{ {
_init_lib(); _init_lib();
*this = cpy; *this = cpy;
} }
public_key_impl::~public_key_impl() noexcept public_key_impl::~public_key_impl() BOOST_NOEXCEPT
{ {
free_key(); free_key();
} }
public_key_impl& public_key_impl::operator=( const public_key_impl& pk ) noexcept public_key_impl& public_key_impl::operator=( const public_key_impl& pk ) BOOST_NOEXCEPT
{ {
if (pk._key == nullptr) if (pk._key == nullptr)
{ {
@ -42,7 +43,7 @@ namespace fc { namespace ecc {
return *this; return *this;
} }
public_key_impl& public_key_impl::operator=( public_key_impl&& pk ) noexcept public_key_impl& public_key_impl::operator=( public_key_impl&& pk ) BOOST_NOEXCEPT
{ {
if ( this != &pk ) { if ( this != &pk ) {
free_key(); free_key();
@ -52,7 +53,7 @@ namespace fc { namespace ecc {
return *this; return *this;
} }
void public_key_impl::free_key() noexcept void public_key_impl::free_key() BOOST_NOEXCEPT
{ {
if( _key != nullptr ) if( _key != nullptr )
{ {

View file

@ -21,29 +21,29 @@ namespace fc { namespace ecc {
class private_key_impl class private_key_impl
{ {
public: public:
private_key_impl() noexcept private_key_impl() BOOST_NOEXCEPT
{ {
_init_lib(); _init_lib();
} }
private_key_impl( const private_key_impl& cpy ) noexcept private_key_impl( const private_key_impl& cpy ) BOOST_NOEXCEPT
{ {
_init_lib(); _init_lib();
*this = cpy; *this = cpy;
} }
private_key_impl( private_key_impl&& cpy ) noexcept private_key_impl( private_key_impl&& cpy ) BOOST_NOEXCEPT
{ {
_init_lib(); _init_lib();
*this = cpy; *this = cpy;
} }
~private_key_impl() noexcept ~private_key_impl() BOOST_NOEXCEPT
{ {
free_key(); free_key();
} }
private_key_impl& operator=( const private_key_impl& pk ) noexcept private_key_impl& operator=( const private_key_impl& pk ) BOOST_NOEXCEPT
{ {
if (pk._key == nullptr) if (pk._key == nullptr)
{ {
@ -56,7 +56,7 @@ namespace fc { namespace ecc {
return *this; return *this;
} }
private_key_impl& operator=( private_key_impl&& pk ) noexcept private_key_impl& operator=( private_key_impl&& pk ) BOOST_NOEXCEPT
{ {
if ( this != &pk ) { if ( this != &pk ) {
free_key(); free_key();
@ -69,7 +69,7 @@ namespace fc { namespace ecc {
EC_KEY* _key = nullptr; EC_KEY* _key = nullptr;
private: private:
void free_key() noexcept void free_key() BOOST_NOEXCEPT
{ {
if( _key != nullptr ) if( _key != nullptr )
{ {