[ Web Proxy ]
URL:
Viewing: https://ru.cppreference.com/cpp/utility/initializer_list [Back]  [Original]

std::initializer_list<T>::initializer_list cppreference.com
cppreference.com

std::initializer_list<T>::initializer_list

cppreference.com
 
C++
(C++20)
(C++20)
(C++11)
(C++20)
/
(C++11)
(C++11)
(C++11)
(C++17)
 
 
 
<tbody> </tbody> <tbody class="t-dcl-rev "> </tbody><tbody> </tbody>
initializer_list() noexcept;
( C++11)
( C++14)
constexpr initializer_list() noexcept;
( C++14)

std::initializer_list<T> -, const T.

std::initializer_list , :

  • ---- , std::initializer_list
  • ---- , / std::initializer_list
  • ---- auto, for

std::initializer_list , . std::initializer_list .

, std::initializer_list.

value_type T
reference const T&
const_reference const T&
size_type std::size_t
iterator const T*
const_iterator const T*


(public -) []

(public -) []

(public -) []

(public -) []

std::begin
( ) []
std::end
( ) []
, std::initializer_list

( ) []
(C++14)

( ) []
(C++17)
,
( ) []
(C++17)

( ) []

__cpp_initializer_lists 200806L (C++11) std::initializer_list

#include <initializer_list>
#include <iostream>
#include <vector>
 
template <class T>
struct S {
    std::vector<T> v;
    S(std::initializer_list<T> l) : v(l) {
         std::cout << "  " << l.size() << "- \n";
    }
    void append(std::initializer_list<T> l) {
        v.insert(v.end(), l.begin(), l.end());
    }
    std::pair<const T*, std::size_t> c_arr() const {
        return {&v[0], v.size()};  //      return
                                   //    std::initializer_list
    }
};
 
template <typename T>
void templated_fn(T) {}
 
int main()
{
    S<int> s = {1, 2, 3, 4, 5}; //   
    s.append({6, 7, 8});      //     
 
    std::cout << "   " << s.c_arr().second << " int:\n";
 
    for (auto n : s.v)
        std::cout << n << ' ';
    std::cout << '\n';
 
    std::cout << " for  ----: \n";
 
    for (int x : {-1, -2, -3}) //   auto    for 
        std::cout << x << ' ';
    std::cout << '\n';
 
    auto al = {10, 11, 12};   //    auto
 
    std::cout << ",   auto,  size() = " << al.size() << '\n';
 
//    templated_fn({1, 2, 3}); //  ! "{1, 2, 3}"   ,
                             //    ,   T    
    templated_fn<std::initializer_list<int>>({1, 2, 3}); // OK
    templated_fn<std::vector<int>>({1, 2, 3});           //  OK
}

:

  5- 
   8 int:
1 2 3 4 5 6 7 8
 for  ----: 
-1 -2 -3 
,   auto,  size() = 3

C++:

LWG 2129 C++11 std::initializer_list

(C++20)

( ) []

( ) []

Web Proxy Viewer  |  New URL  |  Original Page