Skip to content

Replace Boost with C++17

Michael Kuron requested to merge boost into master

To do:

  • Bump CUDA to 11 (error: namespace "std" has no member "optional") or restore C++14 support in header files used by CUDA code
  • Remove std::iterator usage (warning STL4015: The std::iterator class template (used as a base class to provide typedefs) is deprecated in C++17. (The <iterator> header is NOT deprecated.) The C++ Standard has never required user-defined iterators to derive from std::iterator. To fix this warning, stop deriving from std::iterator and start providing publicly accessible typedefs named iterator_category, value_type, difference_type, pointer, and reference. Note that value_type is required to be non-const, even for constant iterators.)
  • Update Boost on Windows VMs or remove it (warning STL4010: Various members of std::allocator are deprecated in C++17. Use std::allocator_traits instead of accessing these members directly., error C2039: 'unary_function': is not a member of 'std', error C2143: syntax error: missing ',' before '<')
  • Fix C:\cygwin64\home\build\builds\walberla\walberla\src\mesa_pd\data\shape\ShapeTypes.cpp(31): warning C5041: 'SHAPE_TYPE': out-of-line definition for constexpr static data member is not needed and is deprecated in C++17
  • Remove usage of std::bind(&std::string::..., ...) (error: no instance of overloaded function "std::_Bind[...] matches the argument list)
  • Remove Intel 2018 (error: namespace "std" has no member "optional")
  • Intel 2019 is currently incompatible with pybind11 in C++17 mode (https://github.com/pybind/pybind11/pull/2714, https://github.com/pybind/pybind11/issues/2707, https://community.intel.com/t5/Intel-C-Compiler/Bug-report-icpc-fe-can-t-handle-fold-expressions-with-using/m-p/1233016#M38025)
  • Intel 2019 fails to build VariantTest
  • MSVC C:\cygwin64\home\build\builds\walberla\walberla\src\gather\CellGatherPackInfo.h(127): error C2143: syntax error: missing ',' before '<'
  • MSVC C:\cygwin64\home\build\builds\walberla\walberla\src\boundary/BoundaryHandling.h(2237): error C2059: syntax error: 'for'

Depends on !352 (merged)

Edited by Michael Kuron

Merge request reports