본문 바로가기
c++/모던c++

c++ 11 가변인자템플릿 varidic template

by kcj3054 2022. 4. 7.

사용예제

template<typename Type, typename... Args>
Type* xnew(Args&&... args)
{
    //메모리 영역할당하기 
    Type* memory = static_cast<Type*>(BaseAllocator::Alloc(sizeof(Type)));

    //메모리 영역할당 후 생성자랑 소멸자도..만들기..호출..

    //placement new (메모리 위에 생성자를 호출해줘!)
    //가변인자를 전달하는 것 
    new(memory)Type(forward<Args>(args)...);

    return memory;
}
  • 여기서 template의 인자가 여러개 일 수도있고 타입도 다양할 수 있다 이것을 다양하게 받아주기 위해서 ...문법을 사용했고, 해당 인자를 받을때는 forward로 받아주면된다.

'c++ > 모던c++' 카테고리의 다른 글

c++20(concept)  (0) 2022.05.23
varidic template (가변인자.. tuple직접구현..)  (0) 2022.05.22
전달 참조 forwarding reference (c++17)  (0) 2022.03.29
오른값 참조 &&  (0) 2022.03.29
모던c++ delete  (0) 2022.03.29