在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; }