AFAIK जो C ++ 0x में बदल गया है।
मुझे लगता है कि यह सिर्फ एक निरीक्षण था (यह विचार करते हुए कि आप हमेशा static
एक वर्ग के सदस्य के रूप में फ़ंक्शन को रखकर अधिक क्रिया कोड के साथ आंशिक विशेषज्ञता प्रभाव प्राप्त कर सकते हैं )।
आप प्रासंगिक डीआर (दोष रिपोर्ट) देख सकते हैं, यदि कोई है।
EDIT : इसे जाँचते हुए , मुझे लगता है कि अन्य लोगों ने भी माना है कि, लेकिन कोई भी मसौदा मानक में ऐसा कोई समर्थन नहीं पा रहा है। यह SO थ्रेड इंगित करता है कि C ++ 0x में फ़ंक्शन टेम्प्लेट का आंशिक विशेषज्ञता समर्थित नहीं है ।
EDIT 2 : मेरे द्वारा " static
एक वर्ग के सदस्य के रूप में कार्य को प्रस्तुत करने" का सिर्फ एक उदाहरण है :
#include <iostream>
using namespace std;
void say( char const s[] ) { std::cout << s << std::endl; }
namespace detail {
template< class T, class U >
struct F {
static void impl() { say( "1. primary template" ); }
};
template<>
struct F<int, char> {
static void impl() { say( "2. <int, char> explicit specialization" ); }
};
template< class T >
struct F< char, T > {
static void impl() { say( "3. <char, T> partial specialization" ); }
};
template< class T >
struct F< T, int > {
static void impl() { say( "4. <T, int> partial specialization" ); }
};
}
template< class T, class U >
void f() { detail::F<T, U>::impl(); }
int main() {
f<char const*, double>();
f<int, char>();
f<char, double>();
f<double, int>();
}
template<typename T, typename U> void f(T t, U u) {}
भीtemplate<> void f(int t, char u) {}
अनुमति है।