Powinieneś być w stanie określić, co chcesz formatu wyjściowego przy użyciu standardowych manipulatorów I/O:
#include <iomanip>
// ...
std::cout << std::oct << boost::this_thread::get_id() << std::endl;
// ^^^^^^^^
// Octal
std::cout << std::dec << boost::this_thread::get_id() << std::endl;
// ^^^^^^^^
// Decimal
std::cout << std::hex << boost::this_thread::get_id() << std::endl;
// ^^^^^^^^
// Hexadecimal
jednak zauważyć, że thread::id
nie musi być liczbą. Może to być również liczba, ale może być wydrukowany na standardowe wyjście w inny sposób niż tylko wstawienie tej liczby do std::cout
.
C++ 11 Standardowa specyfikacja przeciążenie od operator <<
wyrażenie zgody na std::thread::id
(co zakładam zachowywać się podobnie do Boost na przeciążenie korespondentem boost::thread::it
), mówi:
[...] Wstawia nieokreślone reprezentacja tekstowa z id do out
.
Oznacza to reprezentacja może być wiele w ogóle, w którym to przypadku manipulatorów formatowanie takich jak std::hex
, std::dec
lub std::oct
nie mają żadnego wpływu.
Przypuszczam, że 'get_id' zwraca wskaźnik do struktury danych specyficznej dla wątku. Wskaźniki nie są dotknięte przez "dec" itp. – celtschk