Hello. I'm having a problem trying to compile some code from the command line. Long story short, the project uses promise<> from the future library. Here's what I'm seeing when I try to compile the file, which compiles just fine under Xcode 7.3.1. I'm assuming this is an Xcode bug, as something seems to have tripped up the future file and caused the _LIBCPP_AVAILABILITY_FUTURE macro to not be empty and instead equal _LIBCPP_AVAILABILITY_FUTURE_ERROR.
Thanks.
g++ -Icryptopp -Imdb -IBlockDataManager/fcgi -DUSE_CRYPTOPP -D__STDC_LIMIT_MACROS -I/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/include/python2.7 -I/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/include/python2.7 -std=c++11 -stdlib=libc++ -O2 -pipe -fPIC -c BlockUtils.cpp
In file included from BlockUtils.cpp:17:
In file included from ./BlockUtils.h:39:
In file included from ./BDM_supportClasses.h:22:
./ThreadSafeClasses.h:251:26: error: 'promise<bool>' is unavailable: introduced in macOS 10.8
auto newprom = new promise<bool>();
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/future:1362:57: note: 'promise<bool>' has been explicitly marked
unavailable here
class _LIBCPP_TYPE_VIS_ONLY _LIBCPP_AVAILABILITY_FUTURE promise
^
In file included from BlockUtils.cpp:17:
In file included from ./BlockUtils.h:39:
In file included from ./BDM_supportClasses.h:22:
./ThreadSafeClasses.h:276:26: error: 'promise<bool>' is unavailable: introduced in macOS 10.8
auto newprom = new promise<bool>();
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/future:1362:57: note: 'promise<bool>' has been explicitly marked
unavailable here
class _LIBCPP_TYPE_VIS_ONLY _LIBCPP_AVAILABILITY_FUTURE promise
^
In file included from BlockUtils.cpp:17:
In file included from ./BlockUtils.h:39:
In file included from ./BDM_supportClasses.h:22:
./ThreadSafeClasses.h:291:23: error: 'promise<bool>' is unavailable: introduced in macOS 10.8
auto promptr = (promise<bool>*)promPtr_.load();
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/future:1362:57: note: 'promise<bool>' has been explicitly marked
unavailable here
class _LIBCPP_TYPE_VIS_ONLY _LIBCPP_AVAILABILITY_FUTURE promise
^
In file included from BlockUtils.cpp:17:
In file included from ./BlockUtils.h:39:
In file included from ./BDM_supportClasses.h:22:
./ThreadSafeClasses.h:863:20: error: 'future_error' is unavailable: introduced in macOS 10.8
catch (future_error&)
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/future:502:63: note: 'future_error' has been explicitly marked
unavailable here
class _LIBCPP_EXCEPTION_ABI _LIBCPP_AVAILABILITY_FUTURE_ERROR future_error
^
In file included from BlockUtils.cpp:17:
In file included from ./BlockUtils.h:39:
In file included from ./BDM_supportClasses.h:23:
./BitcoinP2p.h:464:15: error: 'promise<bool>' is unavailable: introduced in macOS 10.8
unique_ptr<promise<bool>> connectedPromise_ = nullptr;
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/future:1362:57: note: 'promise<bool>' has been explicitly marked
unavailable here
class _LIBCPP_TYPE_VIS_ONLY _LIBCPP_AVAILABILITY_FUTURE promise
^
In file included from BlockUtils.cpp:17:
In file included from ./BlockUtils.h:39:
In file included from ./BDM_supportClasses.h:23:
./BitcoinP2p.h:465:15: error: 'promise<bool>' is unavailable: introduced in macOS 10.8
unique_ptr<promise<bool>> verackPromise_ = nullptr;
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/future:1362:57: note: 'promise<bool>' has been explicitly marked
unavailable here
class _LIBCPP_TYPE_VIS_ONLY _LIBCPP_AVAILABILITY_FUTURE promise
^
In file included from BlockUtils.cpp:17:
In file included from ./BlockUtils.h:39:
In file included from ./BDM_supportClasses.h:23:
./BitcoinP2p.h:481:4: error: 'future<bool>' is unavailable: introduced in macOS 10.8
future<bool> shutdownFuture_;
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/future:1074:57: note: 'future<bool>' has been explicitly marked
unavailable here
class _LIBCPP_TYPE_VIS_ONLY _LIBCPP_AVAILABILITY_FUTURE future
^
In file included from BlockUtils.cpp:17:
In file included from ./BlockUtils.h:39:
In file included from ./BDM_supportClasses.h:23:
./BitcoinP2p.h:487:18: error: 'promise<bool>' is unavailable: introduced in macOS 10.8
shared_ptr<promise<bool>> promise_;
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/future:1362:57: note: 'promise<bool>' has been explicitly marked
unavailable here
class _LIBCPP_TYPE_VIS_ONLY _LIBCPP_AVAILABILITY_FUTURE promise
^
In file included from BlockUtils.cpp:17:
In file included from ./BlockUtils.h:39:
./BDM_supportClasses.h:388:18: error: 'promise<bool>' is unavailable: introduced in macOS 10.8
shared_ptr<promise<bool>> finishedPromise_ = nullptr;
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/future:1362:57: note: 'promise<bool>' has been explicitly marked
unavailable here
class _LIBCPP_TYPE_VIS_ONLY _LIBCPP_AVAILABILITY_FUTURE promise
^
In file included from BlockUtils.cpp:21:
./BlockchainScanner.h:42:4: error: 'promise<bool>' is unavailable: introduced in macOS 10.8
promise<bool> scanUtxosPromise;
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/future:1362:57: note: 'promise<bool>' has been explicitly marked
unavailable here
class _LIBCPP_TYPE_VIS_ONLY _LIBCPP_AVAILABILITY_FUTURE promise
^
BlockUtils.cpp:1474:12: warning: enumeration value 'Reset_SSH' not handled in switch [-Wswitch]
switch (mode)
^
BlockUtils.cpp:1583:37: error: 'promise<bool>' is unavailable: introduced in macOS 10.8
auto waitOnPromise = make_shared<promise<bool>>();
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/future:1362:57: note: 'promise<bool>' has been explicitly marked
unavailable here
class _LIBCPP_TYPE_VIS_ONLY _LIBCPP_AVAILABILITY_FUTURE promise
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/future:1422:1: error: 'promise<std::__1::shared_ptr<Payload> >' is
unavailable: introduced in macOS 10.8
promise<_Rp>::promise()
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/memory:2142:49: note: in instantiation of member function
'std::__1::promise<std::__1::shared_ptr<Payload> >::promise' requested here
: _T1(_VSTD::forward<_T1_param>(__t1)), __second_() {}
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/memory:2411:11: note: in instantiation of member function
'std::__1::__libcpp_compressed_pair_imp<std::__1::allocator<std::__1::promise<std::__1::shared_ptr<Payload> > >, std::__1::promise<std::__1::shared_ptr<Payload> >,
1>::__libcpp_compressed_pair_imp' requested here
: base(_VSTD::forward<_T1_param>(__t1)) {}
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/memory:3795:12: note: in instantiation of member function
'std::__1::__compressed_pair<std::__1::allocator<std::__1::promise<std::__1::shared_ptr<Payload> > >, std::__1::promise<std::__1::shared_ptr<Payload> >
>::__compressed_pair' requested here
: __data_(_VSTD::move(__a)) {}
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/memory:4411:26: note: in instantiation of member function
'std::__1::__shared_ptr_emplace<std::__1::promise<std::__1::shared_ptr<Payload> >, std::__1::allocator<std::__1::promise<std::__1::shared_ptr<Payload> > >
>::__shared_ptr_emplace' requested here
::new(__hold2.get()) _CntrlBlk(__a2, _VSTD::forward<_Args>(__args)...);
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/memory:4775:29: note: in instantiation of function template
specialization 'std::__1::shared_ptr<std::__1::promise<std::__1::shared_ptr<Payload> > >::make_shared<>' requested here
return shared_ptr<_Tp>::make_shared(_VSTD::forward<_Args>(__args)...);
^
./BitcoinP2p.h:430:15: note: in instantiation of function template specialization 'std::__1::make_shared<std::__1::promise<std::__1::shared_ptr<Payload> >>' requested here
prom_ = make_shared<promise<shared_ptr<Payload>>>();
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/future:1362:57: note: 'promise<std::__1::shared_ptr<Payload> >' has
been explicitly marked unavailable here
class _LIBCPP_TYPE_VIS_ONLY _LIBCPP_AVAILABILITY_FUTURE promise
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/future:632:1: error:
'__assoc_state<std::__1::shared_ptr<Payload> >' is unavailable: introduced in macOS 10.8
__assoc_state<_Rp>::__on_zero_shared() _NOEXCEPT
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/future:1423:20: note: in instantiation of member function
'std::__1::__assoc_state<std::__1::shared_ptr<Payload> >::__on_zero_shared' requested here
: __state_(new __assoc_state<_Rp>)
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/memory:2142:49: note: in instantiation of member function
'std::__1::promise<std::__1::shared_ptr<Payload> >::promise' requested here
: _T1(_VSTD::forward<_T1_param>(__t1)), __second_() {}
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/memory:2411:11: note: in instantiation of member function
'std::__1::__libcpp_compressed_pair_imp<std::__1::allocator<std::__1::promise<std::__1::shared_ptr<Payload> > >, std::__1::promise<std::__1::shared_ptr<Payload> >,
1>::__libcpp_compressed_pair_imp' requested here
: base(_VSTD::forward<_T1_param>(__t1)) {}
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/memory:3795:12: note: in instantiation of member function
'std::__1::__compressed_pair<std::__1::allocator<std::__1::promise<std::__1::shared_ptr<Payload> > >, std::__1::promise<std::__1::shared_ptr<Payload> >
>::__compressed_pair' requested here
: __data_(_VSTD::move(__a)) {}
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/memory:4411:26: note: in instantiation of member function
'std::__1::__shared_ptr_emplace<std::__1::promise<std::__1::shared_ptr<Payload> >, std::__1::allocator<std::__1::promise<std::__1::shared_ptr<Payload> > >
>::__shared_ptr_emplace' requested here
::new(__hold2.get()) _CntrlBlk(__a2, _VSTD::forward<_Args>(__args)...);
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/memory:4775:29: note: in instantiation of function template
specialization 'std::__1::shared_ptr<std::__1::promise<std::__1::shared_ptr<Payload> > >::make_shared<>' requested here
return shared_ptr<_Tp>::make_shared(_VSTD::forward<_Args>(__args)...);
^
./BitcoinP2p.h:430:15: note: in instantiation of function template specialization 'std::__1::make_shared<std::__1::promise<std::__1::shared_ptr<Payload> >>' requested here
prom_ = make_shared<promise<shared_ptr<Payload>>>();
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/future:601:35: note:
'__assoc_state<std::__1::shared_ptr<Payload> >' has been explicitly marked unavailable here
class _LIBCPP_AVAILABILITY_FUTURE __assoc_state
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/future:1441:1: error: 'promise<std::__1::shared_ptr<Payload> >' is
unavailable: introduced in macOS 10.8
promise<_Rp>::~promise()
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/memory:2029:7: note: in instantiation of member function
'std::__1::promise<std::__1::shared_ptr<Payload> >::~promise' requested here
class __libcpp_compressed_pair_imp;
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/memory:4411:26: note: in instantiation of member function
'std::__1::__shared_ptr_emplace<std::__1::promise<std::__1::shared_ptr<Payload> >, std::__1::allocator<std::__1::promise<std::__1::shared_ptr<Payload> > >
>::__shared_ptr_emplace' requested here
::new(__hold2.get()) _CntrlBlk(__a2, _VSTD::forward<_Args>(__args)...);
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/memory:4775:29: note: in instantiation of function template
specialization 'std::__1::shared_ptr<std::__1::promise<std::__1::shared_ptr<Payload> > >::make_shared<>' requested here
return shared_ptr<_Tp>::make_shared(_VSTD::forward<_Args>(__args)...);
^
./BitcoinP2p.h:430:15: note: in instantiation of function template specialization 'std::__1::make_shared<std::__1::promise<std::__1::shared_ptr<Payload> >>' requested here
prom_ = make_shared<promise<shared_ptr<Payload>>>();
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/future:1362:57: note: 'promise<std::__1::shared_ptr<Payload> >' has
been explicitly marked unavailable here
class _LIBCPP_TYPE_VIS_ONLY _LIBCPP_AVAILABILITY_FUTURE promise
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/future:1455:1: error: 'promise<std::__1::shared_ptr<Payload> >' is
unavailable: introduced in macOS 10.8
promise<_Rp>::get_future()
^
./BitcoinP2p.h:431:21: note: in instantiation of member function 'std::__1::promise<std::__1::shared_ptr<Payload> >::get_future' requested here
fut_ = prom_->get_future();
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/future:1362:57: note: 'promise<std::__1::shared_ptr<Payload> >' has
been explicitly marked unavailable here
class _LIBCPP_TYPE_VIS_ONLY _LIBCPP_AVAILABILITY_FUTURE promise
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/future:1145:1: error: 'future<std::__1::shared_ptr<Payload> >' is
unavailable: introduced in macOS 10.8
future<_Rp>::future(__assoc_state<_Rp>* __state)
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/future:1461:12: note: in instantiation of member function
'std::__1::future<std::__1::shared_ptr<Payload> >::future' requested here
return future<_Rp>(__state_);
^
./BitcoinP2p.h:431:21: note: in instantiation of member function 'std::__1::promise<std::__1::shared_ptr<Payload> >::get_future' requested here
fut_ = prom_->get_future();
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/future:1074:57: note: 'future<std::__1::shared_ptr<Payload> >' has
been explicitly marked unavailable here
class _LIBCPP_TYPE_VIS_ONLY _LIBCPP_AVAILABILITY_FUTURE future
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/future:1162:1: error: 'future<std::__1::shared_ptr<Payload> >' is
unavailable: introduced in macOS 10.8
future<_Rp>::~future()
^
./BitcoinP2p.h:431:14: note: in instantiation of member function 'std::__1::future<std::__1::shared_ptr<Payload> >::~future' requested here
fut_ = prom_->get_future();
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/future:1074:57: note: 'future<std::__1::shared_ptr<Payload> >' has
been explicitly marked unavailable here
class _LIBCPP_TYPE_VIS_ONLY _LIBCPP_AVAILABILITY_FUTURE future
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/future:1441:1: error: 'promise<InvEntry>' is unavailable:
introduced in macOS 10.8
promise<_Rp>::~promise()
^
./ThreadSafeClasses.h:335:23: note: in instantiation of member function 'std::__1::promise<InvEntry>::~promise' requested here
auto&& retval = valptr->get();
^
./ThreadSafeClasses.h:269:4: note: in instantiation of member function 'Stack<std::__1::promise<InvEntry> >::pop_front' requested here
Stack()
^
./BDM_supportClasses.h:445:4: note: in instantiation of member function 'Stack<std::__1::promise<InvEntry> >::Stack' requested here
ZeroConfContainer(LMDBBlockDatabase* db,
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/future:1362:57: note: 'promise<InvEntry>' has been explicitly
marked unavailable here
class _LIBCPP_TYPE_VIS_ONLY _LIBCPP_AVAILABILITY_FUTURE promise
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/future:1422:1: error: 'promise<bool>' is unavailable: introduced in
macOS 10.8
promise<_Rp>::promise()
^
./BlockchainScanner.h:65:4: note: in instantiation of member function 'std::__1::promise<bool>::promise' requested here
BlockDataBatch(unsigned end, atomic<unsigned>* counter) :
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/future:1362:57: note: 'promise<bool>' has been explicitly marked
unavailable here
class _LIBCPP_TYPE_VIS_ONLY _LIBCPP_AVAILABILITY_FUTURE promise
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
1 warning and 20 errors generated.
make: *** [BlockUtils.o] Error 1