사용예제
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 |