相关疑难解决方法(0)

Concepts-Lite如何与可变参数模板交互?

我观看了Bjarne Strustrup在Going Native 2013中的演讲,他给出了以下关于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);
Run Code Online (Sandbox Code Playgroud)

我的问题是如何使用可变参数模板?

假设我想maximum使用Comparable概念定义可变参数函数.是否接受以下语法?

auto maximum(Comparable a)
{
     return a;
}

auto maximum(Comparable c, Comparable... rest)
{        
    return std::max(a, maximum(rest...));
}
Run Code Online (Sandbox Code Playgroud)

如果是这样Comparable...意味着参数包中的所有元素都是相同的类型,或者只是它们都是Comparable类型,以便包可以包含intstring?(两者相当,但彼此不相同)

好奇的人想知道.

c++ variadic-templates c++-concepts

11
推荐指数
2
解决办法
1637
查看次数

标签 统计

c++ ×1

c++-concepts ×1

variadic-templates ×1