错误:“std::enable_if_t”尚未声明

error: ‘std::enable_if_t’ has not been declared

本文关键字:未声明 if std enable 错误      更新时间:2023-10-16

目前,我对这行代码有问题。它显示此错误消息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" ], .仍然显示错误。

我可以知道如何解决此错误吗?

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

我在这里找到了这个

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