У меня есть функция:
void func(unsigned int event) {
printf("%u %u\r\n", typeid(event), typeid(unsigned int&));
// prints 5338164 0
printf("%u %u\r\n", typeid(event), typeid(unsigned int));
// prints 21525556 0
}
Предположим, что этот вопрос связан с RTFM, но я несколько раз перечитал справочную страницу typeid()
и не нашел ответа. Что не так с этим кодом? Почему %u
не равно? также почему он сначала меняет %u
, когда я изменил 2-й параметр в коде. Спасибо.
'\n'
уже выполняет\r\n
, если система использует окончания строк CRLF. В любом случае, этот код не компилируется в Clang. - person chris   schedule 30.07.2014typeid(..)
возвращает объект типаtype_info
или что-то производное от него, конечно, не целое число без знака. cppreference:typeid
- person dyp   schedule 30.07.2014\r\r\n
. Если он использует окончания строки CR, вы получите\r\r
.'\n'
— стильный и портативный. - person chris   schedule 30.07.2014\r
в любой системе. - person Mike Seymour   schedule 30.07.2014\r
возвращается к началу строки. - person chris   schedule 30.07.2014