惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
博客园 - 司徒正美
Last Week in AI
Last Week in AI
博客园 - 聂微东
Jina AI
Jina AI
月光博客
月光博客
爱范儿
爱范儿
美团技术团队
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Hugging Face - Blog
Hugging Face - Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 叶小钗
T
Tailwind CSS Blog
博客园 - 【当耐特】
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Apple Machine Learning Research
Apple Machine Learning Research
有赞技术团队
有赞技术团队
罗磊的独立博客
小众软件
小众软件
雷峰网
雷峰网
IT之家
IT之家
大猫的无限游戏
大猫的无限游戏
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
Visual Studio Blog

博客园 - Rawu

QT 使用(1) 到广外路线图 假期电话值班问题 test from blogex Event Sample -- from Professional C# DB2数据库中提高INSERT性能详解 [zt] Uwyn C++ Coding Standard 成员模板 class template const coding style Symbian OS C++ for Mobile Phones Volume2 -- hand note [zt]DB2编程小结 写个帖子记录一些小问题。 High-performance SQL Using DB2 routines to ease migration [ICNEWCASTLE]Bad day at the office [ICNEWCASTLE]I'll celebrate! the night before last night 's dream find it for a long time .. PB dddw filter Problem's Solution
template base --
Rawu · 2006-06-07 · via 博客园 - Rawu

//basics/max2.cpp
#include <iostream>

using namespace std;

namespace rawu
{
    inline 
int const& max(int const& a ,int const& b)
    
{
        cout
<<" not template"<<endl;
        
return a < b ? b : a;
    }

    
    template
<typename T>
    inline T 
const& max(T const& a, T const& b)
    
{
        cout
<<" template2 "<<endl;
        
return a < b ? b : a;
    }

    
    template
<typename T>
    inline T 
const& max(T const& a, T const& b, T const& c)
    
{
        cout
<<" template3 "<<endl;
        
return max ( max(a,b) , c ) ;
    }

    
    template
<typename T3 ,typename T1 , typename T2>
    inline T3 max(T1 
const& a ,T2 const& b)  //inline T3 const& max(T1 const& a ,T2 const& b) -- The address of a local variable or temporary is used in a return expression.
    {
        cout
<<" diff type template2"<<endl;
        
return a < b ? b : a;
    }

    
    
}




int main(void)
{
    cout
<<rawu::max(7,43,23)<<endl;   //call 2 not template
    cout<<rawu::max<int>(7,43,23)<<endl; // call 2 not template
    cout<<rawu::max<>(7,43)<<endl;      //call 1 template2     
    cout<<rawu::max('s',34.2)<<endl;  //call 1 not template
    cout<<rawu::max<double>('s',34.2)<<endl;  //call diff type template2
}