C ++:数组的功能模板专门化

平方

我试图编写一个函数来处理一系列数据。

//For stl containers
template<typename T>
void foo(T x){
    for(auto iter=x.begin();iter!=x.end();++iter)
        do_something(*iter);
}

此功能旨在操作STL容器,可以。但是我想要C数组的另一个版本。所以我尝试了这个:

//For C-array
template<typename T,size_t N>
void foo(T x[N]){
    //blabla
}
//Error

我已经阅读了“数组的部分模板专门化”(以及其他几篇相关的文章),但是它是针对类模板的。而且我也知道,当您专门设计功能模板时,实际上是在重载它。无论如何,该帖子中的解决方案无法在此处实现。

我可以采取任何(或可能没有)方式吗?:-) Thx容忍我的英语不佳,thx为您提供帮助。

贾罗德42

您错过了对数组的引用:

template<typename T, size_t N>
void foo(T (&x)[N]){
    //blabla
}

顺便说一句,在您的情况下,您可以const在一般情况下简单地使用()引用:

template<typename T>
void foo(T& x){
    using std::begin;
    using std::end;

    for (auto iter = begin(x); iter != end(x); ++iter)
        do_something(*iter);
}

甚至更好:

template<typename T>
void foo(T& x){
    for (auto&& e : x)
        do_something(x);
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C ++错误C2893:无法专门化功能模板

来自分类Dev

错误C2893:无法专门化功能模板VC ++ 2012

来自分类Dev

错误C2893:无法使用CTPL专门化功能模板

来自分类Dev

C ++-部分专门化模板类成员函数

来自分类Dev

C ++-专门化类模板的成员函数

来自分类Dev

(Objective-)C ++模板专门化上的重复符号

来自分类Dev

在C ++中有多个基本模板的情况下,模板专门化

来自分类Dev

C ++在可变参数模板内部专门化可变参数模板

来自分类Dev

C ++模板专业化-仅专门化某些方法,其余使用默认的impl

来自分类Dev

如何使C ++模板化函数与返回类型无关,以便将来进行专门化

来自分类Dev

C ++模板-专门功能

来自分类Dev

C++ - 在具有非类型模板参数的模板化类上专门化函数模板

来自分类Dev

如何基于类型相关的类型专门化C ++模板类函数?

来自分类Dev

C ++使用std :: pair模板专门化定义树节点数据结构

来自分类Dev

如何专门化C ++中的可变参数模板函数?

来自分类Dev

c ++未能专门化函数模板'iterator_traits'

来自分类Dev

模板指向功能的部分模板专门化

来自分类Dev

在C ++ 11中,我如何专门化基于返回类型接受函数对象的函数模板?

来自分类Dev

在C ++的类模板中是否可以有一个公共的,未专门化的静态成员?

来自分类Dev

名称空间中的功能模板专门化

来自分类Dev

如何测试是否存在模板功能专门化

来自分类Dev

明确专门化功能模板的正确方法

来自分类Dev

无法在线程中专门化功能模板

来自分类Dev

模板专门化和实例化

来自分类Dev

如何使用type_traits或模板功能专门化来巩固模板方法

来自分类Dev

如何使用type_traits或模板功能专门化来巩固模板方法

来自分类Dev

专门化此功能模板时,不能忽略模板参数

来自分类Dev

如何专门化模板子类?

来自分类Dev

模板专门化中的double template <>

Related 相关文章

  1. 1

    C ++错误C2893:无法专门化功能模板

  2. 2

    错误C2893:无法专门化功能模板VC ++ 2012

  3. 3

    错误C2893:无法使用CTPL专门化功能模板

  4. 4

    C ++-部分专门化模板类成员函数

  5. 5

    C ++-专门化类模板的成员函数

  6. 6

    (Objective-)C ++模板专门化上的重复符号

  7. 7

    在C ++中有多个基本模板的情况下,模板专门化

  8. 8

    C ++在可变参数模板内部专门化可变参数模板

  9. 9

    C ++模板专业化-仅专门化某些方法,其余使用默认的impl

  10. 10

    如何使C ++模板化函数与返回类型无关,以便将来进行专门化

  11. 11

    C ++模板-专门功能

  12. 12

    C++ - 在具有非类型模板参数的模板化类上专门化函数模板

  13. 13

    如何基于类型相关的类型专门化C ++模板类函数?

  14. 14

    C ++使用std :: pair模板专门化定义树节点数据结构

  15. 15

    如何专门化C ++中的可变参数模板函数?

  16. 16

    c ++未能专门化函数模板'iterator_traits'

  17. 17

    模板指向功能的部分模板专门化

  18. 18

    在C ++ 11中,我如何专门化基于返回类型接受函数对象的函数模板?

  19. 19

    在C ++的类模板中是否可以有一个公共的,未专门化的静态成员?

  20. 20

    名称空间中的功能模板专门化

  21. 21

    如何测试是否存在模板功能专门化

  22. 22

    明确专门化功能模板的正确方法

  23. 23

    无法在线程中专门化功能模板

  24. 24

    模板专门化和实例化

  25. 25

    如何使用type_traits或模板功能专门化来巩固模板方法

  26. 26

    如何使用type_traits或模板功能专门化来巩固模板方法

  27. 27

    专门化此功能模板时,不能忽略模板参数

  28. 28

    如何专门化模板子类?

  29. 29

    模板专门化中的double template <>

热门标签

归档