Итак, у меня что-то настроено примерно так:
template<typename T> void example()
{
std::function<int (byte*)> test = [=](byte* start) -> int
{
return T::magic(start);
}
}
Игнорируя, насколько "нечистым" является выполнение этих голых вызовов, он также не компилируется, давая следующие ошибки:
'T' : is not a class or namespace name
'magic': identifier not found
Есть ли способ вызвать общее имя типа T, предполагая, что я всегда буду вызывать example () с классом, имеющим функцию magic (byte * start)? Конечно, мне не нужно повторно объявлять эту функцию-шаблон для каждого отдельного класса, который будет это делать.
Я делаю это в VC ++ 2010, и, похоже, это может быть ошибка компилятора. Какие-нибудь возможные обходные пути?