我正在将早期的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;
};