LINUX.ORG.RU

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

Исправление zg, (текущая версия) :

man initializer_list

https://en.cppreference.com/w/cpp/utility/initializer_list

Причём тут initializer_list? В случае manufacturer{ "Yamaha" } в Visual C++ вызывается это:

    _CONSTEXPR20 basic_string(_In_z_ const _Elem* const _Ptr) : _Mypair(_Zero_then_variadic_args_t{}) {
        _Construct<_Construct_strategy::_From_ptr>(_Ptr, _Convert_size<size_type>(_Traits::length(_Ptr)));
    }

В случае же manufacturer("Yamaha") там вызывается ровто то же самое.

PS: конструктор, само собой, для std::string все равно вызовется, но аргумент будет initializer_list<>

В обоих случаях я наблюдаю в дебагере аргумент типа const char * const.

Исходная версия zg, :

man initializer_list

https://en.cppreference.com/w/cpp/utility/initializer_list

Причём тут initializer_list? В случае manufacturer{ "Yamaha" } в Visual C++ вызывается это:

    _CONSTEXPR20 basic_string(_In_z_ const _Elem* const _Ptr) : _Mypair(_Zero_then_variadic_args_t{}) {
        _Construct<_Construct_strategy::_From_ptr>(_Ptr, _Convert_size<size_type>(_Traits::length(_Ptr)));
    }

В случае же manufacturer("Yamaha") там вызывается ровто то же самое.

PS: конструктор, само собой, для std::string все равно вызовется, но аргумент будет initializer_list<>

В обоих случая я наблюдаю в дебагере аргумент типа const char * const.