Questions tagged «partial-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 allowed!

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 ++不允许函数模板部分专业化(仅允许完全专业化)。但是我的代码是否意味着我已将函数模板部分专门化用于一个/相同类型参数?因为它适用于Microsoft Visual Studio 2010 Express!如果否,那么您能否解释部分专业化概念? #include <iostream> using std::cin; using std::cout; using std::endl; template <typename T1, typename T2> inline T1 max …

7
如何在C#中进行模板专业化
您将如何在C#中进行专业化? 我会提出一个问题。您有模板类型,不知道它是什么。但是您确实知道它是否源于XYZ您要调用.alternativeFunc()。一个很棒的方法是调用一个专用函数或类并normalCall返回,.normalFunc()而对任何派生类型的XYZcall进行其他专门化处理.alternativeFunc()。用C#怎么做?

1
clang / gcc类专业化不一致
我碰到这个问题,而试图专注tuple_size/ tuple_element自定义类在C ++ 17的结构结合。 下面的代码在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 <typename T> struct Test; template <typename T> struct Test<sfinae_v_t<T, std::is_integral_v<T>>> {}; void f() { Test<int> t; } https://godbolt.org/z/ztuRSq 这是clang提供的错误: <source>:13:8: error: class template partial …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.