Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/161.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 此无例外声明有效吗?_C++_Visual C++_G++_Clang++ - Fatal编程技术网

C++ 此无例外声明有效吗?

C++ 此无例外声明有效吗?,c++,visual-c++,g++,clang++,C++,Visual C++,G++,Clang++,在vc++和clang中,这是可行的,但gcc抱怨: struct X { void f() noexcept(noexcept(g())); void g() noexcept; }; 我认为这是gcc中的一个bug,而不是其他功能中的一个特性。对吗?你的评估是正确的 在类成员规范中,类在函数体、默认参数、noexcept说明符和默认成员初始值设定项(包括嵌套类中的这类内容)中被视为是完整的。否则,在其自身的类成员规范中,它被视为不完整的 在完整类型的范围内,g应通过找到 s

在vc++和clang中,这是可行的,但gcc抱怨:

struct X
{
    void f() noexcept(noexcept(g()));
    void g() noexcept;
};
我认为这是gcc中的一个bug,而不是其他功能中的一个特性。对吗?

你的评估是正确的

在类成员规范中,类在函数体、默认参数、noexcept说明符和默认成员初始值设定项(包括嵌套类中的这类内容)中被视为是完整的。否则,在其自身的类成员规范中,它被视为不完整的

在完整类型的范围内,
g
应通过找到

source_file.cpp:6:34: error: ‘g’ was not declared in this scope
     void f() noexcept(noexcept(g()));
                                  ^