별의 공부 블로그 🧑🏻‍💻
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
그리드형(광고전용)
⚠️AdBlock이 감지되었습니다. 원할한 페이지 표시를 위해 AdBlock을 꺼주세요.⚠️
starrykss
starrykss
별의 공부 블로그 🧑🏻‍💻


📖 Contents 📖