sfinae

    11

    1답변

    내가 언급 부스트와 libc의 많은 그 ++/된 libstdC++가 명시 적으로 0으로 전화를 걸 때이 예상되는 이유에 저를 혼란 그러나 명시 적으로 // libc++ http://llvm.org/svn/llvm-project/libcxx/trunk/include/memory namespace __has_pointer_type_imp { tem

    0

    1답변

    코드 고려 SFINAE (표준 : enable_if) 및 템플릿 특수화를 사용하기 : C2912: explicit specialization 'CByteArray serialize(const HLVariant &)' is not a specialization of a function template error C2783: 'CByteArray seriali

    2

    1답변

    다음 코드를 #include <type_traits> struct CByteArray {}; struct HLVariant { HLVariant() {} HLVariant(const HLVariant&) {} HLVariant(const CByteArray&) {} }; template <typename T>

    4

    1답변

    나는, 매우 간단하게 몇 가지 코드가 다소 다음과 같습니다 Y::Faa 수동 Y::operator<<를 지정하는 데 대한 모호한 연산자를 피할 수있는 방법이 #include <iostream> #include <type_traits> namespace X { struct Foo {int x;}; struct Bar {int x;};

    27

    7답변

    값을 보유하는 C<T> 클래스 템플릿을 작성한다고 가정하면 이 복사 가능한 경우에만 C<T>을 복사 할 수 있습니다. 그것이 안전하지 때 템플릿 또는 특정 작업을 지원하지 않을 수도 있습니다 때 일반적으로, 당신은 작업을 정의하고 그것을 호출 피하기 위해 발신자에게이야 :는 template <typename T> class C { private:

    1

    1답변

    그의 이야기 Modern Template Metaprogramming : 제 1 부 Walter Brown은 enable_if와 SFINAE의 상호 작용에 관해 논의하는 길을 열었습니다. 약 47:40의 토크에서 그는 물어 보는 질문에 대한 그의 대답과 어느 정도 일치 할 수없는 질문을합니다. 그러나 SFINAE가 과부하 해상도와 분리되어 있으며 기능에 대

    0

    2답변

    (<) 연산자가 정의되지 않은 유형이 'myclass'로 전달되면 예외를 throw하려고합니다. 내가하고 싶은 것을 설명하기 위해 몇 가지 샘플 코드를 추가했습니다. template<typename T> class CLASS { public: CLASS() { //if('T' does not have '<' operator

    0

    2답변

    이 코드는 VS2013 및 기타 컴파일러에서 작동 에서 함수 서명에 enable_if 및 underlying_type를 사용하지만 VS2012에서 컴파일에 실패 : #include <type_traits> #include <cstdio> // error C4519: default template arguments are only allowed on a

    0

    1답변

    저는 템플릿 클래스에 비교 연산자가있을 때마다 정렬 기능을 갖고 싶은 템플릿 컨테이너 클래스를 만들고 있습니다. SFINAE를 사용하면 런타임 중에 연산자가 존재하는지 확인할 수 있습니다. 그러나 아래의 코드를 컴파일 할 때 물론 sort을 포함하는 줄을 컴파일하려고 시도합니다. compare 연산자가 해당 클래스에 지정되어 있지 않으면 컴파일러 오류가 반

    1

    1답변

    템플릿 기반 명시 적 캐스트 연산자를 시도하고 있습니다. 나는 표기법으로 연산자의 "이름"슬롯에 타입 특성과 std::enable_if이라는 표현식을 실제로 넣을 수 있음을 알았습니다. #include <iostream> #include <type_traits> class WillCast { public: explicit operator i