函数调用周围的圆括号
Parenthesis around function call
在下面的代码片段中,如果我排除了对std::istreambuf_iterator
的第二次调用周围的括号,则在最后一行出现编译错误:
.c_str()的左边必须有一个类/结构/联合。
std::ifstream file("file.txt");;
std::string prog(
std::istreambuf_iterator<char>(file),
(std::istreambuf_iterator<char>()));
prog.c_str();
这些括号实际上是干什么的?在我看来,他们应该能够被排除在外。
如果没有括号,这将是最麻烦的解析的情况。它不会声明一个变量,而是一个返回std::string
的函数,称为prog
,并将这两种类型作为参数。如果您稍后尝试调用它,您将得到一个链接器错误。
相关文章:
- C++decltype和圆括号-为什么
- 变量周围的堆栈'...'已损坏
- 运行时检查失败 #2 变量"A"周围的堆栈已损坏
- OpenCV代码不会检测人脸的数量,也不会在脸周围放一个圆圈
- 为什么我的 VS 代码调试器在我的C++代码周围弹跳?
- 运行时检查失败 #2 - 变量"e"周围的堆栈已损坏。发生
- 为什么标准首选圆括号初始化为"make_<something>"?
- 变量周围的堆栈'sortArray'已损坏
- 需要帮助编写 for 循环以在字符串周围创建边框
- 使函数参数默认为周围范围
- 变量周围的堆栈'folderPath'已损坏
- 线程构造函数周围的可变参数模板包装器无法编译
- 如何检查二维数组上的周围数字?
- 运行时检查失败 #2 - 变量周围的堆栈'...'已损坏
- 如何在屏幕周围生成随机像素
- 访问周围类中迭代器的私有值
- 运行时检查失败 #2 - 变量"l1"周围的堆栈已损坏
- C++:此代码可以编译,但引发运行时检查失败 #2 - 围绕变量周围的堆栈'num'已损坏。发生
- C 包装器C++库周围没有不必要的头文件
- 函数调用周围的圆括号