«template-specialization» 태그된 질문

4
함수 템플릿을 부분적으로 전문화 할 수없는 이유는 무엇입니까?
언어 사양 이 기능 템플릿의 부분적인 전문화를 금지한다는 것을 알고 있습니다 . 나는 그것이 그것을 금지하는 이유를 알고 싶습니다. 유용하지 않습니까? template<typename T, typename U> void f() {} //allowed! template<> void f<int, char>() {} //allowed! template<typename T> void f<char, T>() {} //not allowed! template<typename T> void f<T, int>() {} //not …

6
C ++ 함수 템플릿 부분 전문화?
아래 코드가 클래스의 부분적인 전문화라는 것을 알고 있습니다. template <typename T1, typename T2> class MyClass { … }; // partial specialization: both template parameters have same type template <typename T> class MyClass<T,T> { … }; 또한 C ++에서는 함수 템플릿 부분 전문화를 허용하지 않는다는 것을 알고 있습니다 (전체 만 허용됨). …

1
클래스 템플릿의 중첩 클래스가 특수화를 통해서만 정의 된 코드를 거부하기 위해 Clang이 올바른가요?
다음과 같은 클래스 템플릿이 제공됩니다. template<typename T> struct Outer { struct Inner; auto f(Inner) -> void; }; 우리는 정의 Inner 각 전문 분야에 대해 별도로 합니다 Outer. template<> struct Outer<int>::Inner {}; template<> struct Outer<double>::Inner {}; 그런 다음 멤버 함수를 정의하십시오. f 모든 전문화에 대해 한 번Outer . auto Outer<T>::f(Inner) -> …

1
클래스 전문화에 clang / gcc 불일치
전문하는 동안 나는이 문제를 건너 온 tuple_size/ tuple_element구조 바인딩 (17) C ++에서 사용자 정의 클래스. 아래 코드는 GCC에서는 컴파일되지만 clang에서는 컴파일되지 않습니다 (두 트렁크 버전 모두 아래 링크 참조). #include <type_traits> template<typename T, typename... Ts> using sfinae_t = T; template<typename T, bool... Bs> using sfinae_v_t = sfinae_t<T, typename std::enable_if<Bs>::type...>; template …
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.