Ошибка компиляции с помощью cvstd_wrapper.hpp opencv4.0.1 - PullRequest
0 голосов
/ 05 марта 2019

Я обновлял ранее 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;
};
...