错误:'NOEXCEPT'没有命名类型|错误:'_NOEXCEPT'

时间:2016-06-30 20:21:21

标签: c++ linux c++11 g++

我正在尝试在我的RaspberryPi(Linux)上编译C ++文件,但它会抛出错误:

  

错误:'_NOEXCEPT'之前的预期初始值设定项    JSONException JSONException :: MissingKey(const std :: string& key)_NOEXCEPT                                                                    ^   /root/libapiai_demo/libapiai/apiai/src/exceptions/JSONException.cpp:23:101:错误:'_NOEXCEPT'之前的预期初始值设定项    JSONException JSONException :: TypeMismatch(const std :: string& key,const std :: string& expected_type)_NOEXCEPT

我甚至尝试用throw()和_GLIBCXX_USE_NOEXCEPT替换它,但是没有用。

用noexcept替换它(小) 它抛出错误:

  

错误:声明'ai :: Exception :: Exception(const char *)noexcept'有>不同的异常说明符       Exception :: Exception(const char * reason)noexcept:reason(reason){

我的编译器是否有问题,但我使用的是最新版本。

我的CMake txt文件也有:

include(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
if(COMPILER_SUPPORTS_CXX11)
        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
elseif(COMPILER_SUPPORTS_CXX0X)
        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
else()
        message(FATAL_ERROR "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
endif()

add_compile_options(-std=c++11)

对于要编译的代码,仍然会抛出错误。

g ++ --version g ++(Raspbian 4.9.2-10)4.9.2

下面是抛出错误的1个这样的文件。

是否像4.9.2那样不支持noexcept。因为我被卡住了,有人可以帮助我。

#ifndef EXCEPTION_H
#define EXCEPTION_H

#include <string>
#include <exception>

namespace ai {

class Exception: public std::exception
{
private:
    std::string reason;
public:

    Exception(const char *reason) _NOEXCEPT;

    virtual const char* what() const _NOEXCEPT override;

    virtual ~Exception() _NOEXCEPT;
};

}
#endif // EXCEPTION_H

0 个答案:

没有答案