У меня есть макрос:Как заменить макрос на функцию шаблона?
#define TWO_CMD(c1, c2) { const long r1=c1; if (r1) return r1; return c2; }
и использование:
long MyClass::SomeFunc(long a)
{
//...
if (a)
TWO_CMD(Func<int>(a), Func<void>());
else
TWO_CMD(Func<double>(), Func<std::string>(a));
//...
}
Func
является функцией-членов шаблона. Но главное требование - сохранить читаемость кода!
Я предполагаю, что есть вариант с функцией члена шаблона, который имеет указатель на функцию-членов в качестве аргументов:
return two_cmd(Func<int>, a, Func<void>);
Но этот синтаксис не ясно.
Сохраняйте читаемость кода !!! Теперь он не читается. – 2010-12-03 07:49:42