
After trying to compile my own project (using the previously installed boost) I find other install problems: - uuid library is not installed (no header or directory is installed, but it is present in my repository working directory - boost_github directory); - signals2 is not installed either (no header or directory as for uuid); At this point I tried to install the headers of these libraries manually (copy/paste of the headers from the repo to the include directory). I also fixed includes that have changed, notably Filesystem and Program Options changes, to compile my projects. I still found: - ...\boost\include\boost-1_56\boost\signals2\detail\null_output_iterator.hpp(14): fatal error C1083: Cannot open include file: 'boost/function_output_iterator.hpp': No such file or directory I checked that the iterator library was actually installed and it is but only partially: - function_output_iterator.hpp - generator_iterator.hpp - shared_container_iterator.hpp which I found in my boost git working directory were not installed, but other files from iterator were installed. I installed them manually. - I got this link error: 3>typevaluemap.obj : error LNK2019: unresolved external symbol "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl boost::operator<<<char,struct std::char_traits<char>,int>(class std::basic_ostream<char,struct std::char_traits<char> > &,class boost::optional<int> const &)" (??$?6DU?$char_traits@D@std@@H@boost @@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV12@ABV?$optional@H@0@@Z) referenced in function "void __cdecl testing_internal::DefaultPrintNonContainerTo<class boost::optional<int>
(class boost::optional<int> const &,class std::basic_ostream<char,struct std::char_traits<char> > *)" (??$DefaultPrintNonContainerTo@V?$optional@H @boost@@@testing_internal@@YAXABV?$optional@H@boost@@PAV?$basic_ostream@DU ?$char_traits@D@std@@@std@@@Z) 3>typevaluemap.obj : error LNK2019: unresolved external symbol "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl boost::operator<<<char,struct std::char_traits<char>,float>(class std::basic_ostream<char,struct std::char_traits<char> > &,class boost::optional<float> const &)" (??$?6DU?$char_traits@D@std@@M@boost @@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV12@ABV?$optional@M@0@@Z) referenced in function "void __cdecl testing_internal::DefaultPrintNonContainerTo<class boost::optional<float> (class boost::optional<float> const &,class std::basic_ostream<char,struct std::char_traits<char> > *)" (??$DefaultPrintNonContainerTo@V?$optional@M @boost@@@testing_internal@@YAXABV?$optional@M@boost@@PAV?$basic_ostream@DU ?$char_traits@D@std@@@std@@@Z)
The corresponding cpp file is a test file for a header-only class provided in another library. I can provide all the files if needed but it seems that the problem is in the optional library, which is used in the interface of the TypeValueMap type tested there. For example, the functions using boost::optional are defined this way: template< class ValueType > inline boost::optional<ValueType> TypeValueMap::write( ValueType value ) { boost::optional<ValueType> previous_value; if( auto* slot = m_slot_index.find<ValueType>() ) { previous_value = slot->value; slot->value = value; } else { m_slot_index.create<ValueType>( std::move(value) ); } if( !previous_value.is_initialized() ) { size_changed(); } return previous_value; } template< class ValueType > inline boost::optional<ValueType> TypeValueMap::read() const { auto* slot = m_slot_index.find<ValueType>(); if( slot && slot->value ) { return slot->value.get(); } return {}; } I stop my attempt at this point but will be able to do some tests if needed in the coming days. I will try the boost tests after the next master updates.