小编Wil*_*ord的帖子

从布尔值构造具有底层"bool"类型的枚举?

如果我这样定义一个枚举:

enum Foo : bool { Left = false, Right = true };
Run Code Online (Sandbox Code Playgroud)

然后尝试从布尔值构造一个,如下所示:

int main (int ac, const char **av) {
    Foo foo ( ac > 1 );
    cout << boolalpha << bool(foo) << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

它失败了,但是使用了一个额外的构造函数,如下所示:

Foo foo ( Foo( ac > 1 ) );
Run Code Online (Sandbox Code Playgroud)

为什么是这样?我以为Foo foo (...) 一个显式的构造函数调用?

c++ enums

5
推荐指数
1
解决办法
2132
查看次数

标签 统计

c++ ×1

enums ×1