错误:'std :: enable_if_t'尚未声明

时间:2017-01-06 08:56:44

标签: c++

目前,我遇到了这行代码的问题。它显示此错误消息error: ‘std::enable_if_t’ has not been declared。我已经包含了#include <type_traits>头文件,但它仍然是相同的。下面是我的src代码:

template<class T>
std::string toJSON(const T& o,std::enable_if_t<detail::hasBindFunction<T>::value>* =nullptr)

我已将c ++版本添加到我的binding.gyp文件中。 "cflags": [ "-std=c++14" ],。仍有错误显示在那里。

我可以知道如何修复此错误。

2 个答案:

答案 0 :(得分:5)

std::enable_if_t是C ++ 14的一个特性,因此您需要在编译器中启用C ++ 14。在Clang或GCC中,这是通过-std=c++14标志完成的。

答案 1 :(得分:0)

我发现了here

{
    "targets": [
    {
        "target_name": "yourproject",
        "sources": [ "yourproject.cpp" ],
        "cflags" : [ "-std=c++14", "-stdlib=libc++" ]
        "conditions": [
          [ 'OS!="win"', {
            "cflags+": [ "-std=c++14" ],
            "cflags_c+": [ "-std=c++14" ],
            "cflags_cc+": [ "-std=c++14" ],
          }],
          [ 'OS=="mac"', {
            "xcode_settings": {
              "OTHER_CPLUSPLUSFLAGS" : [ "-std=c++14", "-stdlib=libc++" ],
              "OTHER_LDFLAGS": [ "-stdlib=libc++" ],
              "MACOSX_DEPLOYMENT_TARGET": "10.7"
            },
          }],
        ],
    }
    ]
}