知识库

C++语言开发示例:03. 声明类型

2025-02-01 20:31:54 李腾 1 次阅读

decltype.cpp

#include <iostream>

template <typename T1, typename T2>
void Calculate(T1 a, T2 b);

template <typename T1, typename T2>
auto Add(T1 a, T2 b) -> decltype(a + b);

int main()
{
    int a = 1;
    double b = 1.2;
    Calculate(a, b);

    std::cout << "a + b = " << Add(a, b) << std::endl;
}

template <typename T1, typename T2>
void Calculate(T1 a, T2 b)
{
    typedef decltype(a + b) tpab;

    // decltype
    tpab result1 = a + b;
    std::cout << "a + b = " << result1 << std::endl;

    // auto
    auto result2 = a - b;
    std::cout << "a - b = " << result2 << std::endl;
}

template <typename T1, typename T2>
auto Add(T1 a, T2 b) -> decltype(a + b)
{
    return a + b;
}
转载请注明转自www.hylab.cn,原文地址:C++语言开发示例:03. 声明类型

评论 (0)

登录后发表评论

暂无评论,快来发表第一条评论吧!