Утверждение времени компиляции?

Есть ли способ утверждать, что два константных выражения равны во время компиляции?

например. Я хочу, чтобы это вызвало ошибку времени компиляции

enum { foo=263, bar=264 };
SOME_EXPRESSION(foo,bar)

, но я хочу, чтобы это не приводило к ошибке

enum { foo=263, bar=263 };
SOME_EXPRESSION(foo,bar)

edit: вышесказанное было упрощено. Моя ситуация больше похожа на

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)
33
задан Nicol Bolas 4 August 2011 в 22:32
поделиться