在c++中使用 auto和decltype的例子

首先,举一个不使用auto和delctype的例子。

template<typename I, typename J, typename K>
K add(I i, J j)
{
  return i + j;
}

使用auto和delctype的template模板:

template<typename I, typename J>
auto add(I i, J j)->decltype(i + j)
{
    return i + j;    
}

现在看一下完整的例子, 当变量一个是int型 另一个是double型的时候 求add函数的结果:

#include <iostream>

// Creating template
template<typename I, typename J>
auto add(I i, J j) -> decltype(i + j)
{
    return i + j;
}

auto main() -> int
{
    std::cout << "[decltype.cpp]" << std::endl;

    // Consuming the template
    auto d = add<int, double>(2, 2.5);

    // Displaying the preceding variables' type
    std::cout << "result of 2 + 2.5: " << d << std::endl;

    system("pause");
    return 0;
}

 

posted @ 2018-04-11 13:11  MsPark  阅读(534)  评论(0编辑  收藏  举报