Should have got back to you sooner, but static_cast is not allowed between pointer types and non-pointer types.
Thread_context.cc:73:11: error: static_cast from 'pthread_t' (aka '_opaque_pthread_t *') to 'int' is not allowed << static_cast<int>(thread) ^~~~~~~~~~~~~~~~~~~~~~~~ I need reinterpret_cast<size_t> here. I cannot reinterpret_cast<int> either, because of the difference in size. > On Sep 11, 2017, at 3:01 PM, Juergen Sauermann > <juergen.sauerm...@t-online.de> wrote: > > Hi Xiao-Yong, > > I see. In this particular case the pthread_t is only used to identify a > thread and > to distinguish it from other threads for debugging purposes. So as long as the > compiler does not complain about the cast everything is fine. Cast to void * > instead of > int would also be an option. > > /// Jürgen > > > On 09/11/2017 08:38 PM, Xiao-Yong Jin wrote: >> I don't think there is a portable way of printing a variable of type >> pthread_t. It could be a struct, depending on the implementation. >> static_cast<int> is alright, but may not be useful in the future. >> >> >>> On Sep 11, 2017, at 1:08 PM, Juergen Sauermann >>> <juergen.sauerm...@t-online.de> >>> wrote: >>> >>> Hi Xiao-Yong, >>> >>> thanks, maybe fixed in SVN 1011. >>> Problem with that error is that the casted type is not a pointer, at least >>> on my machine. >>> >>> /// Jürgen >>> >>> >>> On 09/11/2017 06:55 PM, Xiao-Yong Jin wrote: >>> >>>> At revision 1010 >>>> >>>> Thread_context.cc:72:65: error: cast from pointer to smaller type 'int' >>>> loses information >>>> out << "thread #" << setw(2) << N << ":" << setw(16) << int(thread) >>>> >>>> >>>> >>>> >>>> >> >