prog.cpp: In function 'int main()':
prog.cpp:15:74: warning: left shift count >= width of type [-Wshift-count-overflow]
reinterpret_cast<double&>((reinterpret_cast<int64_t&>(d) >> 1) + (1L << 61))
^
prog.cpp:15:77: error: invalid cast of an rvalue expression of type 'int64_t {aka long long int}' to type 'double&'
reinterpret_cast<double&>((reinterpret_cast<int64_t&>(d) >> 1) + (1L << 61))
^