25 #ifndef WVALUESETBASE_H
26 #define WVALUESETBASE_H
31 #include <boost/shared_ptr.hpp>
32 #include <boost/variant.hpp>
34 #include "../common/math/WValue.h"
35 #include "WDataHandlerEnums.h"
39 template<
typename T >
43 typedef boost::variant< WValueSet< uint8_t >
const*,
65 typedef boost::shared_ptr< WValueSetBase >
SPtr;
70 typedef boost::shared_ptr< const WValueSetBase >
ConstSPtr;
89 virtual size_t size()
const = 0;
94 virtual size_t rawSize()
const = 0;
131 return static_cast< size_t >( std::pow( static_cast< double >(
m_dimension ), static_cast< int >(
m_order ) ) );
166 template<
typename Func_T >
169 return boost::apply_visitor( func,
getVariant() );
196 return WValueSetVariant();
200 #endif // WVALUESETBASE_H