# **[](https://en.cppreference.com/w/cpp/header/initializer_list)** provides `std::initializer_list`, which lets you write constructors and functions that accept brace-enclosed lists like `std::vector{1, 2, 3}`. It's a lightweight, read-only view over a compiler-managed array. Use it to enable uniform initialization syntax on your own types. ## Example This example defines a custom container with a constructor accepting an initializer list, enabling brace-enclosed initialization. ```cpp // compile: g++ -std=c++11 -o initializerlistexample initializerlistexample.cpp // run: ./initializerlistexample // description: custom constructor accepting initializer_list #include #include class MyContainer { int sum = 0; public: MyContainer(std::initializer_list init) { for (int x : init) sum += x; } int total() const { return sum; } }; int main() { MyContainer c{1, 2, 3, 4}; std::cout << "sum: " << c.total() << "\n"; return 0; } ```