Talk:Decltype

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


 * template 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)

decltype and declval
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   header (defined as template typename std::add_rvalue_reference::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,  (talk) 10:29, 4 June 2013 (UTC)

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

External links modified
Hello fellow Wikipedians,

I have just modified 2 one 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 ).

Cheers.— InternetArchiveBot  (Report bug) 00:04, 10 December 2016 (UTC)

Misleading first sentence
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)