LINUX.ORG.RU

История изменений

Исправление 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 можно, только там с лайфтаймом временный объектов при инициализации ссылок как-то странно …