¿Cómo interactuará Concepts-Lite con las diferentes plantillas?
Vi la charla de Bjarne Strustrup enYendo nativo 2013 y da el siguiente ejemplo para la próxima característica de conceptos pequeños de C ++.
void sort(Container& c); // terse notation
// Expands to
template <Container __Cont>
void sort(__Cont& c); // shorthand notation
// Expands to
template <typename __Cont>
requires Container<__Cont>()
void sort(__Cont & c);
Mi pregunta es ¿cómo funcionará esto con las plantillas variad?
Digamos que quiero definir un variadicmaximum
función utilizando unComparable
concepto. ¿Se aceptará la siguiente sintaxis?
auto maximum(Comparable a)
{
return a;
}
auto maximum(Comparable c, Comparable... rest)
{
return std::max(a, maximum(rest...));
}
Si es así lo haráComparable...
significa que todos los elementos en el paquete de parámetros son del mismo tipo o simplemente que son todosComparable
tipos para que el paquete pueda incluir tantoint
ystring
? (que son comparables pero no entre sí)
Mentes curiosas quieren saber.