Este código funciona em GCC e Clang, bug não em MSVC:
#include <concepts>
#include <utility>
struct S {};
const S&& f();
S g();
static_assert(std::same_as<decltype(false ? f() : g()), const S>);
https://godbolt.org/z/99rMPzecM
MSVC pensa decltype(false ? f() : g())
que éconst S&&
Qual deles está certo? E porque?