我在标题中有这种类型MyType.hpp:
struct MyType
{
template<typename T>
void operator(T t)
{
auto lamdba = [t](auto i){ t.someCall(i); };
someMethod(lamdba);
}
template<typename L>
void someMethod(L);
};
因此,someMethod使用接受泛型参数的泛型 lambda 调用。是否有可能在MyType.cppfor中提供一个实现someMethod?这不起作用:
template<typename L>
void MyType::someMethod(L lambda)
{
lambda(42);
lambda("42");
// etc...
}
由于不允许部分特化(仅对函数模板进行完全特化),有没有其他方法可以将头文件的 lambda “传递”到实现文件MyType.cpp?如果无法通过,是否存在一种动态存储此 lambdaMyType.hpp并在其中访问它的方法MyType.cpp?