Я обновлял ранее c код (opencv1.0) до opencv 4.Пока я менял и обновлял api, все выглядело нормально, однако в конце я получил ошибку с вышеупомянутым файлом следующим образом:
/usr/local/include/opencv4/opencv2/core/cvstd_wrapper.hpp:45:40: Declaration of constexpr static data member 'check' requires an initializer
/usr/local/include/opencv4/opencv2/core/cvstd_wrapper.hpp:47:31: Constexpr can only be used in variable and function declarations
Я использую LLVM 8.1 и использую libc ++ (стандартная библиотека LLVM C ++с поддержкой c ++ 11) в качестве стандартной библиотеки c ++.
Ниже приведена часть кода, которая показывает ошибку в opencv.
struct has_parenthesis_operator
{
private:
template<typename T>
CV_CONSTEXPR std::true_type check(typename std::is_same<typename
std::decay<decltype(std::declval<T>().operator()(std::declval<Args> .
()...))>::type, Ret>::type*);
template<typename> static CV_CONSTEXPR std::false_type check(...);
typedef decltype(check<C>(0)) type;
public:
static CV_CONSTEXPR bool value = type::value;
};