2
我有這樣的事情:null實現類型爲boost ::功能
boost::function<void(void)> redStyle = boost::bind(colorStyle, "red");
boost::function<void(void)> blueBlinkingStyle = boost::bind(animatedStyle, "blue", BLINKING);
這是正確的方式來定義一個nullStyler:
void nothing(){}
boost::function<void(void)> noStyle = boost::bind(nothing);
我在想,我能做到這方式代替,但空函數拋出:
boost::function<void(void)> noStyle;
使用造型器功能,可以檢查空,而不是使用的代碼「空對象模式「。哪個更好?在我的Detail命名空間中有一個奇怪的沒有功能或檢查空?
或者。 'std :: function noStyle = [] {};'...這要求你輸入3個字符少。 –
Nawaz
@Nawaz的好處,雖然我總是假設一個人沒有C++ 11支持時使用'boost :: function'。 – juanchopanza
@Angew我明顯考慮到整個「C++ 11是C++」的東西有點太:) – juanchopanza