TIL the elvis operator supports not defining any value when the condition matches in GCC and CLANG, but that's not part of the standard and it's not portable, so don't expect it to work in MSVC.
int b = 1 ?: 3; // same as "1 ? 1: 3"
#clang #gcc #stdc