Parent Directory | Revision Log
This commit was manufactured by cvs2svn to create branch 'linuxsampler_org'.
1 | persson | 1052 | #include <gig.h> |
2 | |||
3 | template<typename T> | ||
4 | class Param { | ||
5 | protected: | ||
6 | gig::DimensionRegion* object; | ||
7 | public: | ||
8 | virtual T& access() = 0; | ||
9 | }; | ||
10 | |||
11 | template<typename T> | ||
12 | class Param1 : public Param<T> { | ||
13 | using Param<T>::object; | ||
14 | T gig::DimensionRegion::* param; | ||
15 | public: | ||
16 | Param1(T gig::DimensionRegion::* param) : param(param) { } | ||
17 | T& access(); | ||
18 | }; | ||
19 | |||
20 | template<typename T> | ||
21 | T& Param1<T>::access() { | ||
22 | printf("ojsan"); | ||
23 | return object->*param; | ||
24 | } | ||
25 | |||
26 | class ParamUnityNote : public Param<uint8_t> { | ||
27 | public: | ||
28 | uint8_t& access() { | ||
29 | printf("hejsan\n"); | ||
30 | return object->UnityNote; } | ||
31 | }; | ||
32 | |||
33 | |||
34 | int main() { | ||
35 | ParamUnityNote p1; | ||
36 | Param1<uint8_t> p2(&gig::DimensionRegion::ChannelOffset); | ||
37 | Param<uint8_t>& pp = p1; | ||
38 | printf("%d\n", pp.access()); | ||
39 | } |
ViewVC Help | |
Powered by ViewVC |