【C++编程】尾置返回类型
尾置返回类型
实例1
#include <iostream>
#include <vector>
#include <string>
using namespace std;
template <typename It>
auto fcn(It beg, It end) -> decltype(*beg)
{
return *beg;
}
int main()
{
vector<int> vi = {1,2,3,4,5};
int &i = fcn(vi.begin(), vi.end());
}
实例2
#include <iostream>
#include <vector>
#include <string>
using namespace std;
template <typename It>
auto fcn(It beg, It end) -> decltype(*beg + 0)
{
return *beg;
}
int main()
{
vector<int> vi = {1,2,3,4,5};
int &&i = fcn(vi.begin(), vi.end());
}
说明: *beg + 0 是右值,fcn的返回类型被推断为元素类型的常量引用。