[C++]现代C++语言核心特性解析 Chapter 5

函数返回类型后置(C++11)

1 使用函数返回类型后置声明函数

返回复杂类型的时候,返回类型后置更有效。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int bar_impl(int x)
{
return x;
}

typedef int(*bar)(int);
bar foo1()
{
return bar_impl;
}

auto foo2()->int(*)(int)
{
return bar_impl;
}

int main() {
auto func = foo2();
func(58);
}

2 推导函数模板返回类型

C++11标准中函数返回类型后置的作用之一是推导函数模板的返回类型,前提是需要用到decltype说明符

1
2
3
4
5
6
7
8
9
template<class T1, class T2>
auto sum1(T1 t1, T2 t2)->decltype(t1 + t2)
{
return t1 + t2;
}

int main() {
auto x1 = sum1(4, 2);
}

[C++]现代C++语言核心特性解析 Chapter 5
https://erlsrnby04.github.io/2024/10/20/C-现代C-语言核心特性解析-Chapter-5/
作者
ErlsrnBy04
发布于
2024年10月20日
许可协议