2013-03-13 242 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(); 
相關問題