2017-01-06 139 views
0

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

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" ],。仍然有错误显示在那里。

我可以知道如何解决这个错误。

+0

您需要启用'C++ 14' – Danh

+0

解释什么是binding.gyp。它在IDE中吗? – Boiethios

+1

我不知道binding.gyp,但我想它应该有'cxxflags'。我相信'cflags'用于C而不是 – Danh

回答

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" 
      }, 
      }], 
     ], 
    } 
    ] 
} 
+0

如果它的linux – anonymous5671

+0

它使用OS'=“win”''中的配置。你的意思是“如果是Windows”呢? – Boiethios

+0

这对我很有用,非常感谢... – anonymous5671

5

std::enable_if_t是一个C++ 14功能,所以你需要在你的编译器中启用C++ 14。在Clang或GCC中,这是通过-std=c++14标志完成的。

+0

我已经将''cflags“:[”-std = C++ 14“]添加到了binding.gyp文件中,但仍然存在相同的错误。 – anonymous5671