当前位置: 首页 > 知识库问答 >
问题:

使用运算符折叠表达式>>

何麻雀
2023-03-14

考虑以下片段:

#include <iostream>

template <typename... types> void writeall(const types & ... items)
{
    (std :: cout << ... << items);
}

template <typename... types> void readall(types & ... items)
{
    (std :: cin >> ... >> items);
}

int main()
{
    writeall(1, 2, 3, 4);
    std :: cout << std :: endl;

    int a, b, c, d;
    readall(a, b, c, d);
}

在\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\一切工作完美,我得到1234打印出来的屏幕。

readall中,我做了完全相同的操作,希望从std::cin参数包中读取。然而,我明白了

error: expected ')'
(std :: cin >> ... >> items);

我做错了什么?人们会认为事情会完全一样,我只是替换了操作符


共有1个答案

空成天
2023-03-14

正如@T. C.回答的那样,这是叮当声中的错误。已经修好了。有什么似乎是一个错字,使<代码>

 类似资料:
  • 这是我连接元组的二进制运算符: 它在具有两个元组的两个编译器(gcc、clang)上都能完美工作: 但当我尝试在fold表达式中使用它时,如下所示: gcc 7.1.1编译它没有任何错误,与clang 5.0不同,它会产生错误输出: 错误:对函数“operator”的调用在模板定义中不可见,也无法通过依赖于参数的查找找到 返回(args...); 注意:在函数模板专门化的实例化中“multiple

  • 我们将简单浏览一下运算符和它们的用法: 技巧 你可以交互地使用解释器来计算例子中给出的表达式。例如,为了测试表达式2 + 3,使用交互式的带提示符的Python解释器: >>> 2 + 3 5 >>> 3 * 5 15 >>> 表5.1 运算符与它们的用法 运算符 名称 说明 例子 + 加 两个对象相加 3 + 5得到8。'a' + 'b'得到'ab'。 - 减 得到负数或是一个数减去另一个数 -

  • 使用表达式 例5.1 使用表达式 #!/usr/bin/python # Filename: expression.py length =5 breadth =2 area = length * breadth print'Area is', area print'Perimeter is', 2* (length + breadth) (源文件:code/expression.py) 输出 $

  • 你所编写的大多数语句(逻辑行)都包含了表达式(Expressions)。一个表达式的简单例子便是 2+3。表达式可以拆分成运算符(Operators)与操作数(Operands)。 运算符(Operators)是进行某些操作,并且可以用诸如 + 等符号或特殊关键词加以表达的功能。运算符需要一些数据来进行操作,这些数据就被称作操作数(Operands)。在上面的例子中 2 和 3 就是操作数。 运算

  •  表达式是运算符和操作数(operand)的集合,或者是常量。  通常用以下格式书写。 表达式;  像这样在表达式的后面加上分号(;)的话,该表达式会被当场求值( = 执行 ),而产生的结果会被丢弃。 例: a=b; //由于=运算符的作用,b变量的值被代入到a变量中 func(); //由于()运算符的作用,func作为函数被调用,函数的返回值被舍弃 1+3; //由于+运算符的作用,1和3被求

  • 常用运算符分类 运算符是用来操作数据的,因此,这些数据也被称为操作数,使用运算符将操作数连接而成的式子称为表达式。表达式具有如下特点: 常量和变量都是表达式 运算符的类型对应表达式的类型 每一个表达式都有自己的值,即表达式都有运算结果。 运算符类型 作用 算术运算符 用于处理四则运算 赋值运算符 用于将表达式的值赋给变量 比较运算符 用于表达式的比较,并返回一个真值或假值 逻辑运算符 用于根据表达