8 #ifndef OPENFPM_IO_SRC_VTKWRITER_IS_VTK_WRITABLE_HPP_ 
    9 #define OPENFPM_IO_SRC_VTKWRITER_IS_VTK_WRITABLE_HPP_ 
   12 template<
typename T, 
bool is_w>
 
   16     typedef decltype(std::declval<T>().get_vtk(0)) 
type;
 
   31 template<
typename ObjType, 
typename Sfinae = 
void>
 
   39 template<
typename ObjType>
 
   47 template<
typename ObjType, 
typename Sfinae = 
void>
 
   51 template<typename ObjType, bool has_dims = is_vtk_vector_dims<ObjType>::value >
 
   62 template<
typename ObjType >
 
   78 template<
typename ObjType>
 
  138     typedef unsigned char base;
 
  164     typedef unsigned short base;
 
  190     typedef unsigned int base;
 
  216     typedef unsigned long base;
 
it check if the type is vtk writable 
 
void type
non writable vtk property (so void) 
 
If it has not dims property defined the object is considered scalar. 
 
it check if the type is vtk writable 
 
decltype(std::declval< T >().get_vtk(0)) typedef type
get the vtk type for the property 
 
check for T to be writable