Проблема неспособности переслать объявление std :: string и std :: wstring часто обсуждается. Как я понимаю, причина в том, что эти типах typedefing из экземпляра класса шаблона basic_string:forward декларация std :: string и std :: wstring
namespace std {
typedef basic_string<char> string;
typedef basic_string<wchar_t> wstring;
}
И опережающее объявление о ЬурейеМ не допускается языком.
это не было бы лучше для C++ стандарта с использованием наследования вместо ЬурейеГо:
namespace std {
class string : public basic_string<char> {};
class wstring : public basic_string<wchar_t> {};
}
Так что, как мы могли бы направить объявить зЬй :: строки и зЬй :: wstring?
Зачем вам нужно переслать-объявить их? '#include' отлично подходит для любых объявлений. –
JAB
Это то, чего я пытаюсь избежать - #include ' –
chook
Почему вы пытаетесь избежать' # include'? Существуют и другие способы улучшения скорости компиляции; взгляните на предварительно скомпилированные заголовки. –