從std thread id取得int值id

2022-05-13 01:20:39 字數 663 閱讀 9723

在寫多執行緒時,因為某些需求,需要獲得 std::this_thread::get_id() 的 std::thread::id 型別值轉換為 unsigned int 型別值,並且與cout<

在 stackoverflow 參考了很多方法後嘗試都不盡人意

最後跟入 std::thread::id 結構,如下

class

id{...

//其餘皆為非虛函式

private

: _thrd_t _thr;

其中 _thrd_t 結構定義如下

typedef struct

_thrd_imp_t;

typedef _thrd_imp_t _thrd_t;

其中,_id 即為我們想取到的 unsigned int 值

於是靈光一閃,只有乙個引數且沒有虛函式表,利用強大的c++指標豈不是能夠很簡單很快速的獲取到 private 值?

std::thread::id tid =std::this_thread::get_id();

_thrd_t t = *(_thrd_t*)(char*)&tid ;

unsiged

int nid = t._id

測試通過

delphi中用Socket取得本機的IP位址

function getlocaladdr string varszname array 0.254 of char host phostent addr in addr begin result zeromemory szname,255 if gethostname szname,255 soc...

從Xml中取得資料存在ActiveReports中

asp.net dataset ds new dataset ds.readxml sfilepass sample1 rpt new sample1 rpt.datasource ds.tables 0 defaultview rpt.run webviewer1.report rpt winfo...

從彙編層次理解 i 與 i 的區別

i 與 i最大的區別就是 i 先取值後自加 i 先自加後取值。執行 include int main 運用debug除錯的反彙編檢視彙編 如下 int main 0016149d pop edi 0016149e pop esi 0016149f pop ebx 001614a0 add esp,0...