Main Page | Class Hierarchy | Class List | File List | Class Members

galloc.h

00001 /*============================================================================= 00002 File: galloc.h 00003 Purpose: There is a conflict between VC++6 and normal (i.e. egcs) C++ 00004 compiler. This defines macros necessary to solve that problem. 00005 Revision: $Id: galloc.h,v 1.2 2002/05/13 21:07:45 philosophil Exp $ 00006 Created by: Philippe Lavoie (3 Oct, 1996) 00007 Modified by: 00008 00009 Copyright notice: 00010 Copyright (C) 1996-1998 Philippe Lavoie 00011 00012 This library is free software; you can redistribute it and/or 00013 modify it under the terms of the GNU Library General Public 00014 License as published by the Free Software Foundation; either 00015 version 2 of the License, or (at your option) any later version. 00016 00017 This library is distributed in the hope that it will be useful, 00018 but WITHOUT ANY WARRANTY; without even the implied warranty of 00019 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00020 Library General Public License for more details. 00021 00022 You should have received a copy of the GNU Library General Public 00023 License along with this library; if not, write to the Free 00024 Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 00025 =============================================================================*/ 00026 00027 #ifndef _MATRIX_galloc_h_ 00028 #define _MATRIX_galloc_h_ 00029 00030 // this file is included inside the PLib namespace 00031 00032 //template <class T, const int D> class HPoint_nD ; 00033 00034 template <class T> 00035 void resizeBasicArray(BasicArray<T>& a, int nsize) ; 00036 00037 template <class T, const int D> 00038 void resizeBasicArrayHPoint(BasicArray<HPoint_nD<T,D> >&, int) ; 00039 00040 // forward declartations of specialisations: 00041 template<> void resizeBasicArray(BasicArray<HPoint_nD<float,2> >& a, int); 00042 template<> void resizeBasicArray(BasicArray<HPoint_nD<double,2> >& a, int); 00043 template<> void resizeBasicArray(BasicArray<HPoint_nD<float,3> >& a, int ); 00044 template<> void resizeBasicArray(BasicArray<HPoint_nD<double,3> >& a, int); 00045 00046 00047 00048 #ifdef HAVE_ISO_FRIEND_DECL 00049 00050 #define FRIEND_ARRAY_ALLOCATOR \ 00051 friend void resizeBasicArray<>(BasicArray<T>&, int) ; \ 00052 friend void resizeBasicArrayHPoint<>(BasicArray<HPoint_nD<float,2> >&,int); \ 00053 friend void resizeBasicArrayHPoint<>(BasicArray<HPoint_nD<double,2> >&,int);\ 00054 friend void resizeBasicArrayHPoint<>(BasicArray<HPoint_nD<float,3> >&,int); \ 00055 friend void resizeBasicArrayHPoint<>(BasicArray<HPoint_nD<double,3> >&,int); 00056 00057 #else 00058 00059 // explicit instantiation 00060 template void resizeBasicArrayHPoint(BasicArray<HPoint_nD<float,2> >&,int); 00061 template void resizeBasicArrayHPoint(BasicArray<HPoint_nD<double,2> >&,int); 00062 template void resizeBasicArrayHPoint(BasicArray<HPoint_nD<float,3> >&,int); 00063 template void resizeBasicArrayHPoint(BasicArray<HPoint_nD<double,3> >&,int); 00064 00065 00066 #define FRIEND_ARRAY_ALLOCATOR \ 00067 friend void resizeBasicArray(BasicArray<T>&, int) ; \ 00068 friend void resizeBasicArrayHPoint(BasicArray<HPoint_nD<float,2> >&,int); \ 00069 friend void resizeBasicArrayHPoint(BasicArray<HPoint_nD<double,2> >&,int);\ 00070 friend void resizeBasicArrayHPoint(BasicArray<HPoint_nD<float,3> >&,int); \ 00071 friend void resizeBasicArrayHPoint(BasicArray<HPoint_nD<double,3> >&,int); 00072 00073 #endif 00074 00075 00076 #endif

Generated on Tue Jul 27 15:44:56 2004 for NURBS++ by doxygen 1.3.7