v3d_accessor() {}
v3d_accessor(const boost::array<std::size_t, 3>& dim, std::vector<CastElementType>& vec, bool resize_vector #if (defined(BOOST_MSVC) && BOOST_MSVC <= 1200) , bool MSVC_DUMMY = false #endif ) : ndim_accessor<dimension_end<3>, ElementType*, ElementType> (dim, 0) { std::size_t se = sizeof(ElementType); std::size_t sc = sizeof(CastElementType); if (se >= sc) { if (resize_vector) vec.resize(N1d() * se / sc); } else { if (dim[2] % (sc / se)) { PyErr_SetString(PyExc_RuntimeError, "Vector not properly dimensioned:" " number of elements in third dimension must be even."); throw boost::python::error_already_set(); } if (resize_vector) vec.resize(N1d() * se / sc); } m_start = reinterpret_cast<ElementType*>(&(*(vec.begin()))); }
    v3d_accessor() {}