ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • C++11 가변 인자 템플릿의 사용 예
    프로그래밍/c++ 2014. 6. 29. 14:05
    반응형

    기존 C++에서는 여러개의 인자를 받는 템플릿 함수를 만들때

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
        void create()
        {
          instance = new Type{};
        }

        template<typename T0>
        void create(T0 arg0)
        {
          instance = new Type{ arg0 };
        }

        template<typename T0, typename T1>
        void create(T0 arg0, T1 arg1)
        {
          instance = new Type{ arg0, arg1 };
        }

        template<typename T0, typename T1, typename T2>
        void create(T0 arg0, T1 arg1, T2 arg2)
        {
          instance = new Type{ arg0, arg1, arg2 };
        }
     


    .. 이런식으로 만드는 경우가 있었다.

    저런 코드를 C++11부터 추가된 기능인 가변 인자 템플릿을 이용하면


    1
    2
    3
    4
    5
      template<typename ...Args>  
      void create(Args... args)
      {    
        instance = new Type{ args... };  
      }



    이렇게 깔끔하게 하는것이 가능하다.

    반응형

    '프로그래밍 > c++' 카테고리의 다른 글

    scanf_s  (0) 2015.02.08
    C++ 오브젝트 생성시 {}와 () =의 구분  (0) 2015.02.02
    [C++]std::addressof의 존재 이유  (2) 2014.06.29
    알아볼 c++11 문법  (0) 2014.05.16
    C++11: decltype  (0) 2014.05.16
Designed by Tistory.