【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的返回类型被推断为元素类型的常量引用。

posted @ 2021-06-22 22:26  苏格拉底的落泪  阅读(78)  评论(0编辑  收藏  举报