728x90
728x170
다양한 타입의 데이터 여러 개를 인자로 받아 공통 타입으로 변환하는 함수
- 반환하는 컨테이너는 모든 인자를 공통 타입으로 변환하여 저장함.
- 전체 원소를 빠르게 순회할 수 있어야 함.
#include <array>
#include <iostream>
#include <type_traits>
template<typename ... Args>
auto build_array(Args&&... args) -> std::array<typename std::common_type<Args...>::type, sizeof...(args)> {
using commonType = typename std::common_type<Args...>::type;
return {std::forward<commonType>((Args&&)args)...};
}
int main() {
auto data = build_array(1, 0u, 'a', 3.2f, false);
for (auto i: data) {
std::cout << i << " ";
}
std::cout << std::endl;
// auto data2 = build_array(1, "Packt", 2.0); // 오류 발생
}
1 0 97 3.2 0
728x90
그리드형(광고전용)
'Source Code > C++' 카테고리의 다른 글
[C++] 3개의 숫자 중에서 최댓값 구하기 (max(a, b, c)) (0) | 2022.12.13 |
---|---|
[C++] STL로 해시 테이블(Hash Table) 만들기 (std::unordered_map, std::unordered_set) (0) | 2021.05.28 |
[C++] 조직 구조도 만들기 (이진 트리 이용) (0) | 2021.05.15 |
[C++] 정수를 입력 받아 각 자릿수의 합 구하기 (0) | 2021.02.17 |
Python Range() 함수 구현 (0) | 2021.01.20 |
0부터 N까지 피보나치 수열 나열하기 (0) | 2020.12.28 |
숫자 N의 약수의 개수 구하기 (0) | 2020.12.26 |
0부터 n까지의 숫자의 2진수 출력하기 (0) | 2017.10.10 |