template<class Int_T,class Integral,typename Best_Fit<Int_T>::type Min_Range,
typename Best_Fit<Int_T>::type Max_Range>
auto operator+(Integral left,const Int<Int_T,Min_Range,Max_Range>& right)
->Int<decltype(left + right.get_data())>
{
static_assert(std::is_integral<Integral>::value,"Non integral type is not allowed.");
static_assert(std::is_integral<Int_T>::value,"Non integral type is not allowed.");
auto data = left + right.get_data();
Int<decltype(left + right.get_data())> result(data);
return result;
}
요점은 두 개의 static_assert * s *이 실행될 것입니다.
그럼이 Q에 대한 답은 무엇입니까?이 static_assert가 트리거됩니까?
'Int'란 무엇입니까? –
왜 그런지 보지 못 하겠지만 제약 조건을 만족하는 클래스를 만들 수는 있지만 ('Best_Fit'과'Int' - 그들이 무엇이든간에), is_integral'은 실패합니다 ... – Nim
나는 그것이 불가능하다고 생각합니다. 누구든지 SFINAE – sehe