[Bug c++/69772] New: enum class bool comparison error
claytrychta at gmail dot com
gcc-bugzilla@gcc.gnu.org
Thu Feb 11 18:35:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69772
Bug ID: 69772
Summary: enum class bool comparison error
Product: gcc
Version: 5.3.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: claytrychta at gmail dot com
Target Milestone: ---
The below code comparing a type of enum class bool fails to compile with this
error:
main.cpp: In function 'int main()':
main.cpp:10:47: error: could not convert 'test' from 'Test' to 'bool'
const char *p = Test::Foo == test ? "a" : "b";
enum class Test : bool
{
Foo,
Bar
};
int main()
{
Test test = Test::Foo;
const char *p = Test::Foo == test ? "a" : "b";
(void)p;
}
Changing the underlying type of the enum to other types (short, int, or long)
works. Also, returning other types in the ternary (such as int) works.
More information about the Gcc-bugs
mailing list