来自isocpp C++ 14常见问题解答decltype(auto):
注意:decltype(auto)主要用于推导转发函数和类似包装器的返回类型,如上所示,您希望类型完全"跟踪"您正在调用的某个表达式.但是,除此之外,decltype(auto)并不是一个广泛使用的功能.特别是,尽管它可以用于声明局部变量,但这样做可能只是一个反模式,因为局部变量的引用不应该依赖于初始化表达式.此外,它对您编写return语句的方式很敏感.这两个函数具有不同的返回类型.
look_up_a_string_1返回一段string时间look_up_a_string_2返回一个string&.
decltype(auto) look_up_a_string_1() { auto str = lookup1(); return str; }
decltype(auto) look_up_a_string_2() { auto str = lookup1(); return(str); }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
547 次 |
| 最近记录: |