আফাইক যে সি ++ 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) {}
অনুমোদিত হয়।