Vlad Didenko
Vlad Didenko

Reputation: 4771

Avoid hardcoding enum type

In c++11 code it would be nice to avoid mentioning a specific enum qualifier every time I use the enum value - as it is a new code and it is refactored a lot.

For that purpose is it possible something in the spirit of the last line of this pseudo code:

enum abc { a,b,c };
// some long code of events which returns the enum's value
auto e = []()->abc{return abc::b;}();
if (e == std::declval(e)::a) { ...

If not possible in C++11 will it become possible in C++14 or 17?

Upvotes: 5

Views: 495

Answers (1)

krzaq
krzaq

Reputation: 16421

You're close, you can use decltype:

if (e == decltype(e)::a) {
    ...

Upvotes: 8

Related Questions