diff --git a/include/vectorwrapper/implem_vec_common.hpp b/include/vectorwrapper/implem_vec_common.hpp index 8a1a89e..060eb79 100644 --- a/include/vectorwrapper/implem_vec_common.hpp +++ b/include/vectorwrapper/implem_vec_common.hpp @@ -28,6 +28,8 @@ namespace vwr { template struct VectorWrapperInfo; + typedef decltype(sizeof(int)) vwr_size_t; + template ::dimensions> class Vec; @@ -62,29 +64,27 @@ namespace vwr { template struct get_offset_enum_from_index; template struct get_offset_enum_from_index { - enum { value = VectorWrapperInfo::offset_x }; + static constexpr vwr_size_t value = VectorWrapperInfo::offset_x; }; template struct get_offset_enum_from_index { - enum { value = VectorWrapperInfo::offset_y }; + static constexpr vwr_size_t value = VectorWrapperInfo::offset_y; }; template struct get_offset_enum_from_index { - enum { value = VectorWrapperInfo::offset_z }; + static constexpr vwr_size_t value = VectorWrapperInfo::offset_z; }; template struct get_offset_enum_from_index { - enum { value = VectorWrapperInfo::offset_w }; + static constexpr vwr_size_t value = VectorWrapperInfo::offset_w; }; template ::dimensions> struct min_offset { - enum { - value = ( + static constexpr vwr_size_t value = ( static_cast(get_offset_enum_from_index::value) < static_cast(min_offset::value) ? static_cast(get_offset_enum_from_index::value) : static_cast(min_offset::value) - ) - }; + ); }; template struct min_offset { - enum { value = get_offset_enum_from_index::value }; + static constexpr vwr_size_t value = get_offset_enum_from_index::value; }; } //namespace implem } //namespace vwr