We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Describe the bug eCAL does not build with C++17. Issue seems to be thirdparty/simpleini.
Minimal example to reproduce
mkdir _build cd _build cmake .. -DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_STANDARD_REQUIRED=ON -DCMAKE_CXX_EXTENSIONS=ON cmake --build . --parallel --config Release
------ Build All started: Project: ecal-core, Configuration: x64-Release ------ [1/3] Building CXX object ecal\core\CMakeFiles\core.dir\src\ecal_config_reader.cpp.obj FAILED: ecal/core/CMakeFiles/core.dir/src/ecal_config_reader.cpp.obj C:[...]\x64\cl.exe /nologo /TP -DASIO_DISABLE_VISIBILITY -DASIO_STANDALONE -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS -D_WIN32_WINNT=0x0601 -Dcore_EXPORTS -DeCAL_EXPORTS -I....\ecal\core\src -I....\ecal\core\include -Iecal\core\include -I....\lib\ecal_protobuf\include -I....\thirdparty\protobuf\src -Iecal\core_pb\protobuf -I....\thirdparty\ecal-utils\include -I....\thirdparty\tcp_pubsub\tcp_pubsub\include -Ithirdparty\tcp_pubsub\tcp_pubsub -I"C:\Program Files\HDF_Group\HDF5\1.10.5\include" -I....\thirdparty\asio\asio\include -I....\thirdparty\tclap\include -I....\thirdparty\simpleini /DWIN32 /D_WINDOWS /W3 /GR /EHsc /MP /W4 /MD /O2 /Ob2 /DNDEBUG -std:c++17 /showIncludes /Foecal\core\CMakeFiles\core.dir\src\ecal_config_reader.cpp.obj /Fdecal\core\CMakeFiles\core.dir\ /FS -c ....\ecal\core\src\ecal_config_reader.cpp C:[...]\ext\ecal-core_build\x64-Release\cl : Command line warning D9025: overriding '/W3' with '/W4' C:[...]\ext\ecal-core\thirdparty\simpleini\SimpleIni.h(329): error C2143: syntax error: missing ',' before '<' ....\thirdparty\simpleini\SimpleIni.h(331): note: see reference to class template instantiation 'CSimpleIniTempl<SI_CHAR,SI_STRLESS,SI_CONVERTER>::Entry::KeyOrder' being compiled ....\thirdparty\simpleini\SimpleIni.h(340): note: see reference to class template instantiation 'CSimpleIniTempl<SI_CHAR,SI_STRLESS,SI_CONVERTER>::Entry' being compiled ....\thirdparty\simpleini\SimpleIni.h(1245): note: see reference to class template instantiation 'CSimpleIniTempl<SI_CHAR,SI_STRLESS,SI_CONVERTER>' being compiled C:[...]\ext\ecal-core\thirdparty\simpleini\SimpleIni.h(337): error C2143: syntax error: missing ',' before '<' ....\thirdparty\simpleini\SimpleIni.h(340): note: see reference to class template instantiation 'CSimpleIniTempl<SI_CHAR,SI_STRLESS,SI_CONVERTER>::Entry::LoadOrder' being compiled C:[...]\ext\ecal-core\thirdparty\simpleini\SimpleIni.h(329): error C2039: 'binary_function': is not a member of 'std' C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.29.30133\include\algorithm(40): note: see declaration of 'std' C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.29.30133\include\xmemory(1321): note: see reference to class template instantiation 'CSimpleIniTempl<char,SI_NoCase,SI_ConvertA>::Entry::KeyOrder' being compiled C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.29.30133\include\xmemory(1321): note: see reference to variable template 'const bool is_empty_v<CSimpleIniTempl<char,SI_NoCase,SI_ConvertA >::Entry::KeyOrder>' being compiled C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.29.30133\include\map(73): note: see reference to class template instantiation 'std::_Tree<std::_Tmap_traits<_Kty,_Ty,_Pr,_Alloc,false>>' being compiled with [ _Kty=CSimpleIniTempl<char,SI_NoCase,SI_ConvertA>::Entry, _Ty=std::multimap<CSimpleIniTempl<char,SI_NoCase,SI_ConvertA>::Entry,const char *,CSimpleIniTempl<char,SI_NoCase,SI_ConvertA>::Entry::KeyOrder,std::allocator<std::pair<const CSimpleIniTempl<char,SI_NoCase,SI_ConvertA>::Entry,const char *>>>, _Pr=CSimpleIniTempl<char,SI_NoCase,SI_ConvertA>::Entry::KeyOrder, _Alloc=std::allocator<std::pair<const CSimpleIniTempl<char,SI_NoCase,SI_ConvertA>::Entry,std::multimap<CSimpleIniTempl<char,SI_NoCase,SI_ConvertA>::Entry,const char *,CSimpleIniTempl<char,SI_NoCase,SI_ConvertA>::Entry::KeyOrder,std::allocator<std::pair<const CSimpleIniTempl<char,SI_NoCase,SI_ConvertA>::Entry,const char *>>>>> ] ....\thirdparty\simpleini\SimpleIni.h(1221): note: see reference to class template instantiation 'std::map<CSimpleIniTempl<char,SI_NoCase,SI_ConvertA>::Entry,std::multimap<CSimpleIniTempl<char,SI_NoCase,SI_ConvertA>::Entry,const SI_CHAR *,CSimpleIniTempl<SI_CHAR,SI_NoCase<SI_CHAR>,SI_ConvertA<SI_CHAR>>::Entry::KeyOrder,std::allocator<std::pair<const CSimpleIniTempl<SI_CHAR,SI_NoCase<SI_CHAR>,SI_ConvertA<SI_CHAR>>::Entry,const SI_CHAR *>>>,CSimpleIniTempl<SI_CHAR,SI_NoCase<SI_CHAR>,SI_ConvertA<SI_CHAR>>::Entry::KeyOrder,std::allocator<std::pair<const CSimpleIniTempl<SI_CHAR,SI_NoCase<SI_CHAR>,SI_ConvertA<SI_CHAR>>::Entry,std::multimap<CSimpleIniTempl<SI_CHAR,SI_NoCase<SI_CHAR>,SI_ConvertA<SI_CHAR>>::Entry,const SI_CHAR *,CSimpleIniTempl<SI_CHAR,SI_NoCase<SI_CHAR>,SI_ConvertA<SI_CHAR>>::Entry::KeyOrder,std::allocator<std::pair<const CSimpleIniTempl<SI_CHAR,SI_NoCase<SI_CHAR>,SI_ConvertA<SI_CHAR>>::Entry,const SI_CHAR *>>>>>>' being compiled with [ SI_CHAR=char ] ....\ecal\core\src\ecal_config_reader.cpp(283): note: see reference to class template instantiation 'CSimpleIniTempl<char,SI_NoCase,SI_ConvertA>' being compiled C:[...]\ext\ecal-core\thirdparty\simpleini\SimpleIni.h(329): error C2504: 'binary_function': base class undefined ninja: build stopped: subcommand failed. Build All failed.
------ Build All started: Project: ecal-core, Configuration: x64-Release ------ [1/3] Building CXX object ecal\core\CMakeFiles\core.dir\src\ecal_config_reader.cpp.obj FAILED: ecal/core/CMakeFiles/core.dir/src/ecal_config_reader.cpp.obj C:[...]\x64\cl.exe /nologo /TP -DASIO_DISABLE_VISIBILITY -DASIO_STANDALONE -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS -D_WIN32_WINNT=0x0601 -Dcore_EXPORTS -DeCAL_EXPORTS -I....\ecal\core\src -I....\ecal\core\include -Iecal\core\include -I....\lib\ecal_protobuf\include -I....\thirdparty\protobuf\src -Iecal\core_pb\protobuf -I....\thirdparty\ecal-utils\include -I....\thirdparty\tcp_pubsub\tcp_pubsub\include -Ithirdparty\tcp_pubsub\tcp_pubsub -I"C:\Program Files\HDF_Group\HDF5\1.10.5\include" -I....\thirdparty\asio\asio\include -I....\thirdparty\tclap\include -I....\thirdparty\simpleini /DWIN32 /D_WINDOWS /W3 /GR /EHsc /MP /W4 /MD /O2 /Ob2 /DNDEBUG -std:c++17 /showIncludes /Foecal\core\CMakeFiles\core.dir\src\ecal_config_reader.cpp.obj /Fdecal\core\CMakeFiles\core.dir\ /FS -c ....\ecal\core\src\ecal_config_reader.cpp C:[...]\ext\ecal-core_build\x64-Release\cl : Command line warning D9025: overriding '/W3' with '/W4' C:[...]\ext\ecal-core\thirdparty\simpleini\SimpleIni.h(329): error C2143: syntax error: missing ',' before '<' ....\thirdparty\simpleini\SimpleIni.h(331): note: see reference to class template instantiation 'CSimpleIniTempl<SI_CHAR,SI_STRLESS,SI_CONVERTER>::Entry::KeyOrder' being compiled ....\thirdparty\simpleini\SimpleIni.h(340): note: see reference to class template instantiation 'CSimpleIniTempl<SI_CHAR,SI_STRLESS,SI_CONVERTER>::Entry' being compiled ....\thirdparty\simpleini\SimpleIni.h(1245): note: see reference to class template instantiation 'CSimpleIniTempl<SI_CHAR,SI_STRLESS,SI_CONVERTER>' being compiled C:[...]\ext\ecal-core\thirdparty\simpleini\SimpleIni.h(337): error C2143: syntax error: missing ',' before '<' ....\thirdparty\simpleini\SimpleIni.h(340): note: see reference to class template instantiation 'CSimpleIniTempl<SI_CHAR,SI_STRLESS,SI_CONVERTER>::Entry::LoadOrder' being compiled C:[...]\ext\ecal-core\thirdparty\simpleini\SimpleIni.h(329): error C2039: 'binary_function': is not a member of 'std' C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.29.30133\include\algorithm(40): note: see declaration of 'std' C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.29.30133\include\xmemory(1321): note: see reference to class template instantiation 'CSimpleIniTempl<char,SI_NoCase,SI_ConvertA>::Entry::KeyOrder' being compiled C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.29.30133\include\xmemory(1321): note: see reference to variable template 'const bool is_empty_v<CSimpleIniTempl<char,SI_NoCase,SI_ConvertA >::Entry::KeyOrder>' being compiled C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.29.30133\include\map(73): note: see reference to class template instantiation 'std::_Tree<std::_Tmap_traits<_Kty,_Ty,_Pr,_Alloc,false>>' being compiled with [ _Kty=CSimpleIniTempl<char,SI_NoCase,SI_ConvertA>::Entry, _Ty=std::multimap<CSimpleIniTempl<char,SI_NoCase,SI_ConvertA>::Entry,const char *,CSimpleIniTempl<char,SI_NoCase,SI_ConvertA>::Entry::KeyOrder,std::allocator<std::pair<const CSimpleIniTempl<char,SI_NoCase,SI_ConvertA>::Entry,const char *>>>, _Pr=CSimpleIniTempl<char,SI_NoCase,SI_ConvertA>::Entry::KeyOrder, _Alloc=std::allocator<std::pair<const CSimpleIniTempl<char,SI_NoCase,SI_ConvertA>::Entry,std::multimap<CSimpleIniTempl<char,SI_NoCase,SI_ConvertA>::Entry,const char *,CSimpleIniTempl<char,SI_NoCase,SI_ConvertA>::Entry::KeyOrder,std::allocator<std::pair<const CSimpleIniTempl<char,SI_NoCase,SI_ConvertA>::Entry,const char *>>>>> ] ....\thirdparty\simpleini\SimpleIni.h(1221): note: see reference to class template instantiation 'std::map<CSimpleIniTempl<char,SI_NoCase,SI_ConvertA>::Entry,std::multimap<CSimpleIniTempl<char,SI_NoCase,SI_ConvertA>::Entry,const SI_CHAR *,CSimpleIniTempl<SI_CHAR,SI_NoCase<SI_CHAR>,SI_ConvertA<SI_CHAR>>::Entry::KeyOrder,std::allocator<std::pair<const CSimpleIniTempl<SI_CHAR,SI_NoCase<SI_CHAR>,SI_ConvertA<SI_CHAR>>::Entry,const SI_CHAR *>>>,CSimpleIniTempl<SI_CHAR,SI_NoCase<SI_CHAR>,SI_ConvertA<SI_CHAR>>::Entry::KeyOrder,std::allocator<std::pair<const CSimpleIniTempl<SI_CHAR,SI_NoCase<SI_CHAR>,SI_ConvertA<SI_CHAR>>::Entry,std::multimap<CSimpleIniTempl<SI_CHAR,SI_NoCase<SI_CHAR>,SI_ConvertA<SI_CHAR>>::Entry,const SI_CHAR *,CSimpleIniTempl<SI_CHAR,SI_NoCase<SI_CHAR>,SI_ConvertA<SI_CHAR>>::Entry::KeyOrder,std::allocator<std::pair<const CSimpleIniTempl<SI_CHAR,SI_NoCase<SI_CHAR>,SI_ConvertA<SI_CHAR>>::Entry,const SI_CHAR *>>>>>>' being compiled with [ SI_CHAR=char ] ....\ecal\core\src\ecal_config_reader.cpp(283): note: see reference to class template instantiation 'CSimpleIniTempl<char,SI_NoCase,SI_ConvertA>' being compiled C:[...]\ext\ecal-core\thirdparty\simpleini\SimpleIni.h(329): error C2504: 'binary_function': base class undefined ninja: build stopped: subcommand failed.
Build All failed.
Issue seems to be same error message as brofield/simpleini#48
Builds fine using Ubuntu 20.04.
Desktop (please complete the following information):
The text was updated successfully, but these errors were encountered:
Successfully merging a pull request may close this issue.
Same issue as eclipse-ecal/ecal-core#9
Describe the bug
eCAL does not build with C++17. Issue seems to be thirdparty/simpleini.
Minimal example to reproduce
Issue seems to be same error message as brofield/simpleini#48
Builds fine using Ubuntu 20.04.
Desktop (please complete the following information):
The text was updated successfully, but these errors were encountered: