История изменений
Исправление
kvpfs,
(текущая версия)
:
Как уже заметили - emplace ведь напрямую пробрасывает аргументы в конструктор c круглыми скобками, так что explicit тут не поможет. Контрпример - list<QQ>, QQ не умеет перемещаться и копироваться и имеет explicit конструктор, как его в листе создать?
По поводу замены в stl круглы скобок на фигурные - вряд ли, там ведь траблы могут быть с типами, принимающими initializer_list в конструкторе. Скорее () инициализацию до ума доводят - раньше нельзя было делать emplace для агрегатов, начиная с 20 можно, только там с лайфтаймом временный объектов при инициализации ссылок как-то странно …
Исходная версия
kvpfs,
:
Как уже заметили - emplace ведь напрямую пробрасывает аргументы в конструктор c круглыми скобками, так что explicit тут не поможет. Контрпример - list, QQ не умеет перемещаться и копироваться и имеет explicit конструктор, как его в листе создать?
По поводу замены в stl круглы скобок на фигурные - вряд ли, там ведь траблы могут быть с типами, принимающими initializer_list в конструкторе. Скорее () инициализацию до ума доводят - раньше нельзя было делать emplace для агрегатов, начиная с 20 можно, только там с лайфтаймом временный объектов при инициализации ссылок как-то странно …