আফাইক যে সি ++ 0x এ পরিবর্তিত হয়েছে।
আমার ধারণা এটি কেবল একটি পর্যবেক্ষণ ছিল (এই বিষয়টি বিবেচনা করে যে আপনি সবসময় আরও ভার্বোজ কোড সহ আংশিক বিশেষায়নের প্রভাব পেতে পারেন static, কোনও শ্রেণীর সদস্য হিসাবে ফাংশন স্থাপন করে )।
যদি কোনও থাকে তবে আপনি প্রাসঙ্গিক ডিআর (ত্রুটি প্রতিবেদন) সন্ধান করতে পারেন।
সম্পাদনা : এটি পরীক্ষা করে, আমি দেখতে পেলাম যে অন্যরাও বিশ্বাস করেছে যে, তবে খসড়া স্ট্যান্ডার্ডে কেউ এ জাতীয় সমর্থন খুঁজে পাচ্ছে না। এই SO থ্রেডটি ইঙ্গিত দেয় যে ফাংশন টেম্পলেটগুলির আংশিক বিশেষত্ব C ++ 0x এ সমর্থিত নয় ।
সম্পাদনা 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) {}অনুমোদিত হয়।