auto | requires_ (Out &&o, T &&t) -> decltype(concepts::valid_expr(((void)(*o=(T &&) t), 42),((void)(*((Out &&) o)=(T &&) t), 42),((void)(const_cast< reference_t< Out > const &&>(*o)=(T &&) t), 42),((void)(const_cast< reference_t< Out > const &&>(*((Out &&) o))=(T &&) t), 42))) |