std::hex, boost::format и std::sprintf
От: FrozenHeart  
Дата: 14.12.13 20:39
Оценка:
Может я, конечно, совсем идиот, но мне почему-то казалось, что в каждом из следующих случаев должен быть один и тот же результат — "26".

#include <boost/format.hpp>

#include <cstdio>
#include <ios>
#include <iostream>
#include <sstream>
#include <string>

int main()
{
  std::ostringstream osstr;
  osstr << std::hex << '&';
  const std::string first = osstr.str(); // &

  const std::string second = (boost::format("%X") % '&').str(); // &

  char buf[3];
  std::sprintf(buf, "%X", '&'); // 26
}


Почему так происходит? Это задокументировано (особенно интересно в случае разницы с boost::format и std::sprintf, т.к. там, я думал, уж точно не должно быть подобного)?
avalon/1.0.433
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.