"Initializer lists"는 C++11에서 도입된 객체를 초기화하는 데 사용되는 편리한 방법이다.
이는 "braced list(중괄호)"를 이용하여 만들 수 있는데 예를 들어 `{1, 2, 3}`은 정수의 배열을 만든다. 그리고 이 타입은 `std::initializer_list<int>`가 된다.
이는 함수에 인자로 넘길 때 벡터 대신 사용하기 유용하다.
#include <iostream>
int sum(const std::initializer_list<int>& list)
{
int total = 0;
for (auto& it : list)
total += it;
return total;
}
int main(void)
{
auto list = {1, 2, 3}; // `std::initializer_list<int>`
sum(list); // 6
sum({1, 2, 3}); // 6;
sum({}); // 0;
return 0;
}
[C++11] Forwarding References(Universal References) (0) | 2023.08.28 |
---|---|
[C++11] Variadic templates (0) | 2023.08.28 |
[C++11] Static Assertions (0) | 2023.08.26 |
[C++11] auto (0) | 2023.08.26 |
[C++11] Lamda Expressions (0) | 2023.08.26 |