Decltype (original) (raw)
在C++程序设计语言中,decltype作为操作符,用于获取表达式的数据类型。C++11标准引入decltype,主要是为泛型编程而设计,以解决泛型编程中有些類型由模板参数决定而难以(甚至不可能)表示的问题。 从语义上说,decltype的设计适合於通用库编写者或编程新手。总体上说,对于变量或函数参数作为表达式,由decltype推导出的类型与源码中的定义可精确匹配。而正如sizeof操作符一样,decltype不对操作数求值。
Property | Value |
---|---|
dbo:abstract | In the C++ programming language, decltype is a keyword used to query the type of an expression. Introduced in C++11, its primary intended use is in generic programming, where it is often difficult, or even impossible, to express types that depend on template parameters. As generic programming techniques became increasingly popular throughout the 1990s, the need for a type-deduction mechanism was recognized. Many compiler vendors implemented their own versions of the operator, typically called typeof, and some portable implementations with limited functionality, based on existing language features were developed. In 2002, Bjarne Stroustrup proposed that a standardized version of the operator be added to the C++ language, and suggested the name "decltype", to reflect that the operator would yield the "declared type" of an expression. decltype's semantics were designed to cater to both generic library writers and novice programmers. In general, the deduced type matches the type of the object or function exactly as declared in the source code. Like the sizeof operator, decltype's operand is not evaluated. (en) decltype – operator pozwalający na uzyskanie typu wyrażenia w języku programowania C++. Został on wprowadzony w wersji C++11 standardu C++. Jego głównym przeznaczeniem jest programowanie uogólnione, w którym często trudno, jeśli w ogóle jest to możliwe, określić typy zależne od parametrów szablonu. Wzrost popularności technik programowania uogólnionego następował od lat dziewięćdziesiątych XX wieku. Wówczas zauważona została potrzeba mechanizmu do wyznaczania typu. Wielu producentów kompilatorów wdrożyło własne wersje takiego operatora, zazwyczaj nazywanego typeof oraz opracowało pewne przenośne implementacje o ograniczonej funkcjonalności, w oparciu o istniejące funkcje języka. W 2002 roku Bjarne Stroustrup zaproponował, aby standardową formę takiego operatora dodać do języka C++ i zasugerował nazwę „decltype”, aby odzwierciedlić, że operator zwraca „deklarowany typ” wyrażenia. Semantyka decltype została tak zaprojektowana, aby zaspokoić potrzeby autorów bibliotek z kodem uogólnionym, jak również początkujących programistów. W ogólności, typ określony za pomocą tego operatora zgadza się z typem obiektu lub funkcji zadeklarowanym w kodzie źródłowym. Podobnie jak w przypadku operatora sizeof, operand decltype nie jest wykonywany. (pl) decltype — ключевое слово языка программирования C++, которое появилось в обновлённом стандарте C++11. Наряду с ключевым словом auto оно используется для выведения типов выражений, получаемых в качестве своего аргумента. Ключевое слово decltype нашло широкое распространение при работе с обобщёнными типами данных. Различие между decltype и auto сводится к типу возвращаемого значения: результат использования auto теряет квалификаторы типов const и &, а результат использования decltype сохраняет их для дальнейшей работы. Также в стандарте C++11 ключевое слово decltype можно использовать для объявления типа возвращаемого функцией значения в тех случаях, когда применяется новый способ записи сигнатуры функции (в котором возвращаемое значение следует за списком её параметров). В обновлённом стандарте языка C++14 появилась возможность объявлять переменные со спецификатором типа decltype(auto), который предписывает компилятору выбирать для них тип данных на основе типа инициализатора. (ru) У мові програмування C++ decltype — оператор для отримання типу виразу. Він був введений в поточній версії стандарту, C++11. Головне його призначення у використанні в узагальненому програмуванні, коли часто складно або й неможливо виразити типи, що залежні від параметрів шаблону. Із набуттям популярності узагальненим програмуванням в 1990х, окреслилась потреба в механізмі виведення типів. Багато постачальників компіляторів, базуючись на вже існуючих механізмах мови, втілили власні версії оператора, зазвичай названі typeof, і деякі переносимі версії з обмеженою функціональністю. В 2002, Бьярн Страуструп запропонував додати в С++ стандартизовану версію, і припустив назву «decltype», вона відображала те, що оператор повертає «задекларований тип» виразу. decltype розробили для зручного використання як укладальникам узагальнених бібліотек так і програмістам початківцям. Зазвичай, виведений тип відповідає типу об’єкта або функції точнісінько як той він визначений в сирцевому коді. Подібно до оператора sizeof, операнд decltype не обчислюється. (uk) 在C++程序设计语言中,decltype作为操作符,用于获取表达式的数据类型。C++11标准引入decltype,主要是为泛型编程而设计,以解决泛型编程中有些類型由模板参数决定而难以(甚至不可能)表示的问题。 从语义上说,decltype的设计适合於通用库编写者或编程新手。总体上说,对于变量或函数参数作为表达式,由decltype推导出的类型与源码中的定义可精确匹配。而正如sizeof操作符一样,decltype不对操作数求值。 (zh) |
dbo:wikiPageExternalLink | http://www.stroustrup.com/C++11FAQ.html%23decltype |
dbo:wikiPageID | 24220775 (xsd:integer) |
dbo:wikiPageLength | 17612 (xsd:nonNegativeInteger) |
dbo:wikiPageRevisionID | 1093457581 (xsd:integer) |
dbo:wikiPageWikiLink | dbr:Bjarne_Stroustrup dbr:Reserved_word dbr:C++0x dbr:Generic_programming dbr:Clang dbr:GNU_Compiler_Collection dbr:Andrei_Alexandrescu dbr:Andrew_Koenig_(programmer) dbr:Standard_Template_Library dbr:Subclass_(computer_science) dbr:C++ dbr:C++/CLI dbr:C++11 dbr:Codegear dbr:Data_type dbr:Dr._Dobb's_Journal dbr:International_Organization_for_Standardization dbr:Template_(C++) dbc:C++ dbc:Articles_with_example_C++_code dbr:Edison_Design_Group dbr:Wrapper_function dbr:Template_(programming) dbr:Intel_C++_Compiler dbr:Microsoft dbr:Value_(computer_science) dbr:Visual_C++ dbr:Programming_language dbr:Typedef dbr:Trailing-return-type dbr:C++_Builder dbr:Destructor_(computer_science) dbr:Expression_(programming) |
dbp:wikiPageUsesTemplate | dbt:Good_article dbt:Lowercase_title dbt:Reflist dbt:Short_description |
dct:subject | dbc:C++ dbc:Articles_with_example_C++_code |
gold:hypernym | dbr:Keyword |
rdf:type | dbo:Company |
rdfs:comment | 在C++程序设计语言中,decltype作为操作符,用于获取表达式的数据类型。C++11标准引入decltype,主要是为泛型编程而设计,以解决泛型编程中有些類型由模板参数决定而难以(甚至不可能)表示的问题。 从语义上说,decltype的设计适合於通用库编写者或编程新手。总体上说,对于变量或函数参数作为表达式,由decltype推导出的类型与源码中的定义可精确匹配。而正如sizeof操作符一样,decltype不对操作数求值。 (zh) In the C++ programming language, decltype is a keyword used to query the type of an expression. Introduced in C++11, its primary intended use is in generic programming, where it is often difficult, or even impossible, to express types that depend on template parameters. decltype's semantics were designed to cater to both generic library writers and novice programmers. In general, the deduced type matches the type of the object or function exactly as declared in the source code. Like the sizeof operator, decltype's operand is not evaluated. (en) decltype – operator pozwalający na uzyskanie typu wyrażenia w języku programowania C++. Został on wprowadzony w wersji C++11 standardu C++. Jego głównym przeznaczeniem jest programowanie uogólnione, w którym często trudno, jeśli w ogóle jest to możliwe, określić typy zależne od parametrów szablonu. (pl) decltype — ключевое слово языка программирования C++, которое появилось в обновлённом стандарте C++11. Наряду с ключевым словом auto оно используется для выведения типов выражений, получаемых в качестве своего аргумента. Также в стандарте C++11 ключевое слово decltype можно использовать для объявления типа возвращаемого функцией значения в тех случаях, когда применяется новый способ записи сигнатуры функции (в котором возвращаемое значение следует за списком её параметров). (ru) У мові програмування C++ decltype — оператор для отримання типу виразу. Він був введений в поточній версії стандарту, C++11. Головне його призначення у використанні в узагальненому програмуванні, коли часто складно або й неможливо виразити типи, що залежні від параметрів шаблону. (uk) |
rdfs:label | Decltype (en) Decltype (pl) Decltype (ru) Decltype (uk) Decltype (zh) |
owl:sameAs | freebase:Decltype wikidata:Decltype dbpedia-pl:Decltype dbpedia-ru:Decltype http://si.dbpedia.org/resource/Decltype dbpedia-uk:Decltype dbpedia-zh:Decltype https://global.dbpedia.org/id/2rDXe |
prov:wasDerivedFrom | wikipedia-en:Decltype?oldid=1093457581&ns=0 |
foaf:isPrimaryTopicOf | wikipedia-en:Decltype |
is dbo:wikiPageWikiLink of | dbr:Operator_(computer_programming) dbr:Trailing_return_type dbr:Typeof |
is foaf:primaryTopic of | wikipedia-en:Decltype |