Mercurial > emacs
view test/cedet/tests/testpolymorph.cpp @ 109732:470bed744331
Use autoconf determined WORDS_BIGENDIAN instead of hardcoded definition.
* m/alpha.h: Don't define/undef WORDS_BIG_ENDIAN.
* m/amdx86-64.h: Likewise.
* m/arm.h: Likewise.
* m/hp800.h: Likewise.
* m/ia64.h: Likewise.
* m/ibmrs6000.h: Likewise.
* m/ibms390.h: Likewise.
* m/intel386.h: Likewise.
* m/iris4d.h: Likewise.
* m/m68k.h: Likewise.
* m/macppc.h: Likewise.
* m/mips.h: Likewise.
* m/sh3.h: Likewise.
* m/sparc.h: Likewise.
* m/template.h: Likewise.
* m/vax.h: Likewise.
* m/xtensa.h: Likewise.
* fringe.c (init_fringe_bitmap): Test WORDS_BIGENDIAN instead of
WORDS_BIG_ENDIAN.
* lisp.h: Likewise.
* md5.c: Likewise.
* sound.c (le2hl, le2hs, be2hl, be2hs): Likewise.
* CPP-DEFINES (WORDS_BIG_ENDIAN): Remove.
* configure.in: Add AC_C_BIGENDIAN.
author | Andreas Schwab <schwab@linux-m68k.org> |
---|---|
date | Mon, 09 Aug 2010 21:25:41 +0200 |
parents | bb33285d1ceb |
children | 376148b31b5e |
line wrap: on
line source
/** testpolymorph.cpp --- A sequence of polymorphism examples. * * Copyright (C) 2009, 2010 Free Software Foundation, Inc. * * Author: Eric M. Ludlam <eric@siege-engine.com> * * This file is part of GNU Emacs. * * GNU Emacs is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * GNU Emacs is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ #include <cmath> // Test 1 - Functions w/ prototypes namespace proto { int pt_func1(int arg1); int pt_func1(int arg1) { return 0; } } // Test 2 - Functions w/ different arg lists. namespace fcn_poly { int pm_func(void) { return 0; } int pm_func(int a) { return a; } int pm_func(char a) { return int(a); } int pm_func(double a) { return int(floor(a)); } } // Test 3 - Methods w/ differet arg lists. class meth_poly { public: int pm_meth(void) { return 0; } int pm_meth(int a) { return a; } int pm_meth(char a) { return int(a); } int pm_meth(double a) { return int(floor(a)); } }; // Test 4 - Templates w/ partial specifiers. namespace template_partial_spec { template <typename T> class test { public: void doSomething(T t) { }; }; template <typename T> class test<T *> { public: void doSomething(T* t) { }; }; } // Test 5 - Templates w/ full specicialization which may or may not share // common functions. namespace template_full_spec { template <typename T> class test { public: void doSomething(T t) { }; void doSomethingElse(T t) { }; }; template <> class test<int> { public: void doSomethingElse(int t) { }; void doSomethingCompletelyDifferent(int t) { }; }; } // Test 6 - Dto., but for templates with multiple parameters. namespace template_multiple_spec { template <typename T1, typename T2> class test { public: void doSomething(T1 t) { }; void doSomethingElse(T2 t) { }; }; template <typename T2> class test<int, T2> { public: void doSomething(int t) { }; void doSomethingElse(T2 t) { }; }; template <> class test<float, int> { public: void doSomething(float t) { }; void doSomethingElse(int t) { }; void doNothing(void) { }; }; } // End of polymorphism test file. // arch-tag: e2c04959-9b3b-4b4f-b9c2-445bf4848aa4