у меня есть что-то вроде этого:Null реализация типа повышения :: функции
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);
Я думал, что я мог бы это сделать это вместо пустых функций throw:
boost::function<void(void)> noStyle;
Код, использующий функцию стайлера, может проверять на наличие пустого пространства вместо того, Null Object Pattern ". Что лучше? Имеете ли странное ничего в моем пространстве имен Detail или проверяете на пустое?
Или. 'std :: function noStyle = [] {};' ..., который требует от вас набрать 3 символа меньше. –
Nawaz
@ Наваз хорошая точка, хотя я всегда предполагал, что используется функция boost :: function, если у вас нет поддержки C++ 11. – juanchopanza
@Angew Я, очевидно, воспринимаю всю «C++ 11 - это C++» вещь слишком далеко :) – juanchopanza