Пользовательский манипулятор потока для потоковой передачи целых чисел в любой базе

Я могу заставить объект std :: ostream выводить целые числа в шестнадцатеричном формате, например

std::cout << std::hex << 0xabc; //prints `abc`, not the base-10 representation

Есть ли манипулятор универсальный для всех баз? Что-то вроде

std::cout << std::base(4) << 20; //I want this to output 110

Если есть, то у меня больше нет вопросов. Если его нет, могу я написать? Не потребуется ли мне доступ к деталям частной реализации std :: ostream ?

Обратите внимание, что я знаю, что могу написать функцию, которая принимает число и преобразует его в строку, которая является представлением этого числа в любой базе. Или я могу использовать тот, который уже существует. Я спрашиваю о настраиваемых манипуляторах потоков - возможны ли они?

Заранее спасибо

13
задан Armen Tsirunyan 26 June 2011 в 08:21
поделиться