如何在模板化类中为``boost :: array_view''创建typedef

jb。

我想要一个尺寸不可知的模板(对于3d和4d都有用),大多数操作将在去除第一维的子矩阵上执行。

所以这就是我想要的

template <typename element, int dimensions>
class MMapMatrixTemplate{
public:
    typedef boost::multi_array_ref<element, dimensions> array_type; 
    typedef std::array<size_t, dimensions> index_type;
    typedef array_type::array_view<dimensions-1>::type stride_type;
};

其中array_type,由此类管理的defineindex_type数组定义用于索引数组的类型,我想`stride_type定义此数组的一个维数较少的切片。

现在我得到一个错误:

  include/MMapMatrix.hh:31:55: error: non-template ‘array_view’ used as template
   typedef boost::multi_array_ref<element, dimensions>::array_view<dimensions-1>::type stride_type;
                                                   ^
特马里奇

有关视图文档中,您可以看到视图类型的定义为:

  typedef typename Array::template array_view<3>::type view1_t;

因此,这使您的代码可以编译:

#include "boost/multi_array.hpp"

template <typename element, int dimensions>
class MMapMatrixTemplate{
public:

    typedef boost::multi_array_ref<element, dimensions> array_type; 

    typedef std::array<size_t, dimensions> index_type;

    //typedef array_type::array_view<dimensions-1>::type stride_type;
    typedef typename array_type::template array_view<dimensions-1>::type stride_type;
};

int main(int argc, const char *argv[])
{

    typedef MMapMatrixTemplate<double, 4> matrix;

    return 0;
}

您需要指定array_view实际上是类模板,以便按原样使用它。否则,编译器期望它是完全定义的类型。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在模板化类中为``boost :: array_view''创建typedef

来自分类Dev

如何在模板化类的“命名空间”中创建非模板化typedef?

来自分类Dev

如何在C#中创建“指向函数指针的typedef”?

来自分类Dev

如何为类级别的typedef函数创建定义

来自分类Dev

用于地图,集合等的array_view替代方案

来自分类Dev

如何引用模板类中定义的typedef

来自分类Dev

如何转发声明要使用typedef创建的类型?

来自分类Dev

类模板中的Typedef指针

来自分类Dev

如何在C ++中创建模板包装器类

来自分类常见问题

如何在python中为类动态创建类方法

来自分类Dev

类内部的模板化类的Typedef

来自分类Dev

类内的模板化类的Typedef

来自分类Dev

如何从不透明的指针typedef中创建一个shared_ptr?(或:如何“解包” typedef?)

来自分类Dev

模板化类中的typedef导致C ++错误

来自分类Dev

如何在必须返回类模板的函数指针上使用C ++中的typedef?

来自分类常见问题

如何在Kotlin中创建View类对象?什么是AttributeSet?如何为视图创建它?

来自分类Dev

Typedef 在模板化类中使用模板化嵌套类

来自分类Dev

如何在捕获lambda参数时使用模板化的typedef?

来自分类Dev

如何在Ruby中为String类创建新函数?

来自分类Dev

如何在Perl中为Point类创建随机函数?

来自分类Dev

模板类的typedef

来自分类Dev

typedef模板类实例

来自分类Dev

无法将 std::vector<bool> 传递给 winrt::array_view

来自分类Dev

创建一个typedef从外部作用域重新声明模板参数的负面影响?

来自分类Dev

* .cpp文件中的Typedef模板类指针

来自分类Dev

如何在LinearLayout类中为Android View充气?

来自分类Dev

如何在LinearLayout类中为Android View充气?

来自分类Dev

如何在不创建类的情况下在Fragment中设置View来扩展Fragment?

来自分类Dev

如何在Boost序列化中创建序列化接口?

Related 相关文章

  1. 1

    如何在模板化类中为``boost :: array_view''创建typedef

  2. 2

    如何在模板化类的“命名空间”中创建非模板化typedef?

  3. 3

    如何在C#中创建“指向函数指针的typedef”?

  4. 4

    如何为类级别的typedef函数创建定义

  5. 5

    用于地图,集合等的array_view替代方案

  6. 6

    如何引用模板类中定义的typedef

  7. 7

    如何转发声明要使用typedef创建的类型?

  8. 8

    类模板中的Typedef指针

  9. 9

    如何在C ++中创建模板包装器类

  10. 10

    如何在python中为类动态创建类方法

  11. 11

    类内部的模板化类的Typedef

  12. 12

    类内的模板化类的Typedef

  13. 13

    如何从不透明的指针typedef中创建一个shared_ptr?(或:如何“解包” typedef?)

  14. 14

    模板化类中的typedef导致C ++错误

  15. 15

    如何在必须返回类模板的函数指针上使用C ++中的typedef?

  16. 16

    如何在Kotlin中创建View类对象?什么是AttributeSet?如何为视图创建它?

  17. 17

    Typedef 在模板化类中使用模板化嵌套类

  18. 18

    如何在捕获lambda参数时使用模板化的typedef?

  19. 19

    如何在Ruby中为String类创建新函数?

  20. 20

    如何在Perl中为Point类创建随机函数?

  21. 21

    模板类的typedef

  22. 22

    typedef模板类实例

  23. 23

    无法将 std::vector<bool> 传递给 winrt::array_view

  24. 24

    创建一个typedef从外部作用域重新声明模板参数的负面影响?

  25. 25

    * .cpp文件中的Typedef模板类指针

  26. 26

    如何在LinearLayout类中为Android View充气?

  27. 27

    如何在LinearLayout类中为Android View充气?

  28. 28

    如何在不创建类的情况下在Fragment中设置View来扩展Fragment?

  29. 29

    如何在Boost序列化中创建序列化接口?

热门标签

归档