sfinae

    1

    1답변

    현재 VS 2013을 사용하는 Windows에서 컴파일되지 않는 라이브러리 (entityx)를 수정하려고합니다. gcc가있는 Linux 및 MinGW가있는 Windows에서도 잘 컴파일됩니다. SFINAE에 문제가있는 것으로 보입니다. VS 2013이 템플릿 대체 오류를 제대로 무시하지 못하는 것 같습니다. Microsoft Connect에서이 문제에 대한

    1

    2답변

    일부 컨테이너 조작 함수를 작성하고 있습니다. vector, list, deque, array 등과 같은 vector-like 컨테이너와 map, multimap, unordered_map 등과 같은 연관 컨테이너를위한 또 다른 버전 같은 것들이있는 경우가 종종 있습니다. " 가장 좋은 방법은 "클래스가 연관 컨테이너인지 여부를 감지하는 것입니다. 어쩌면

    4

    1답변

    한다고 가정 할 특성을 나는 다음과 같은 템플릿이 있습니다 때문에이 소멸자의 template <typename T> union example { T t; constexpr example(const T & t) : t(t) {}; /* We rely on owning class to take care * of destr

    1

    2답변

    클래스에 포인터 데이터 멤버가 있는지 테스트 할 수 있습니까? class Test { int* p; } template< typename T > foo(T bla) { } 컴파일해서는 안됩니다. Test에는 포인터 데이터 멤버가 있기 때문입니다. Test test; foo(test) 아마도 템플릿을 사용하지 못하도록 특성을 사

    2

    1답변

    메타 기능을 기반으로 전문화해야하는 기본 템플릿이 있습니다. 일반적인 관용구 그러나 template<class T,class E = void> struct foo { }; template<class T> struct foo<T,std::enable_if_t<is_xxx<T>{}> > {}; 처럼, 나는 기본 템플릿 (여분의 SFINAE 자리없이 즉

    2

    1답변

    클래스 내부 및 상속받은 클래스 내부에서 비어있는 소멸자를 확인하기 위해 템플릿, 매크로 또는 둘 모두의 조합을 사용하는 방법이 있습니까? (is_trivially_destructible은 내가 필요한 것을 만들어 내지 못합니다.) 비 포드 구성원 개체가 암시 적 /가 (더 소멸자가 선언되지 않은 경우에도) 컴파일러가 파괴 될 /하므로 class Test

    4

    2답변

    우리는 몇 줄의 좋아 한 : // Should not compile - manually checked // auto val = ::Utils::LexicalCast<const char*>(5); 그리고 나는 static_assert에서이 LexicalCast에서 실패 코드의 주석을 해제하면 참 : static_assert(!std::is_pointer

    2

    2답변

    특정 typedef를 포함하는 템플릿 매개 변수에 대해 특수화해야하는 템플릿 클래스가 있습니다. 그래서 두 개의 정의가 필요합니다. 하나는 typedef가 있고 다른 하나는 그렇지 않은 경우입니다. 내 문제는 SFINAE를 무효화하는 방법을 알지 못한다는 것입니다. 분명히 non-special 매개 변수에 대한 특수한 경우를 제거 할 수는 있지만 특수 매개

    3

    1답변

    다음 코드 단편은 folly에서 가져와 하나의 정수가 다른 컴파일 타임보다 큰지 확인합니다. GCC 4.8.2 #include <limits> #include <type_traits> template <typename RHS, RHS rhs, typename LHS> bool greater_than_impl( typename std::enab

    0

    1답변

    주어진 유형에 따라 std::uniform_*_distribution에 대한 형질을 만들고 싶습니다. 예 : distribution_traits<float>::type int_dist; 다음 방법을 시도했지만 그 중 아무 것도 컴파일되지 않으며 그 이유를 알 수 없습니다. typedef들과 구현 한 사용 std::enable_if : template <