# Talk:Decltype

There should be a section here on the problem of decltype causing functions to accidentally return references to temporaries. Example:

template<typename T> auto f(bool b, T t, T u) -> decltype(b ? t : u) {
  return b ? t : u;
}
Here, decltype(b ? t : u) will be T &, and this function will return a dangling reference. Does anyone have a citation for the appropriate critique? 74.125.122.49 (talk) 16:55, 5 January 2012 (UTC)

No mention of declval within article. Nor does there exist a wiki page for same.  — Preceding unsigned comment added by 46.65.52.44 (talk) 19:51, 5 November 2012 (UTC) 

That's because there is no such thing.  — Preceding unsigned comment added by 192.35.35.35 (talk) 17:01, 31 May 2013 (UTC)
Oh, but there is. It resides in the <utility> header (defined as template<typename T> typename std::add_rvalue_reference<T>::type declval() or similar). It seems no one has found the time to cover declval in this article, and it almost certainly doesn't warrant a stand-alone article. Regards, decltype (talk) 10:29, 4 June 2013 (UTC)

It should be mentioned by some examples. And decltype(auto) should be explained. --2A02:2028:2A7:C1B0:C89B:DE41:D2DA:146E (talk) 09:21, 25 August 2014 (UTC)

Hello fellow Wikipedians,
I have just modified 2 external links on Decltype. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:

Added archive https://web.archive.org/web/20110708173703/http://docs.codegear.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devwin32/typespecifierdecltype_xml.html to http://docs.codegear.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devwin32/typespecifierdecltype_xml.html#
Added archive https://web.archive.org/web/20110130065354/http://lists.cs.uiuc.edu:80/pipermail/cfe-dev/2011-January/013013.html to http://lists.cs.uiuc.edu/pipermail/cfe-dev/2011-January/013013.html
When you have finished reviewing my changes, please set the checked parameter below to true or failed to let others know (documentation at {{Sourcecheck}}).
This message was posted before February 2018. After February 2018, "External links modified" talk page sections are no longer generated or monitored by InternetArchiveBot. No special action is required regarding these talk page notices, other than regular verification using the archive tool instructions below. Editors have permission to delete these "External links modified" talk page sections if they want to de-clutter talk pages, but see the RfC before doing mass systematic removals. This message is updated dynamically through the template {{source check}} (last update: 5 June 2024).

If you have discovered URLs which were erroneously considered dead by the bot, you can report them with this tool.
If you found an error with any archives or the URLs themselves, you can fix them with this tool.
Cheers.—InternetArchiveBot (Report bug) 00:04, 10 December 2016 (UTC)

The first sentence is a bit misleading:

In the C++ programming language, decltype is a keyword used to query the type of an expression.
I suggest rephrasing along the lines of "... query the type of a variable declaration or expression, depending on the argument."
Beginners often get burned by the fact that C++ uses one keyword for two different purposes, so introducing the keyword as if it's possible to understand it as a single concept can compound the problem.
Wikweb (talk) 18:36, 14 June 2021 (UTC)