00001 /* 00002 File: VLInstantiate.cc 00003 00004 Purpose: (Attempt to) instantiate templates used by functions in the 00005 VL library. 00006 00007 Author: Andrew Willmott 00008 */ 00009 00010 #include "cl/Basics.h" 00011 #include "cl/Array.h" 00012 00013 // Instantiate float and double arrays, if possible. 00014 // (Unfortunately, many C++ compilers don't yet support the 00015 // ANSI syntax for doing this. It's not a disaster if they 00016 // don't, as, unless the compiler is really broken, it 00017 // should automatically instantiate the templates at 00018 // compile time. 00019 00020 #ifdef CL_SGI_INST 00021 #pragma instantiate Array<Float> 00022 #pragma instantiate Array<Double> 00023 00024 #pragma instantiate Array<Array<Float> > 00025 #pragma instantiate Array<Array<Double> > 00026 00027 #include "vl/VLf.h" 00028 #include "vl/VLd.h" 00029 00030 #pragma instantiate Array<SparsePaird> 00031 #pragma instantiate Array<SparsePairf> 00032 #pragma instantiate Array<SparseVecd> 00033 #pragma instantiate Array<SparseVecf> 00034 00035 #if 1 00036 #pragma instantiate istream &operator>>(istream&, Array<Double>&) 00037 #pragma instantiate istream &operator>>(istream&, Array<Array<Double> >&) 00038 #pragma instantiate istream &operator>>(istream&, Array<SparseVecd>&) 00039 #pragma instantiate istream &operator>>(istream&, Array<Float>&) 00040 #pragma instantiate istream &operator>>(istream&, Array<Array<Float> >&) 00041 #pragma instantiate istream &operator>>(istream&, Array<SparseVecf>&) 00042 #if 0 00043 #pragma instantiate istream &operator>>(istream&, Array<SparsePaird>&) 00044 #pragma instantiate istream &operator>>(istream&, Array<SparsePairf>&) 00045 #endif 00046 #endif 00047 00048 #elif defined(CL_TMPL_INST) 00049 template class Array<Float>; 00050 template class Array<Double>; 00051 template class Array<Array<Float> >; 00052 template class Array<Array<Double> >; 00053 #endif