Changeset 1912

Show
Ignore:
Timestamp:
04/03/08 08:31:35 (3 months ago)
Author:
peter
Message:

source/cddefines.h:
source/container_classes.h:
source/iso_create.cpp:

Port r1899, r1907, r1910, and r1911 to the release branch.

  • Fix broken build on Mac Darwin by making (const_)pntr instantiations extern.
  • This also reduced the size of the binary and the build time on other platforms.
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/c08_branch/source/cddefines.h

    r1856 r1912  
    13401340}; 
    13411341 
     1342/* Explicit instantiations for debugging purposes */ 
     1343INSTANTIATE_MULTI_ARR( quantumState, MEM_LAYOUT_VAL, lgBOUNDSCHECKVAL ); 
     1344INSTANTIATE_MULTI_ARR( transition, MEM_LAYOUT_VAL, lgBOUNDSCHECKVAL ); 
     1345 
    13421346 
    13431347/*************************************************************************** 
     
    15591563         * line 126 */ 
    15601564#       pragma warning( disable : 4512 ) 
     1565        /* disable "'extern' before template explicit instantiation" */ 
     1566#       pragma warning( disable : 4231 ) 
    15611567#endif 
    15621568#ifdef __INTEL_COMPILER 
  • branches/c08_branch/source/container_classes.h

    r1825 r1912  
    17071707typedef multi_arr<double,6>::const_iterator md6ci; 
    17081708 
     1709#if defined(__GNUC__) || defined(__INTEL_COMPILER) || defined(_MSC_VER) || defined(__PGI) 
     1710#define INST_EXTERN EXTERN 
     1711#else 
     1712#define INST_EXTERN 
     1713#endif 
     1714 
     1715// on Mac systems these instantiations need to be extern in order to avoid duplicate symbols 
    17091716#define INSTANTIATE_MULTI_ARR( TYPE, LAYOUT, BC ) \ 
    1710 template TYPE& n_pointer<TYPE,1,LAYOUT,BC>::operator[] (const size_t) const; \ 
    1711 template const n_pointer<TYPE,1,LAYOUT,BC> n_pointer<TYPE,2,LAYOUT,BC>::operator[] (const size_t) const; \ 
    1712 template const n_pointer<TYPE,2,LAYOUT,BC> n_pointer<TYPE,3,LAYOUT,BC>::operator[] (const size_t) const; \ 
    1713 template const n_pointer<TYPE,3,LAYOUT,BC> n_pointer<TYPE,4,LAYOUT,BC>::operator[] (const size_t) const; \ 
    1714 template const n_pointer<TYPE,4,LAYOUT,BC> n_pointer<TYPE,5,LAYOUT,BC>::operator[] (const size_t) const; \ 
    1715 template const n_pointer<TYPE,1,LAYOUT,BC> multi_arr<TYPE,2,LAYOUT,BC>::operator[] (const size_t); \ 
    1716 template const n_pointer<TYPE,2,LAYOUT,BC> multi_arr<TYPE,3,LAYOUT,BC>::operator[] (const size_t); \ 
    1717 template const n_pointer<TYPE,3,LAYOUT,BC> multi_arr<TYPE,4,LAYOUT,BC>::operator[] (const size_t); \ 
    1718 template const n_pointer<TYPE,4,LAYOUT,BC> multi_arr<TYPE,5,LAYOUT,BC>::operator[] (const size_t); \ 
    1719 template const n_pointer<TYPE,5,LAYOUT,BC> multi_arr<TYPE,6,LAYOUT,BC>::operator[] (const size_t); \ 
    1720 template const TYPE& const_n_pointer<TYPE,1,LAYOUT,BC>::operator[] (const size_t) const; \ 
    1721 template const const_n_pointer<TYPE,1,LAYOUT,BC> const_n_pointer<TYPE,2,LAYOUT,BC>::operator[] (const size_t) const; \ 
    1722 template const const_n_pointer<TYPE,2,LAYOUT,BC> const_n_pointer<TYPE,3,LAYOUT,BC>::operator[] (const size_t) const; \ 
    1723 template const const_n_pointer<TYPE,3,LAYOUT,BC> const_n_pointer<TYPE,4,LAYOUT,BC>::operator[] (const size_t) const; \ 
    1724 template const const_n_pointer<TYPE,4,LAYOUT,BC> const_n_pointer<TYPE,5,LAYOUT,BC>::operator[] (const size_t) const; \ 
    1725 template const const_n_pointer<TYPE,1,LAYOUT,BC> multi_arr<TYPE,2,LAYOUT,BC>::operator[] (const size_t) const; \ 
    1726 template const const_n_pointer<TYPE,2,LAYOUT,BC> multi_arr<TYPE,3,LAYOUT,BC>::operator[] (const size_t) const; \ 
    1727 template const const_n_pointer<TYPE,3,LAYOUT,BC> multi_arr<TYPE,4,LAYOUT,BC>::operator[] (const size_t) const; \ 
    1728 template const const_n_pointer<TYPE,4,LAYOUT,BC> multi_arr<TYPE,5,LAYOUT,BC>::operator[] (const size_t) const; \ 
    1729 template const const_n_pointer<TYPE,5,LAYOUT,BC> multi_arr<TYPE,6,LAYOUT,BC>::operator[] (const size_t) const; \ 
    1730 template TYPE& basic_pntr<TYPE,2,LAYOUT,BC>::operator* () const; \ 
    1731 template TYPE& basic_pntr<TYPE,3,LAYOUT,BC>::operator* () const; \ 
    1732 template TYPE& basic_pntr<TYPE,4,LAYOUT,BC>::operator* () const; \ 
    1733 template TYPE& basic_pntr<TYPE,5,LAYOUT,BC>::operator* () const; \ 
    1734 template TYPE& basic_pntr<TYPE,6,LAYOUT,BC>::operator* () const 
     1717INST_EXTERN template class pntr<TYPE,2,LAYOUT,BC>; \ 
     1718INST_EXTERN template class pntr<TYPE,3,LAYOUT,BC>; \ 
     1719INST_EXTERN template class pntr<TYPE,4,LAYOUT,BC>; \ 
     1720INST_EXTERN template class pntr<TYPE,5,LAYOUT,BC>; \ 
     1721INST_EXTERN template class pntr<TYPE,6,LAYOUT,BC>; \ 
     1722INST_EXTERN template class const_pntr<TYPE,2,LAYOUT,BC>; \ 
     1723INST_EXTERN template class const_pntr<TYPE,3,LAYOUT,BC>; \ 
     1724INST_EXTERN template class const_pntr<TYPE,4,LAYOUT,BC>; \ 
     1725INST_EXTERN template class const_pntr<TYPE,5,LAYOUT,BC>; \ 
     1726INST_EXTERN template class const_pntr<TYPE,6,LAYOUT,BC> 
    17351727 
    17361728INSTANTIATE_MULTI_ARR( bool, MEM_LAYOUT_VAL, lgBOUNDSCHECKVAL ); 
  • branches/c08_branch/source/iso_create.cpp

    r1822 r1912  
    4141 
    4242char chL[21]={'S','P','D','F','G','H','I','K','L','M','N','O','Q','R','T','U','V','W','X','Y','Z'}; 
    43  
    44 /* Explicit instantiations for debugging purposes */ 
    45 INSTANTIATE_MULTI_ARR( quantumState, MEM_LAYOUT_VAL, lgBOUNDSCHECKVAL ); 
    46 INSTANTIATE_MULTI_ARR( transition, MEM_LAYOUT_VAL, lgBOUNDSCHECKVAL ); 
    4743 
    4844void iso_create(void)