Show
Ignore:
Timestamp:
04/01/08 10:36:56 (9 months ago)
Author:
peter
Message:

source/container_classes.h:

Bug-fix - r1899 breaks the build with MS VS, hence limit the extern declaration to Mac Darwin only.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/source/container_classes.h

    r1899 r1907  
    17071707typedef multi_arr<double,6>::const_iterator md6ci; 
    17081708 
     1709#if defined(macintosh) || defined(__MACOSX__) || defined(__APPLE__) 
     1710#define MAC_EXTERN EXTERN 
     1711#else 
     1712#define MAC_EXTERN 
     1713#endif 
     1714 
     1715// on Mac these instantiations need to be extern in order to avoid duplicate symbols 
     1716// but MS Visual Studio rejects the extern declaration as a syntax error.... 
    17091717#define INSTANTIATE_MULTI_ARR( TYPE, LAYOUT, BC ) \ 
    1710 EXTERN template TYPE& n_pointer<TYPE,1,LAYOUT,BC>::operator[] (const size_t) const; \ 
    1711 EXTERN template const n_pointer<TYPE,1,LAYOUT,BC> n_pointer<TYPE,2,LAYOUT,BC>::operator[] (const size_t) const; \ 
    1712 EXTERN template const n_pointer<TYPE,2,LAYOUT,BC> n_pointer<TYPE,3,LAYOUT,BC>::operator[] (const size_t) const; \ 
    1713 EXTERN template const n_pointer<TYPE,3,LAYOUT,BC> n_pointer<TYPE,4,LAYOUT,BC>::operator[] (const size_t) const; \ 
    1714 EXTERN template const n_pointer<TYPE,4,LAYOUT,BC> n_pointer<TYPE,5,LAYOUT,BC>::operator[] (const size_t) const; \ 
    1715 EXTERN template const n_pointer<TYPE,1,LAYOUT,BC> multi_arr<TYPE,2,LAYOUT,BC>::operator[] (const size_t); \ 
    1716 EXTERN template const n_pointer<TYPE,2,LAYOUT,BC> multi_arr<TYPE,3,LAYOUT,BC>::operator[] (const size_t); \ 
    1717 EXTERN template const n_pointer<TYPE,3,LAYOUT,BC> multi_arr<TYPE,4,LAYOUT,BC>::operator[] (const size_t); \ 
    1718 EXTERN template const n_pointer<TYPE,4,LAYOUT,BC> multi_arr<TYPE,5,LAYOUT,BC>::operator[] (const size_t); \ 
    1719 EXTERN template const n_pointer<TYPE,5,LAYOUT,BC> multi_arr<TYPE,6,LAYOUT,BC>::operator[] (const size_t); \ 
    1720 EXTERN template const TYPE& const_n_pointer<TYPE,1,LAYOUT,BC>::operator[] (const size_t) const; \ 
    1721 EXTERN template const const_n_pointer<TYPE,1,LAYOUT,BC> const_n_pointer<TYPE,2,LAYOUT,BC>::operator[] (const size_t) const; \ 
    1722 EXTERN template const const_n_pointer<TYPE,2,LAYOUT,BC> const_n_pointer<TYPE,3,LAYOUT,BC>::operator[] (const size_t) const; \ 
    1723 EXTERN template const const_n_pointer<TYPE,3,LAYOUT,BC> const_n_pointer<TYPE,4,LAYOUT,BC>::operator[] (const size_t) const; \ 
    1724 EXTERN template const const_n_pointer<TYPE,4,LAYOUT,BC> const_n_pointer<TYPE,5,LAYOUT,BC>::operator[] (const size_t) const; \ 
    1725 EXTERN template const const_n_pointer<TYPE,1,LAYOUT,BC> multi_arr<TYPE,2,LAYOUT,BC>::operator[] (const size_t) const; \ 
    1726 EXTERN template const const_n_pointer<TYPE,2,LAYOUT,BC> multi_arr<TYPE,3,LAYOUT,BC>::operator[] (const size_t) const; \ 
    1727 EXTERN template const const_n_pointer<TYPE,3,LAYOUT,BC> multi_arr<TYPE,4,LAYOUT,BC>::operator[] (const size_t) const; \ 
    1728 EXTERN template const const_n_pointer<TYPE,4,LAYOUT,BC> multi_arr<TYPE,5,LAYOUT,BC>::operator[] (const size_t) const; \ 
    1729 EXTERN template const const_n_pointer<TYPE,5,LAYOUT,BC> multi_arr<TYPE,6,LAYOUT,BC>::operator[] (const size_t) const; \ 
    1730 EXTERN template TYPE& basic_pntr<TYPE,2,LAYOUT,BC>::operator* () const; \ 
    1731 EXTERN template TYPE& basic_pntr<TYPE,3,LAYOUT,BC>::operator* () const; \ 
    1732 EXTERN template TYPE& basic_pntr<TYPE,4,LAYOUT,BC>::operator* () const; \ 
    1733 EXTERN template TYPE& basic_pntr<TYPE,5,LAYOUT,BC>::operator* () const; \ 
    1734 EXTERN template TYPE& basic_pntr<TYPE,6,LAYOUT,BC>::operator* () const 
     1718MAC_EXTERN template TYPE& n_pointer<TYPE,1,LAYOUT,BC>::operator[] (const size_t) const; \ 
     1719MAC_EXTERN template const n_pointer<TYPE,1,LAYOUT,BC> n_pointer<TYPE,2,LAYOUT,BC>::operator[] (const size_t) const; \ 
     1720MAC_EXTERN template const n_pointer<TYPE,2,LAYOUT,BC> n_pointer<TYPE,3,LAYOUT,BC>::operator[] (const size_t) const; \ 
     1721MAC_EXTERN template const n_pointer<TYPE,3,LAYOUT,BC> n_pointer<TYPE,4,LAYOUT,BC>::operator[] (const size_t) const; \ 
     1722MAC_EXTERN template const n_pointer<TYPE,4,LAYOUT,BC> n_pointer<TYPE,5,LAYOUT,BC>::operator[] (const size_t) const; \ 
     1723MAC_EXTERN template const n_pointer<TYPE,1,LAYOUT,BC> multi_arr<TYPE,2,LAYOUT,BC>::operator[] (const size_t); \ 
     1724MAC_EXTERN template const n_pointer<TYPE,2,LAYOUT,BC> multi_arr<TYPE,3,LAYOUT,BC>::operator[] (const size_t); \ 
     1725MAC_EXTERN template const n_pointer<TYPE,3,LAYOUT,BC> multi_arr<TYPE,4,LAYOUT,BC>::operator[] (const size_t); \ 
     1726MAC_EXTERN template const n_pointer<TYPE,4,LAYOUT,BC> multi_arr<TYPE,5,LAYOUT,BC>::operator[] (const size_t); \ 
     1727MAC_EXTERN template const n_pointer<TYPE,5,LAYOUT,BC> multi_arr<TYPE,6,LAYOUT,BC>::operator[] (const size_t); \ 
     1728MAC_EXTERN template const TYPE& const_n_pointer<TYPE,1,LAYOUT,BC>::operator[] (const size_t) const; \ 
     1729MAC_EXTERN template const const_n_pointer<TYPE,1,LAYOUT,BC> const_n_pointer<TYPE,2,LAYOUT,BC>::operator[] (const size_t) const; \ 
     1730MAC_EXTERN template const const_n_pointer<TYPE,2,LAYOUT,BC> const_n_pointer<TYPE,3,LAYOUT,BC>::operator[] (const size_t) const; \ 
     1731MAC_EXTERN template const const_n_pointer<TYPE,3,LAYOUT,BC> const_n_pointer<TYPE,4,LAYOUT,BC>::operator[] (const size_t) const; \ 
     1732MAC_EXTERN template const const_n_pointer<TYPE,4,LAYOUT,BC> const_n_pointer<TYPE,5,LAYOUT,BC>::operator[] (const size_t) const; \ 
     1733MAC_EXTERN template const const_n_pointer<TYPE,1,LAYOUT,BC> multi_arr<TYPE,2,LAYOUT,BC>::operator[] (const size_t) const; \ 
     1734MAC_EXTERN template const const_n_pointer<TYPE,2,LAYOUT,BC> multi_arr<TYPE,3,LAYOUT,BC>::operator[] (const size_t) const; \ 
     1735MAC_EXTERN template const const_n_pointer<TYPE,3,LAYOUT,BC> multi_arr<TYPE,4,LAYOUT,BC>::operator[] (const size_t) const; \ 
     1736MAC_EXTERN template const const_n_pointer<TYPE,4,LAYOUT,BC> multi_arr<TYPE,5,LAYOUT,BC>::operator[] (const size_t) const; \ 
     1737MAC_EXTERN template const const_n_pointer<TYPE,5,LAYOUT,BC> multi_arr<TYPE,6,LAYOUT,BC>::operator[] (const size_t) const; \ 
     1738MAC_EXTERN template TYPE& basic_pntr<TYPE,2,LAYOUT,BC>::operator* () const; \ 
     1739MAC_EXTERN template TYPE& basic_pntr<TYPE,3,LAYOUT,BC>::operator* () const; \ 
     1740MAC_EXTERN template TYPE& basic_pntr<TYPE,4,LAYOUT,BC>::operator* () const; \ 
     1741MAC_EXTERN template TYPE& basic_pntr<TYPE,5,LAYOUT,BC>::operator* () const; \ 
     1742MAC_EXTERN template TYPE& basic_pntr<TYPE,6,LAYOUT,BC>::operator* () const 
    17351743 
    17361744INSTANTIATE_MULTI_ARR( bool, MEM_LAYOUT_VAL, lgBOUNDSCHECKVAL );