diff --git a/include/boost/nondet_random.hpp b/include/boost/nondet_random.hpp index de747cf..f9f3948 100644 --- a/include/boost/nondet_random.hpp +++ b/include/boost/nondet_random.hpp @@ -104,8 +104,8 @@ public: * access specification (for example, a URL) to some implementation-defined * service for monitoring a stochastic process. */ - explicit random_device(const std::string& token = default_token); - ~random_device(); + BOOST_RANDOM_DECL explicit random_device(const std::string& token = default_token); + BOOST_RANDOM_DECL ~random_device(); /** * Returns: An entropy estimate for the random numbers returned by * operator(), in the range min() to log2( max()+1). A deterministic @@ -114,14 +114,14 @@ public: * * Throws: Nothing. */ - double entropy() const; + BOOST_RANDOM_DECL double entropy() const; /** * Returns: A random value in the range [min, max] */ - unsigned int operator()(); + BOOST_RANDOM_DECL unsigned int operator()(); private: - static const char * const default_token; + BOOST_RANDOM_DECL static const char * const default_token; /* * std:5.3.5/5 [expr.delete]: "If the object being deleted has incomplete diff --git a/include/boost/random/detail/auto_link.hpp b/include/boost/random/detail/auto_link.hpp index 2afe77c..6b180cc 100644 --- a/include/boost/random/detail/auto_link.hpp +++ b/include/boost/random/detail/auto_link.hpp @@ -14,7 +14,7 @@ #include #ifdef BOOST_HAS_DECLSPEC - #if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_FILESYSTEM_DYN_LINK) + #if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_RANDOM_DYN_LINK) #if defined(BOOST_RANDOM_SOURCE) #define BOOST_RANDOM_DECL __declspec(dllexport) #else diff --git a/src/random_device.cpp b/src/random_device.cpp index 56e1c84..1688d2f 100644 --- a/src/random_device.cpp +++ b/src/random_device.cpp @@ -31,7 +31,9 @@ const boost::random_device::result_type boost::random_device::max_value; #include #include // std::invalid_argument -const char * const boost::random_device::default_token = MS_DEF_PROV_A; +#pragma comment(lib, "Advapi32.lib") + +BOOST_RANDOM_DECL const char * const boost::random_device::default_token = MS_DEF_PROV_A; class boost::random_device::impl { @@ -164,25 +166,25 @@ private: #endif // BOOST_WINDOWS -boost::random_device::random_device(const std::string& token) +BOOST_RANDOM_DECL boost::random_device::random_device(const std::string& token) : pimpl(new impl(token)) { assert((std::numeric_limits::max)() == max_value); } -boost::random_device::~random_device() +BOOST_RANDOM_DECL boost::random_device::~random_device() { // the complete class impl is now visible, so we're safe // (see comment in random.hpp) delete pimpl; } -double boost::random_device::entropy() const +BOOST_RANDOM_DECL double boost::random_device::entropy() const { return 10; } -unsigned int boost::random_device::operator()() +BOOST_RANDOM_DECL unsigned int boost::random_device::operator()() { return pimpl->next(); }