如果我有一個模板的容器,我可以用一個typedef
讓我查找在編譯時類型:的typedef相當於爲INT
template <typename T>
struct MyList {
typedef T Type;
T get_front() const;
// ...
};
MyList<char> char_list;
MyList<char>::Type front = char_list.get_front();
在這種情況下,你可以聲明char front = char_list.get_front();
代替,但有時這可能是很有用(例如包含其他模板類的模板類)。
在我的情況下,模板不指定類型名稱,而是指定了一個int(實際上是一個std::size_t
):
template <std::size_t N>
struct MyClass {
// ...
};
有一個typedef的等價,我可以在類中聲明能讓我在課外獲得N的價值嗎?這是一個適當的地方使用靜態常量?
大answer--發現,因爲這只是內部的內部代碼(不可訪問),我認爲靜態常量應該罰款。 – user
@Oliver:只要確保你永遠不會執行'&value',如果你使用'value'作爲一個採用const引用參數的函數的參數,這可能會隱式發生。 –
「現代編譯器」 - 它需要如何現代化? –