카테고리 없음

어떤 것이든 const type으로 바꿔주는 코드

일기를 쓰는 사람 2025. 10. 14. 21:09

#include <type_traits>
#include <utility>

// 값 헬퍼 버전: lvalue만 허용, const T& 반환
template <class T>
[[nodiscard]] constexpr std::add_const_t<std::remove_reference_t<T>>&
add_const(T& t) noexcept {
    return t;
}

// rvalue는 금지 (std::as_const와 동일)
template <class T>
void add_const(const T&&) = delete;