1 // Templates Test file:
4 template <class T
, int U
, class V
>
7 const T
* read_ref_member_one( T
);
8 const V
* read_ref_member_two();
12 template <class T
, int U
, class V
>
15 read_ref
<T
,10,V
> operator->() {
41 FooOne
* operator->();
44 typedef ref
<FooOne
, 10,FooTwo
> Test
;
50 ref
<FooOne
, 10, FooTwo
> v
;
52 v
->read_ref_member_one()-> // -2-
54 // #2# ( "fooOneMember" )
56 v
->read_ref_member_two()-> // -3-
58 // #3# ( "fooTwoMember" )
62 // #4# ( "read_ref_member_one" "read_ref_member_two" )
66 t
->read_ref_member_two()-> // -5-
68 // #5# ( "fooTwoMember" )
70 ref
<FooOne
, 10, FooThree
> v2
;
72 v2
->read_ref_member_two()-> // -6-
74 // #6# ( "fooOneMember" )
76 /* Try all these things by also specifying the namespace in the name. */
77 NS::ref
<FooOne
, 10, FooTwo
> v3
;
79 v3
->read_ref_member_one()-> // -7-
81 // #7# ( "fooOneMember" )
83 v3
->read_ref_member_two()-> // -8-
85 // #8# ( "fooTwoMember" )
87 v3
->read_ref_member_two
// @1@ 5
92 // arch-tag: 03cbb8c3-3d01-42ab-b416-42a08ea7b896