لا يمكنني الوصول إلى المؤشر إلى الأعضاء. لماذا ا؟
-
05-07-2019 - |
سؤال
النظر في الرمز التالي:
template<class T, class F> struct X {};
template<class T, class F, T F::* m> struct Y {};
struct Foo {
int member;
typedef X<int, Foo> x_type; // works well
typedef Y<int, Foo, &Foo::member> y_type; // ERROR
};
typedef Y<int, Foo, &Foo::member> y_type2; // OK
لماذا يولد برنامج التحويل البرمجي خطأ؟ (VS2008)
جديد
لقد نشرت هذا الخطأ إلى connect.microsoft.com.
المحلول 2
هذا ال حشرة
نصائح أخرى
لقد تعثرت على نفس المشكلة. لا يزال دعم حجج القالب من المؤشر إلى الأعضاء محدودًا في VC ++ (انظر تقرير الشوائب).
في حالتي ، يمكنني العمل من حوله باستخدام دالة قالب ISO فئة قالب:
template< typename Class > struct CMemberDumper {
Class& object;
template< typename M > void visit_member( M C::*pm ) {
std::cout << object.*pm;
}
};
لا تنتمي إلى StackOverflow