| .. title:: clang-tidy - fuchsia-trailing-return |
| |
| fuchsia-trailing-return |
| ======================= |
| |
| Functions that have trailing returns are disallowed, except for those using |
| ``decltype`` specifiers and lambda with otherwise unutterable return types. |
| |
| For example: |
| |
| .. code-block:: c++ |
| |
| // No warning |
| int add_one(const int arg) { return arg; } |
| |
| // Warning |
| auto get_add_one() -> int (*)(const int) { |
| return add_one; |
| } |
| |
| Exceptions are made for lambdas and ``decltype`` specifiers: |
| |
| .. code-block:: c++ |
| |
| // No warning |
| auto lambda = [](double x, double y) -> double {return x + y;}; |
| |
| // No warning |
| template <typename T1, typename T2> |
| auto fn(const T1 &lhs, const T2 &rhs) -> decltype(lhs + rhs) { |
| return lhs + rhs; |
| } |
| |
| |
| See the features disallowed in Fuchsia at https://fuchsia.googlesource.com/zircon/+/master/docs/cxx.md |