This is an archive of the discontinued LLVM Phabricator instance.

Use C++14-style return type deduction in clang.
ClosedPublic

Authored by jlebar on Feb 11 2020, 10:34 AM.

Details

Summary

Simplifies the C++11-style "-> decltype(...)" return-type deduction.

Note that you have to be careful about whether the function return type
is auto or decltype(auto). The difference is that bare auto
strips const and reference, just like lambda return type deduction. In
some cases that's what we want (or more likely, we know that the return
type is a value type), but whenever we're wrapping a templated function
which might return a reference, we need to be sure that the return type
is decltype(auto).

No functional change.

Diff Detail

Event Timeline

jlebar created this revision.Feb 11 2020, 10:34 AM
Herald added a reviewer: shafik. · View Herald Transcript
Herald added a project: Restricted Project. · View Herald Transcript
This revision is now accepted and ready to land.Feb 11 2020, 11:24 AM
MaskRay accepted this revision.Feb 11 2020, 11:36 AM
This revision was automatically updated to reflect the committed changes.