------- Comment #2 from rbuergel at web dot de  2008-11-09 04:22 -------
ok, even for the case i misunderstood the proposal: there are still some
problems with it, making it unuseable.

enum class E { elem };
inline bool operator== (E c1, E c2)
{
        return (int) c1 == (int) c2;
}

int main()
{
        E::elem == E::elem; //works now
        static_assert(E::elem == E::elem, ""); //fails
        return 1;
}

tc2.cpp: In function 'int main()':
tc2.cpp:10: error: calls to overloaded operators cannot appear in a
constant-expression

... which leads to the conclusion, that strongly-typed enums can't be used in
constant-expression. That's definitely not intended by the proposal.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38064

Reply via email to