static_cast
연산자의 이름이 마음에 들지 않아서 다른 이름의 함수 (예 : fancy_static_cast
)로 감싸고 싶지만 그 의미를 완벽하게 유지한다고 가정 해 보겠습니다. 어떻게해야합니까? 더 구체적으로 static_cast
은 인수 또는 참조를 수락합니까? 아니면 인수 표현식에 의존 하는가? 몇 가지 오버로드를 제공해야합니까, 아니면 이와 같은 것을 트릭을할까요?static_cast의 인수 전달
template <typename To, typename From>
To fancy_static_cast(From&& from)
{
return static_cast<To>(std::forward<From>(from));
}
['static_cast'] (http://en.cppreference.com/w/cpp/language/static_cast)는 컴파일 타임에 컴파일러가 완전히 처리하는 특별한 컴파일러 키워드입니다. –
@JoachimPileborg 필자는 함수라고 말한 적이 없으며 컴파일러 지시어도 아닙니다. 'static_cast'는 연산자입니다. 그러나 어쨌든 이것이 중요한 이유는 무엇입니까? –
@yurikilochek 연산자에는 함수 의미 체계가 없습니다. "값순"또는 "참조 식"인수를 사용하지 않습니다. 그것들은 l- 값과 r- 값의 관점에서 정의되며 "특정한 l- 값이라면 그 값을 r- 값으로 취급합니다 ..."와 같은 논리를 포함 할 수 있습니다. – Angew