首页 > 解决方案 > 使用 cvstd_wrapper.hpp opencv4.0.1 编译问题

问题描述

我正在将早期的 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++(支持 c++ 11 的 LLVM C++ 标准库)作为 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;
};

标签: opencvc++11image-processing

解决方案


推荐阅读