我想了解如何最好地利用模板类中的块。 我有下面的代码片段:错误:无法在初始化中将'int(^)(int)'转换为'R(^)(T)'
template<typename T, typename R>
class MyClass {
public:
typedef R (^Block)(T);
MyClass(Block blk) {}
};
void testMyClass() {
MyClass<int,int>::Block blk(^(int arg) {
return 1 + arg;
});
}
当我尝试编译,我得到以下错误消息:
error: cannot convert ‘int (^)(int)’ to ‘R (^)(T)’ in initialization
我失去了一些东西明显?我想做一些不允许的事吗?如果我没有模板做同样的事情,GCC接受程序。
我不知道这是什么,但它不是C++。 –
块是一种语言扩展,如果这是你的意思。 http://en.wikipedia.org/wiki/Blocks_(C_language_extension) – Krumelur
我删除了C++标记,因为这不是C++。 –