Подскажите, это в современных стандартах законно?
#include <iostream>
struct A {
        void boo() const {
                std::cout<<"I am alive"<<std::endl;
        }
};
 
const A& foo() {
        return A();
}
int main(void) {
        const A& a = foo();
        a.boo();
        return 1;
}


