English 中文(简体)
专门指定一个模范类别[复制]的模版成员
原标题:Specializing a templated member of a template class [duplicate]
This question already has answers here:
Closed 11 years ago.

Possible Duplicate:
Specialization of templated member function in templated class

template <class T>    
class MyClass
{
   template <int N>
   void func() {printf("unspecialized
");}
};
template<class T>
template<>
MyClass<T>::func<0>()
{
   printf("specialzied
");
}

这并不可行。 是否有可能专门采用模版类别模板方法?

最佳回答

不能按要求这样做。 由于某种原因(我不肯定理由)explicit(即full)成员模板的专业化,只有在封闭式组别还具备专业资格时方可允许。 这一要求在语言标准中作了明确规定(见C++98、C++03和14.7.3/16在C++11中)。

At the same time, partial specializations of member class templates are allowed, which in many cases can be used as a workaround (albeit an ugly one). But, obviously, it is only applicable to member class templates. When it comes to member function templates, an alternative solution has to be used.

例如,一项可能的工作是将这一呼吁下放给一个模范班的固定成员,并将其专门化(常常建议将其作为一种比职能模板专业化更好的想法:

template <class T>    
class MyClass
{
   template <int N, typename DUMMY = void> struct Func {
     static void func() { printf("unspecialized
"); }
   };

   template <typename DUMMY> struct Func<0, DUMMY> {
     static void func() { printf("specialized
"); }
   };

   template <int N> void func() { Func<N>::func(); }
};
问题回答

暂无回答




相关问题
Undefined reference

I m getting this linker error. I know a way around it, but it s bugging me because another part of the project s linking fine and it s designed almost identically. First, I have namespace LCD. Then I ...

C++ Equivalent of Tidy

Is there an equivalent to tidy for HTML code for C++? I have searched on the internet, but I find nothing but C++ wrappers for tidy, etc... I think the keyword tidy is what has me hung up. I am ...

Template Classes in C++ ... a required skill set?

I m new to C++ and am wondering how much time I should invest in learning how to implement template classes. Are they widely used in industry, or is this something I should move through quickly?

Print possible strings created from a Number

Given a 10 digit Telephone Number, we have to print all possible strings created from that. The mapping of the numbers is the one as exactly on a phone s keypad. i.e. for 1,0-> No Letter for 2->...

typedef ing STL wstring

Why is it when i do the following i get errors when relating to with wchar_t? namespace Foo { typedef std::wstring String; } Now i declare all my strings as Foo::String through out the program, ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

Window iconification status via Xlib

Is it possible to check with the means of pure X11/Xlib only whether the given window is iconified/minimized, and, if it is, how?

热门标签