Rick York
Кстати - с теми значениями, которые вы присвоили этим переменным, ваше условие "ярлыка" никогда не будет истинным.
Я нахожу макросы полезными в подобных ситуациях. Ими определенно можно злоупотреблять злым образом, но они также могут быть весьма полезны. Вот как бы я это сделал :
using PCTSTR = const char *;
bool CompVarValues( PCTSTR varname, int value1, int value2 )
{
bool state = ( value1 == value2 );
PCTSTR boolstr = state ? "true" : "false";
std::cout << "comparing value of " << varname << " result is " << boolstr << std::endl;
}
// a macro to help with this - it uses the string-izing operator #
#define CompareValues( a, b ) CompVarValues( #a, a, b )
// usage :
CompareValues( my_name, a );
CompareValues( my_class, a );
CompareValues( my_age, a );