#include <iostream>

template<typename T>
T&& my_move(const T& t) noexcept {
    return std::move(const_cast<T&>(t));
}

struct T
{
    T() = default;
    T(const T&) { std::cout << "copy ctor\n"; }
    T(T&&)      { std::cout << "move ctor\n"; }
};

int main() {
    const T t;
    T a = my_move(t);
}
