#include<type_traits>
void foo(int& l) {
    static_assert(std::is_same_v<decltype(l), int&>);
    static_assert(std::is_same_v<decltype((l)), int&>);
    auto fn = [l]() {
        static_assert(std::is_same_v<decltype(l), int&>);
        static_assert(std::is_same_v<decltype((l)), const int&>);
    };
}