P
Klappt leider immer noch nicht
error C2754: 'accessor<T,DummyClass,0x0,0x0>': Eine teilweise Spezialisierung darf keinen abhängigen Nichttyp-Vorlagenparameter haben
Ich würde aber eher ein eigenes Template verwenden.
ich würds der Einfacheit halber gerne in ein und dem selben objekt anbieten wollen
[Edit]
Habe es nun nach ein wenig rumprobieren und etwas tricksen hingekriegt, sogar so, dass ich jetzt sämtliche Zugriffstypen und evtl. sogar den indexer drüber laufen lassen kann.
template<typename T> struct _setget{};
template<typename T, class O, void (O::*setPtr) (T), T (O::*getPtr) ()> struct _setgetf{};
template<class A, long I> //<- alibi variable
struct accessor;
template<typename T, class O, void (O::*setPtr) (T), T (O::*getPtr) ()>
struct accessor<_setgetf<T,O,setPtr,getPtr>,0>
{ ... };
template<typename T>
struct accessor<_setget<T>,0>
{ ... };
und verwende dies im code nun folgendermaßen
class X
{
public:
X() : XY(xy) {}
accessor<_setget<int>,0 /*muss leider sein, evtl per macro ersetzen*/ > XY;
private:
int xy;
};
main()
{
X x();
x.XY = 20;
cout << x.XY << endl;
}