프로그래밍/c++

C++11 가변 인자 템플릿의 사용 예

제페 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... };  
  }



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

반응형