2014-10-20 5 views
8

In seinen talk at cppcon (~ 13 Minuten in), Andrew Sutton erwähnt, dass Sie "bald" in der Lage sein zu schreibenAuto in der Liste Funktionsparameter implizierte Template-Argument

auto func(auto a, auto b) { ... } 

die

verstanden werden
template <typename T, typename U> auto func(T a, U b) { ... } 

genauso wie für generische Lambdas in C++ 14 eingeführt wurde.

  1. Wie lautet der Name für diese Funktion?

  2. Ist dies ein Teil von Concepts Lite oder wurde es separat vorgeschlagen?

  3. Dies hat es offensichtlich nicht in C++ 14 geschafft, wenn es tatsächlich vorgeschlagen wurde; Wenn jemand weiß, was waren die Einwände dagegen?

+2

Sie können dies in GCC als Erweiterung schreiben. ['Live example'] (http://coliru.stacked-crooked.com/a/38bef5ed2f92c361) –

Antwort

6
  1. Verkürzte Funktionsvorlagen
  2. Ja, es ist Teil der Konzepte ist Lite
  3. Es ist in den Konzepten TS, die in der Nähe sind bereit für C++ 14 nirgends war.

Lesen Sie alles darüber in the latest draft of the concepts TS.

+1

Danke für die schnelle Antwort. Obwohl ich sagen muss, der Name "generische Funktionen" scheint ein bisschen, nun, generische ... –

+0

@TristanBrindle Es * verwendet * zu "generische Funktionen", durch die Erweiterung des Namens "generische lambdas." Ich habe vergessen, dass die neueren Versionen des TS stattdessen den Namen "abgekürzte Funktion" verwenden. Wahrscheinlich genau aus dem Grund, den Sie angeben. – Casey

+0

@TristanBrindle ... und jetzt ist es bekannt als [Vorlage für abgekürzte Funktionen] (https://github.com/cplusplus/concepts-ts/commit/421e2780a4887ee2920484894f59a1a851ac7ddb). – Casey