런타임에 변수에서 사용할 수있는 데이터 형식을 사용하여 템플릿 클래스를 인스턴스화하려고합니다. C++에서 변수에서 템플릿 인수 지정
template <typename T, unsigned int U>
class Allocator
{
public:
T * pointer;
Allocator() { pointer = new T[U]; }
~Allocator() { delete [] pointer; }
};
지금 나는이처럼 사용하려면 :이 일을 어떤 방법
int main()
{
string temp = "int";
unsigned int count = 64;
Allocator<temp, count> a;
return 0;
}
거기에 예를 들어,이 클래스를 고려?
기본 포인터로 파생 클래스를 serialize하는 컨텍스트에서이 문제가 발생합니다. RTTI를 사용하여 파생 클래스의 실제 유형을 식별하지만 실제 유형의 정보는 문자열에 저장됩니다. 내 문제는 기본 포인터에서 유형 (런타임에 문자열로 사용 가능)에 dynamic_cast 수 있습니다. 도와주세요.
U가 생성자의 매개 변수 대신 템플릿 매개 변수 여야하는 이유가 있습니까? –
위의 내용은 실제 문제의 예입니다. 이 특별한 경우에 U를 생성자 인수로 삼아 해결할 수 있지만 실제로 문제를 해결하기 위해 예제로 사용했습니다 ... – Somesh