1.3.2 연습 문제 2: 빠르고 범용적인 데이터 저장 컨테이너 만들기

    이번 연습 문제에서는 다양한 타입의 데이터 여러 개를 인자로 받아 공통 타입으로 변환하는 함수를 만들어보겠습니다. 이 함수가 반환하는 컨테이너는 모든 인자를 공통 타입으로 변환하여 저장하며, 전체 원소를 빠르게 순회할 수 있어야 합니다.

      1. 먼저 필요한 헤더 파일을 포함합니다.

    #include <array>
    #include <iostream>
    #include <type_traits>
    

      2. 컨테이너를 생성하는 build_array() 함수를 선언하겠습니다. 이 함수는 빠른 원소 순회를 보장하는 std::array를 반환합니다. 그리고 임의 개수의 매개변수를 허용하기 위해 가변 템플릿을 사용합니다.

    template<typename ... Args>
    std::array<?,?> build_array(Args&&... args)
    

    반환된 컨테이너는 빠르게 순회할 수 있어야 한다는 조건이 있으므로 배열 또는 벡터(vector)를 사용할 수 있습니다. 이 예제에서는 컴파일 시간에 함수의 인자 개수로부터 원소 개수를 유추할 수 있으므로 std::array를 사용합니다.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.