调用构造与函数原型混淆
Calling construct confused with function prototype
我在下面的method1
遇到问题。它在我声明(和构造)vals
的行中给出警告prototyped function not called (was a variable definition intended?)
。当下面的复制调用未注释时,我收到错误 C2228 ( left of '.begin' must have class/struct/union
)。
谷歌搜索为调用默认构造函数(即 - 删除括号)的情况提供了解决方案,但我没有使用默认构造函数,也无法弄清楚为什么这不会编译。请注意,method2
编译良好。
static void method1(char const* filename) {
vector<double> vals(istream_iterator<double>(ifstream(filename)), istream_iterator<double>());
//copy(vals.begin(), vals.end(), ostream_iterator<double>(cout, ","));
}
static void method2(char const* filename) {
vector<double> vals;
vals = vector<double>(istream_iterator<double>(ifstream(filename)), istream_iterator<double>());
copy(vals.begin(), vals.end(), ostream_iterator<double>(cout, ","));
}
我的问题是为什么以及任何人都可以指出为什么编译器将此变量声明与函数原型混淆的好信息(我已经编写了大量代码,在我看来,完全相同的语法并且以前从未遇到过这个问题)?谢谢!
我正在使用Visual Studio 2008。
这是C++中的怪癖之一,只有在被它咬伤后你才知道。
这是C++中最令人烦恼的解析。
相关文章:
- 函数向量_指针有不同的原型,我可以构建一个吗
- 具有enable_if外部类原型的模板类构造函数定义
- 函数如何通知用户它基于函数原型抛出异常?
- 在函数中拥有函数原型的目的是什么?
- 什么..(省略号)作为函数原型中唯一的函数参数,C++?
- 是否可以使用 libclang python 解析 cpp 文件中没有标头的函数原型
- 有没有办法在C++编译时更改函数原型?
- 省略函数原型中的返回类型
- 如何使用 "using" 关键字定义函数原型/签名
- 未定义原型函数?
- SFINAE :删除具有相同原型的函数
- 函数原型未初始化的局部变量
- 如何创建函数原型命名空间
- 如何使用这个原型函数char*encrypt(char*pEncryptedText,const char*pText)
- C++:警告:C4930:未调用原型函数(是否为变量定义?)
- 编写原型函数(c++)
- 我有在c++编程中创建和执行原型函数的麻烦
- 需要为原型函数创建一个单独的cpp文件
- 用Emacs从.h中自动插入原型函数
- 如何修复错误 C4930:"AMyStaticMeshActor a(void)":未调用原型函数(是否打算使用变量定义?