본문 바로가기

카테고리 없음

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

#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;