2013-03-13 246 views
1

我想创建一个构造函数来说明它存储的是什么类型的对象。有没有简单的方法来完成这个?我正在看decltype。在C++中是否有类似于typeof的东西?

template <typename T> 
MyVector<T>::MyVector(int setCap) 
{ 
    m_ptr = new T[setCap]; 
    m_size = 0; 
    m_capacity = setCap; 
    string typeSet = decltype(T); 
    cout << "New MyVector of type " << typeSet << " created\n"; 
} 
+0

您是否在寻找['typeid'(http://en.cppreference.com/w/cpp/language/typeid)? 'typeid(...)。name()'的输出可能会或可能不会以您认为有用的方式拼出类型名称,这与实现相关。 – Praetorian 2013-03-13 21:15:25

+0

这正是我所期待的。谢谢! – 2013-03-13 21:18:21

+2

@thiefjack如果您使用的是GCC,您可以使用第二个答案[[此问题])来取消名称的名称(http://stackoverflow.com/questions/281818/unmangling-the-result-of-stdtype-in​​foname)不要使用第一个,它是越野车) – 2013-03-13 21:18:55

回答

2

C++有typeid

#include <typeinfo> 

std::cout << "The type is " << typeid(T).name(); 
相关问题