我使用 Loki 的 Functor 已经有一段时间了,最近我问了一个关于它的问题(仍然没有答案......)有人告诉我使用 std::function,但我更喜欢 Loki 的 Functor 实现,因为它也适用于各种指针作为参数(例如 std::shared_ptr)。
struct Toto
{
void foo( int param )
{
std::cout << "foo: " << param << std::endl;
}
};
int
main( int argc, const char** argv )
{
std::shared_ptr<Toto> ptr = std::make_shared<Toto>();
Loki::Functor<void, LOKI_TYPELIST_1(int)> func( ptr, &Toto::foo );
func(1);
}
有没有办法用 std::function 做到这一点?