Skip to content

initialization

serhij.zolotukhin edited this page May 12, 2026 · 2 revisions

https://en.cppreference.com/cpp/language/direct_initialization https://habr.com/ru/articles/330402/ https://medium.com/@sagar.necindia/c-11-initialization-features-modernizing-member-and-brace-initialization-1dd4b2f552fe https://www.vervecopilot.com/interview-questions/what-no-one-tells-you-about-c-initializer-list-and-interview-performance https://blog.feabhas.com/2019/04/brace-initialization-of-user-defined-types/

https://www.youtube.com/watch?v=TOvUTVjD9MI https://www.youtube.com/watch?v=Dg77_dp8jgE

  • designated initializers -? https://gcc.gnu.org/onlinedocs/gcc-4.4.1/gcc/Designated-Inits.html#Designated-Inits
  • direct initialization
  • copy initialization
  • aggregate initialization
  • default initialization
  • zero initialization
  • uniform initialization C++ uniform initialization (introduced in C++11) is the use of curly braces {} to initialize variables, objects, and containers, providing a consistent, unified syntax across all types.
  • value initialization
  • initializer_list ?

? braced-init-lists (also known as "uniform" or "list-initialization") Braced-init-list (список инициализации в фигурных скобках)


Braced-Init-List Syntax (Introduced in C++11):

T object{arg1, arg2};

Technically called direct-list-initialization. It is more consistent than parentheses and solves several issues:

  • Prevents Narrowing: Braces do not allow implicit narrowing conversions (e.g., double to int), making it safer.
  • Solves Ambiguity: Braces cannot be mistaken for a function declaration, avoiding the most vexing parse.
  • Initializes Containers: Allows direct construction of containers like std::vector with a list of values.

Разница с std::initializer_list

  • braced-init-list: Это синтаксис (фигурные скобки и значения внутри), сам по себе не имеет типа.
  • std::initializer_list: Это тип стандартной библиотеки, который компилятор автоматически создает, когда видит список внутри фигурных скобок, если целевой объект ожидает этот тип.

https://en.cppreference.com/cpp/language/constructor https://en.cppreference.com/cpp/language/initialization https://share.google/aimode/EUWISjSp0gUcCui4l

My side bar

Clone this wiki locally