`

traits

阅读更多
#include<iostream>
using namespace std;


template<typename T>
class AccumulationTraits{
public:
    typedef T AccT;
    static const AccT zero=0;
};

template<>
class AccumulationTraits<char>{
public:
    typedef int AccT;//防止char计算时越界
    static const AccT zero=0;
};

template<typename T>
inline typename AccumulationTraits<T>::AccT accum(const T* beg,const T* end)
{
    typedef typename AccumulationTraits<T>::AccT AccT;
    //AccT total = T();
    AccT total = AccumulationTraits<T>::zero;//防止没有T()==0
    while(beg!=end){
        total+=*beg;
        ++beg;
    }
    return total;
}

int main()
{
    int c = int();
    cout << "test int()=" << c << endl;
    int num[] = {1,2,3,4,5};
    cout << accum(&num[0],&num[5])/5 << endl;

    char name[]="templates";
    //char的范围是-128~127
    cout << accum(&name[0],&name[5])/5<<endl;
}

test int()=0
3
109
分享到:
评论

相关推荐

    c++_traits.pdf

    ### C++ Traits:类型属性封装与偏特化 在C++中,`Traits`类是一种非常重要的设计模式,它主要用于封装类型的各种属性。通过这种方式,我们可以更方便地处理不同类型的数据结构,实现代码的复用,并优化性能。本文...

    traits-6.1.0-cp36-cp36m-win_amd64.rar

    包含内容:traits-6.1.0-cp36-cp36m-win_amd64.whl 安装tvtk需要 VTK-7.1.1-cp36-cp36m-win_amd64.whl numpy-1.12.1+mkl-cp36-cp36m-win_amd64.whl traits-4.6.0-cp36-cp36m-win_amd64.whl mayavi-4.5.0+vtk71-cp36...

    Laravel开发-laravel-model-traits

    在Laravel框架中,Model Traits是一种强大的代码复用机制,它们允许你在多个模型类之间共享特定的行为或属性。本项目“Laravel开发-laravel-model-traits”聚焦于为Laravel 5模型提供一系列预定义的Traits,以简化...

    C++ STL Template Traits使用代码

    设计一个Measurement计量单位类型,满足如下要求, 1.当为距离单位,当构造米或者千米等不同距离单位的实例时,统一以米为基本单位,实例调用description函数返回单位...注意:代码实现中运用了模板中的traits技术。

    traits-4.6.0-cp36-cp36m-win_amd64.whl

    Python科学计算三维可视化应用中需要安装TVTK库,traits-4.6.0-cp36-cp36m-win_amd64.whl为安装TVTK库所需要的5个库之一,该库为64位的

    traits-4.6.0-cp34-cp34m-win32

    traits-4.6.0-cp34-cp34m-win32

    traits-6.2.0-cp310-cp310-win32

    traits-6.2.0-cp310-cp310-win32

    Python库 | link_traits-1.0.3.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:link_traits-1.0.3.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    traits python win32

    PyQt4--&gt;traits--&gt;VTK7.1--&gt;mayavi-4.5.0,安装mayavi血泪史,一定要这个,缺一不可

    traits-4.6.0-cp34-cp34m-win_amd64

    traits-4.6.0-cp34-cp34m-win_amd64

    traits-6.2.0-pp37-pypy37_pp73-win_amd64

    traits-6.2.0-pp37-pypy37_pp73-win_amd64

    callable_traits, callable类型的现代 C 型特征和泛函.zip

    callable_traits, callable类型的现代 C 型特征和泛函 Boost.CallableTraits CallableTraits是一个C 11头库,用于检查。合成和分解可以调用类型。这里有最新的文档,这里是 。在CallableTraits中,被正式地检查过,...

    Python库 | os-traits-0.5.0.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:os-traits-0.5.0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    traits-5.2.0-cp36-cp36m-win_amd64.whl

    利用Python做可视动画,在安装traits的时候一定要对应版本,否则很容易报错。这个traits5.2.0是可以用的,之后我会上传其他的对应的几个板块。

    traits-4.6.0-cp36-cp36m-win-amd64.whl

    标题中的"traits-4.6.0-cp36-cp36m-win-amd64.whl"是一个Python包的文件名,它包含了特定版本的`traits`库,适用于Python 3.6(cp36)且是针对64位(amd64)Windows系统编译的。在Python生态系统中,`.whl`文件是一...

    traits与迭代器.doc

    traits 与迭代器 traits 技术是 C++ 编程语言中的一种泛型编程技术,允许开发者定义一个通用函数或类模板,可以对不同的数据类型进行操作。traits 技术的主要优点是可以提高代码的可重用性和灵活性。 在给定的...

    PyPI 官网下载 | os-traits-0.13.0.tar.gz

    《PyPI官网下载:深入解析os-traits-0.13.0.tar.gz》 PyPI,全称为Python Package Index,是Python社区广泛使用的软件包仓库,为开发者提供了一个发布和分享自己Python库的平台。在PyPI官网上,我们可以找到各种...

    Laravel开发-eloquent-traits

    Eloquent ORM的一个重要特性是使用Traits来扩展和定制模型的功能。Traits在PHP中是一种代码复用机制,允许我们在多个类之间共享方法。在"Laravel开发-eloquent-traits"的主题中,我们将深入探讨如何利用Traits来增强...

    泛型指標(Iterators)與Traits 技術.zip

    在“爠宆巜昗乮Iterators乯鋙Traits 媄弍”这个文件中,可能包含了侯捷对迭代器和Traits技术的深入讲解,涵盖了以下内容: 1. 迭代器的基本概念:定义、分类及其各自特点。 2. 如何使用迭代器遍历容器,包括递增、...

Global site tag (gtag.js) - Google Analytics