Хорошо, у меня есть что-то вроде установки:
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, и, похоже, это может быть ошибка компилятора.Любые возможные обходные пути?