Parent Directory | Revision Log
This commit was manufactured by cvs2svn to create branch 'linuxsampler_org'.
1 | #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 |