我有一个libsigc++
连接到 c++11 lambda 的信号。
sigc::signal<void, std::string> foo;
foo.connect([](string s) { cout << s << endl; });
foo.emit(string("Hello"));
我想将信号的返回类型从void
更改为非无效
sigc::signal<int, std::string> foo;
foo.connect([](string s) { return s.size(); });
cout << foo.emit(string("Hello")) << endl;
这给出了一个错误:
void 值没有被忽略,因为它应该被忽略
lambda 是否可以使用这种使用模式?