[OpenWalnut-Dev] Question concerning some template code

Alexander Wiebel wiebel at zib.de
Sat Mar 5 22:33:59 CET 2011


Hi guys.

I have a problem with some of OpenWalnut's template code and 
VisualStudio's compiler. The following diff shows what I need to do to 
get it compile.

diff -r 2667e3ca1210 src/common/math/WTensor.h
--- a/src/common/math/WTensor.h Sat Mar 05 22:15:25 2011 +0100
+++ b/src/common/math/WTensor.h Sat Mar 05 22:22:24 2011 +0100
@@ -100,7 +100,7 @@

  template< std::size_t order, std::size_t dim, typename Data_T >
  WTensor< order, dim, Data_T >::WTensor()
-    : WTensorFunc< WTensorBase, order, dim, Data_T >()
+//    : WTensorFunc< WTensorBase, order, dim, Data_T >()
  {
  }

diff -r 2667e3ca1210 src/common/math/WTensorSym.h
--- a/src/common/math/WTensorSym.h      Sat Mar 05 22:15:25 2011 +0100
+++ b/src/common/math/WTensorSym.h      Sat Mar 05 22:22:24 2011 +0100
@@ -90,13 +90,13 @@

  template< std::size_t order, std::size_t dim, typename Data_T >
  WTensorSym< order, dim, Data_T >::WTensorSym()
-    : WTensorFunc< WTensorBaseSym, order, dim, Data_T >()
+//    : WTensorFunc< WTensorBaseSym, order, dim, Data_T >()
  {
  }

  template< std::size_t order, std::size_t dim, typename Data_T >
  WTensorSym< order, dim, Data_T >::WTensorSym( const WValue< Data_T >& 
data )
-    : WTensorFunc< WTensorBaseSym, order, dim, Data_T >( data )
+//    : WTensorFunc< WTensorBaseSym, order, dim, Data_T >( data )
  {
  }




If I do not do this I get error messages like the following for WTensorSym.h

31>c:\users\bzfwiebe\development\w\openwalnut\src\datahandler\../common/math/WTensorSym.h(99) 
: error C3200: 'WTensorBaseSym<order,dim,Data_T>' : invalid template 
argument for template parameter 'TensorBase_T', expected a class template
31>        with
31>        [
31>            order=2,
31>            dim=3,
31>            Data_T=float
31>        ]
31>        
c:\users\bzfwiebe\development\w\openwalnut\src\datahandler\../common/math/WTensorSym.h(99) 
: while compiling class template member function 
'WTensorSym<order,dim,Data_T>::WTensorSym(const WValue<T> &)'
31>        with
31>        [
31>            order=2,
31>            dim=3,
31>            Data_T=float,
31>            T=float
31>        ]
31>        ..\..\..\src\dataHandler\WDataSetDTI.cpp(61) : see reference 
to class template instantiation 'WTensorSym<order,dim,Data_T>' being 
compiled
31>        with
31>        [
31>            order=2,
31>            dim=3,
31>            Data_T=float
31>        ]
31>c:\users\bzfwiebe\development\w\openwalnut\src\datahandler\../common/math/WTensorSym.h(100) 
: error C2614: 'WTensorSym<order,dim,Data_T>' : illegal member 
initialization: 'WTensorFunc<WTensorBaseSym<2,3,float>,2,3,float>' is 
not a base or member
31>        with
31>        [
31>            order=2,
31>            dim=3,
31>            Data_T=float
31>        ]

Any Ideas?

Cheers
Alex


More information about the OpenWalnut-Dev mailing list