id summary reporter owner description type status milestone component version severity resolution keywords cc 12874 future<> extension constructor must be under BOOST_THREAD_PROVIDES_FUTURE_UNWRAP Arthur O'Dwyer viboes "In Boost 1.63.0's ""boost/thread/future.hpp"", we see this code: {{{ inline explicit BOOST_THREAD_FUTURE(BOOST_THREAD_RV_REF(BOOST_THREAD_FUTURE >) other); // EXTENSION }}} Unfortunately, the actual definition of this inline constructor is located under an #ifdef that may not be defined at compile time: {{{ #if defined BOOST_THREAD_PROVIDES_FUTURE_UNWRAP // many lines snipped... template inline BOOST_THREAD_FUTURE::BOOST_THREAD_FUTURE(BOOST_THREAD_RV_REF(BOOST_THREAD_FUTURE >) other) : base_type(other.unwrap()) {} // several lines snipped... #endif }}} The result is that this inline constructor is declared but not defined, which produces very confusing linker errors. The appropriate solution is to wrap the declaration of this constructor in {{{ #if defined BOOST_THREAD_PROVIDES_FUTURE_UNWRAP #endif }}} No other change needs to be made, as far as I know." Patches closed Boost 1.65.0 thread Boost 1.63.0 Problem fixed