Доброго времени суток.
Разрабатываю на С++ довольно давно, особых проблем не испытываю, но вот столкнулся с задачей, которую не понимаю как решить, хотя она должна решаться легко. Подскажите пожалуйста есть ли какой то способ полностью отключить генерацию определённого участка кода в функции шаблона (так, как это было бы при применении препроцессора). Пример:
template <classT, bool alt = false>
Shablon
{
void foo()
{
if (alt)
{
((T*)this)->m_member.foo(); // ошибка компиляции если alt == false, и у класса T нет члена с методом foo.
((T*)this)->someFoo();
}
((T*)this)->someFoo2();
}
}