經常討論無法轉發聲明std :: string和std :: wstring的問題。據我瞭解,原因是這些類型typedefing模板類basic_string的實例化的:正向聲明std :: string和std :: wstring
namespace std {
typedef basic_string<char> string;
typedef basic_string<wchar_t> wstring;
}
又向前推進了的typedef的聲明不是由語言允許的。使用繼承,而不是類型定義
那豈不是爲C++更好的標準:
namespace std {
class string : public basic_string<char> {};
class wstring : public basic_string<wchar_t> {};
}
所以這樣我們可以向前聲明的std :: string和std :: wstring的?
你爲什麼需要提前申報? '#include'照顧任何聲明就好了。 –
JAB
這就是我想要避免的 - '#include' –
chook
你爲什麼要避免'#include'?還有其他方法可以提高編譯速度;看看預編譯頭文件。作爲一個經驗法則, –