Как все ребята здесь предложили, реализация будет использовать stringstream.
В моем текущем проекте мы создали функцию
template <typename T>
std::string util::str::build( const T& value );
для создания строки из любого источника.
Так что в нашем проекте это будет
Tools::Logger.Log( util::str::build(GetLastError()) );
Такое использование потоков предлагаемым способом не пройдет мой обзор, если кто-то не закроет его.