Re[6]: А почему нет вызова функций с именованными аргументам
От: uncommon Ниоткуда  
Дата: 14.09.14 18:50
Оценка:
Здравствуйте, 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.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.