diff options
author | Jeffrey A Law <law@cygnus.com> | 1997-08-19 07:34:40 +0000 |
---|---|---|
committer | Jeffrey A Law <law@cygnus.com> | 1997-08-19 07:34:40 +0000 |
commit | 78f6ae13813180b99245b321ade25c3213ec7f81 (patch) | |
tree | 335fa7ed68bccaabc938e142eabc167ac296372e /gcc/testsuite/g++.old-deja/g++.brendan/template11.C | |
parent | 2fbf616b6e3115dd2835a13f83daee00913fdcbf (diff) |
Initial revision
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@14840 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.brendan/template11.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.brendan/template11.C | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/template11.C b/gcc/testsuite/g++.old-deja/g++.brendan/template11.C new file mode 100644 index 00000000000..55fa2b20025 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.brendan/template11.C @@ -0,0 +1,47 @@ +// Build don't link: +// GROUPS passed templates +template <class Called> +class aCallback +{ +public: + aCallback(Called& obj, int (Called::*met)()); + + int callback(); + +protected: + +private: + // the object to call + Called& object; + + // the method to apply + int (Called::*method)(); + +}; + +template <class Called> +aCallback<Called>::aCallback(Called& obj, + int (Called::*met)()) : +object(obj), +method(met) +{}; + +template <class Called> +int aCallback<Called>::callback() +{ + return (object.*method)(); +} + +struct myStruct +{ + int action() {return 24;}; +}; + +main() +{ + myStruct toto; + + aCallback<myStruct> cb(toto, &myStruct::action); + + return cb.callback(); +} |