Есть ли способ, которым я могу утверждать, что два константных выражения равны во время компиляции?
например, я хочу, чтобы это вызывало ошибку во время компиляции
enum { foo=263, bar=264 };
SOME_EXPRESSION(foo,bar)
, но я хочу, чтобы это не вызывало ошибку
enum { foo=263, bar=263 };
SOME_EXPRESSION(foo,bar)
edit: theвыше было упрощено.Моя ситуация больше похожа на
some_other_file_I_dont_control.h:
class X
{
public:
enum { foo=263 };
}
my_file.h:
enum { bar=something+somethingelse }; // bar should equal X::foo
SOME_EXPRESSION(X::foo, bar)