hof
hof copied to clipboard
Build Error C2039 with MSVC when using /std:c++latest (C++20) - std::is_literal_type removed
The following minimum sample fails to compile when using MSVC with /std:c++latest (C++20). See: godbolt example
#include <vector>
#include <algorithm>
#include <boost/hof/proj.hpp>
#include <boost/hof/placeholders.hpp>
struct A
{
int i;
char c;
};
void foo(std::vector<A>& vec)
{
using namespace boost::hof;
std::sort(vec.begin(), vec.end(), proj(&A::i, _ < _));
}
The main issue is that HOF uses std::is_literal_type which was deprecated in C++17 and removed in C++20 and the Microsoft STL has removed it (link)
So it looks like __is_literal_type intrinsic is still available, so I should use that instead.
@pfultz2 any chance that this makes it into Boost 1.76.0?