Можно ли как-либо лямбда-функцию указать в параметр шаблонного класса? Поясню, что меня интересует именно в параметр шаблона, а не указать в шаблоне тип, а в параметр метода указывать саму функцию.
Я попробовал сделать, но компилятор ругается: ошибка: lambda-expression in template-argument
template <typename I, typename T, std::function<I(const T&)>* fn >
struct TTest {
static I index(const T& s) { return fn(s); }
};
struct TTust {
quint32 value = 5;
};
void test() {
TTust ss;
qDebug() << TTest<quint32,TTust,[](const TTust& s) { return s.value; }>::index(ss);
}