十进制值:cout << dec << boost :: this_thread :: get_id()

Iva*_*ush 5 c++ multithreading boost-thread c++11

是否有可能以十进制或八进制格式cout thread :: id?

std::cout << std::showbase;
cout << dec(or oct) << boost::this_thread::get_id() 
Run Code Online (Sandbox Code Playgroud)

我总是十六进制,例如0xdf08.

And*_*owl 7

您应该能够使用标准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
Run Code Online (Sandbox Code Playgroud)

但是,请注意a thread::id不需要是数字.此外,它可以是数字,但可以以不同于仅插入该数字的方式打印到标准输出std::cout.

C++ 11标准规范operator <<接受的重载std::thread::id(我假设其行为类似于Boost的通信重载boost::thread::it),说:

[...]将未指定的id 文本表示插入到out.

这意味着表示可能不是一个号码在所有,在这种情况下,操纵器的格式诸如std::hex,std::decstd::oct可以不具有在其上的任何影响.