두 피연산자의 프로모션 유형을 얻는 방법은 무엇입니까? 프로모션 유형 가져 오기
이 같은 코드에 대한 유용 할 수 있습니다 :template <typename LHS, typename RHS>
bool would_overflow_upon_addition (LHS lhs, RHS rhs) {
return lhs > std::numeric_limits<promoted<LHS,RHS>::type>::max()-rhs;
}
두 피연산자의 프로모션 유형을 얻는 방법은 무엇입니까? 프로모션 유형 가져 오기
이 같은 코드에 대한 유용 할 수 있습니다 :template <typename LHS, typename RHS>
bool would_overflow_upon_addition (LHS lhs, RHS rhs) {
return lhs > std::numeric_limits<promoted<LHS,RHS>::type>::max()-rhs;
}
common_type
이 "시간 - 오버 플로우를 컴파일"일이나하지 않습니다하십시오 brainfart의 결과로
#include <type_traits>
typedef std::common_type<LHS, RHS>::type ctype;
... 나는 실제로 내 개인 코드베이스에서 이와 비슷한 것을 가지고 있으며, 심지어 이런 방식으로, 심지어 그렇게 부른 다. 그것은'decltype (lhs + rhs)'와 의미 적으로 다른가요? –
@phresnel : 근본적인 산술 유형에 대해 동일합니다. –
이 하나가 생각하는 것보다 실제로 간단하다 :
template <typename LHS, typename RHS>
bool would_overflow_upon_addition (LHS lhs, RHS rhs) {
return lhs > std::numeric_limits<decltype(lhs+rhs)>::max()-rhs;
}
decltype(X)
X
단지 정적 유형은
을 유도 *
* 그래서 당신의 대답해야한다 "컴파일 시간에 정의되지 않은-행동"
, 나는 실제로 잘못된 질문에 대한 해결책을 찾고 있었기 때문에 다른 사람들에게도 일어날 수 있다고 생각했습니다. (내가 준 또 다른 답변의 개정 내역을 참조하십시오 : http://stackoverflow.com/posts/12675321/revisions) –
"블로그 게시물"질문의 갑작스런 급증은 무엇입니까? 어제 모두가 껍데기를 만들기를 원했고, 오늘 모두 빨판 질문을 게시하고 있습니다 ... –
@KerrekSB : 월요일입니다. 우리는 아직 리바운드에 있지 않습니다. 반면 일요일은 ppl 꿈입니다. 셸의 모든 예가 무엇입니까? –