Сообщение Re[3]: Поиск имени в NS параметра шаблона - можно что-то под от 09.01.2020 11:49
Изменено 09.01.2020 11:52 rg45
Re[3]: Поиск имени в NS параметра шаблона - можно что-то под
Здравствуйте, удусекшл, Вы писали:
S>>Может я немного недопонял, но если сделать внутри функции printSomething() using namespace std::iomanip и using namespace myNS::iomanip, это будет не cool?
У>В этом случае нужно подключать всё хидеры. А смысл шаблона в том, чтобы уйти от конкретных типов, и, в тч, ничего лишнего заранее не инклудить
Ну так эта проблема существут в любом из предложенных решений. Вот
Здесь std::hex не является зависимым именем и его объявление должно быть видимо в этой точке.
В то же время, я думаю, не будет большим преступлением сделать в собственном коде предварительные объявления некоторых сущностей, которые жестко зафиксированы в стандарте языка:
S>>Может я немного недопонял, но если сделать внутри функции printSomething() using namespace std::iomanip и using namespace myNS::iomanip, это будет не cool?
У>В этом случае нужно подключать всё хидеры. А смысл шаблона в том, чтобы уйти от конкретных типов, и, в тч, ничего лишнего заранее не инклудить
Ну так эта проблема существут в любом из предложенных решений. Вот
Автор: B0FEE664
Дата: 12.12.19
, например:Дата: 12.12.19
template<class T> auto S_HEX = std::hex;
Здесь std::hex не является зависимым именем и его объявление должно быть видимо в этой точке.
В то же время, я думаю, не будет большим преступлением сделать в собственном коде предварительные объявления некоторых сущностей, которые жестко зафиксированы в стандарте языка:
namespace std
{
class ios_base;
ios_base& dec(ios_base&);
ios_base& hex(ios_base&);
ios_base& oct(ios_base&);
} // namespace std
Re[3]: Поиск имени в NS параметра шаблона - можно что-то под
Здравствуйте, удусекшл, Вы писали:
S>>Может я немного недопонял, но если сделать внутри функции printSomething() using namespace std::iomanip и using namespace myNS::iomanip, это будет не cool?
У>В этом случае нужно подключать всё хидеры. А смысл шаблона в том, чтобы уйти от конкретных типов, и, в тч, ничего лишнего заранее не инклудить
Ну так эта проблема существут в любом из предложенных решений. Вот
Здесь std::hex не является зависимым именем и его объявление должно быть видимо в этой точке.
В то же время, я думаю, не будет большим преступлением сделать в собственном коде предварительные объявления некоторых сущностей, которые жестко зафиксированы в стандарте языка, чтоб не подключать заголовки без необходимости:
S>>Может я немного недопонял, но если сделать внутри функции printSomething() using namespace std::iomanip и using namespace myNS::iomanip, это будет не cool?
У>В этом случае нужно подключать всё хидеры. А смысл шаблона в том, чтобы уйти от конкретных типов, и, в тч, ничего лишнего заранее не инклудить
Ну так эта проблема существут в любом из предложенных решений. Вот
Автор: B0FEE664
Дата: 12.12.19
, например:Дата: 12.12.19
template<class T> auto S_HEX = std::hex;
Здесь std::hex не является зависимым именем и его объявление должно быть видимо в этой точке.
В то же время, я думаю, не будет большим преступлением сделать в собственном коде предварительные объявления некоторых сущностей, которые жестко зафиксированы в стандарте языка, чтоб не подключать заголовки без необходимости:
namespace std
{
class ios_base;
ios_base& dec(ios_base&);
ios_base& hex(ios_base&);
ios_base& oct(ios_base&);
} // namespace std