这个代码合法吗?它可以编译,但我想知道返回值会发生什么。未定义的行为?
class Foo {
public:
void test1() {
}
auto test() -> decltype(test1()) {
return test1(); //<---return void here!
}
};
Run Code Online (Sandbox Code Playgroud)
代码是合法的。auto推导出void一个void函数可以返回另一个void函数。一个void函数甚至可以
return static_cast<void>("I'm a void");
Run Code Online (Sandbox Code Playgroud)