Jump to content

英文维基 | 中文维基 | 日文维基 | 草榴社区

Talk:Decltype

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia
Good articleDecltype has been listed as one of the Engineering and technology good articles under the good article criteria. If you can improve it further, please do so. If it no longer meets these criteria, you can reassess it.
Article milestones
DateProcessResult
November 9, 2009Good article nomineeListed
December 4, 2023Good article reassessmentKept
Did You Know
A fact from this article appeared on Wikipedia's Main Page in the "Did you know?" column on September 9, 2009.
The text of the entry was: Did you know ... that decltype can be used to "clean up function syntax mess" in C++ programming?
Current status: Good article

decltype and accidentally returning references to locals

[edit]

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)[reply]

decltype and declval

[edit]

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)[reply]

That's because there is no such thing. — Preceding unsigned comment added by 192.35.35.35 (talk) 17:01, 31 May 2013 (UTC)[reply]
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)[reply]

Differences of decltype and auto, and decltype(auto)

[edit]

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)[reply]

[edit]

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:

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)[reply]

Misleading first sentence

[edit]

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)[reply]