我想了解如何最好地利用模板類中的塊。 我有下面的代碼片段:錯誤:無法在初始化中將'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++。 –