Информация об изменениях

Сообщение Re: Поиск имени в NS параметра шаблона - можно что-то подобн от 12.12.2019 9:57

Изменено 12.12.2019 10:27 B0FEE664

Re: Поиск имени в NS параметра шаблона - можно что-то подобное придумать?
Здравствуйте, удусекшл, Вы писали:

У>Теперь, я хочу вывести значение в 16ти-ричном виде. В std::iomanip есть манипулятор hex, есть он и myNS::iomanip, и синтаксически совместим со стандартным.

У>Есть ли какое-то решение?
Есть некрасивое и простое решение: можно добавить для myNS::myStream::hex манипулятора перегрузку оператора << для ostream класса и тогда можно использовать myNS::iomanip везде, но наверное есть другое, красивое решение.
Re: Поиск имени в NS параметра шаблона - можно что-то подобн
Здравствуйте, удусекшл, Вы писали:

У>Теперь, я хочу вывести значение в 16ти-ричном виде. В std::iomanip есть манипулятор hex, есть он и myNS::iomanip, и синтаксически совместим со стандартным.

У>Есть ли какое-то решение?
Есть некрасивое и простое решение: можно добавить для myNS::myStream::hex манипулятора перегрузку оператора << для ostream класса и тогда можно использовать myNS::iomanip везде, но наверное есть другое, красивое решение.


PS Придумал:
template<class T> auto S_HEX                = std::hex;
template<>        auto S_HEX<myNS::iomanip> = myNS::iomanip::hex;

template< typename StreamType >
void printSomething( StreamType s, const Something &something)
{
    s << S_HEX<StreamType> << something.member;
    //...
}

Должно работать, но надо подумать над порядком инициализации глобальных переменных.
Кроме того, может быть на auto можно навесить constexpr и &