Ключевое слово explicit
рекомендуется для всех большинства конструкторов, которые могут вызываться с одним аргументом, за исключением конструкторов копирования.
Для конструкторов копирования он используется (запрещает неявное копирование через вызов функции, возврат и т. д.), но это не то, что обычно требуется.
Как насчет конструкторов перемещения? Есть ли разумный вариант использования, чтобы сделать их явными? Какая здесь хорошая практика?
T([const] [volatile] T&)
. 12,8/2.T(int)
— это конструктор, который можно вызывать с одним аргументом, но он не является конструктором копирования, поскольку не копирует экземплярT
. - person Steve Jessop   schedule 20.07.2011explicit
может иметь значение для таких конструкторов? Можете ли вы привести пример? - person Kos   schedule 22.07.2011