2
我想爲std::function<T(Variable nums of arguments)>
創建一個模板,該模板通過調用默認構造函數來返回類的默認值。C++ 11:用於調用類型的默認構造函數的variadic lambda模板
我嘗試這樣做:
template <class T,class... Args> inline std::function<T(Args...)> zero(){
return [](Args...){ return T();};
}
我想用它的場合,你只需要默認值,並沒有複雜的功能,比如在我Image<T>
類:
template <typename T> class Image{
...
void drawEachPixel(std::function<T(size_t,size_t)> func){
forRange(x,w){
forRange(y,h){
this->setPixel(x,y,func(x,y));
}
}
}
...
};
清除我只能打電話給我的圖片:
image.drawEachPixel(zero());
編譯時出現錯誤no matching function for call to 'Image<unsigned char>::drawEachPixel(std::function<unsigned char()>)'
...