Здравствуйте, PM, Вы писали:
PM>Кстати, сегодня увидел несколько иной способ использовать булевский параметры без enum:
PM>PM>typedef bool ReplaceOnAdd;
PM>void addElement3(T, bool replace);
PM>addElement3(1, ReplaceOnAdd(true));
PM>
Проблема с этим способом, как и со всеми похожими способами в С++ та, что имя параметра получается привязанным к типу (как ReplaceOnAdd к bool) и засоряет текущий namespace (нельзя в том же namespace определить новый тип ReplaceOnAdd). На самом деле, с помощью дополнительного класса и макро совсем не трудно сделать и такой синтаксис для именованных параметров:
addElement3(1, ReplaceOnAdd = true);
Но проблемы те же самые, что и у
typedef bool ReplaceOnAdd.