| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 681 人关注过本帖
标题:[求助]用Dev-Cpp编译时出现的警告问题
只看楼主 加入收藏
TheEleven
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-11-5
收藏
 问题点数:0 回复次数:4 
[求助]用Dev-Cpp编译时出现的警告问题
我写的一个小程序里面,发现只要是写了如下的代码:
vector<Student_info> students, fails;

......

fails = extract_fails(students);


用Dev-Cpp(Gcc3.4.5)编译时,就会提示如下警告(注,是加-Wall参数才会出现的警告,不加则没有):
C:\Dev-Cpp\include\c++\3.4.5\bits\stl_vector.h In member function `std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(const std::vector<_Tp, _Alloc>&) [with _Tp = Student_info, _Alloc = std::allocator<Student_info>]':

715 C:\Dev-Cpp\include\c++\3.4.5\bits\stl_vector.h [Warning] '__result' might be used uninitialized in this function

82 C:\Dev-Cpp\include\c++\3.4.5\bits\stl_uninitialized.h [Warning] '__cur' might be used uninitialized in this function

82 C:\Dev-Cpp\include\c++\3.4.5\bits\stl_uninitialized.h [Warning] '__cur' might be used uninitialized in this function

一旦我将代码改写成如下的形式:
vector<Student_info> students;
......
vector<Student_info> fails(extract_fails(students));

就不会警告了,这个是什么原因造成的呢?

搜索更多相关主题的帖子: 编译 警告 
2007-11-06 12:10
TheEleven
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-11-5
收藏
得分:0 

为了验证,写了个最简单的小程序,结果发现内置类型似乎就可以这样复制元素,而库类型就不成了:

[CODE]
#include <iostream>
#include <string>
#include <vector>

using std::cout; using std::endl;
using std::vector; using std::string;

int main()
{
vector<int> v1, v2;
v1.push_back(123);
v2 = v1;
cout << v1[0] << endl << v2[0] << endl;

vector<string> s1, s2;
s1.push_back("test");
s2 = s1;
cout << s1[0] << endl << s2[0] << endl;
system("pause");
return 0;
}
[/CODE]

把s1、s2那部分注释掉,编译时就不会警告了

螃蟹由于不会爬树,只好在树下等柿子MM自己下来。秋天来了,烂透了的柿子掉下来,砸死了螃蟹~~~Aho
2007-11-06 12:11
TheEleven
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-11-5
收藏
得分:0 
我看书上都有那种“v1 = v2”,即“用容器v2的内容的副本取代v1容器的内容”

所以这么写了,结果就报警告

螃蟹由于不会爬树,只好在树下等柿子MM自己下来。秋天来了,烂透了的柿子掉下来,砸死了螃蟹~~~Aho
2007-11-06 12:12
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
我怎么没警告?

Fight  to win  or  die...
2007-11-06 14:30
TheEleven
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-11-5
收藏
得分:0 
ls是用的gcc 3。4。5编译的吗?

或者是编译时木有加参数-Wall吧?

螃蟹由于不会爬树,只好在树下等柿子MM自己下来。秋天来了,烂透了的柿子掉下来,砸死了螃蟹~~~Aho
2007-11-06 16:27
快速回复:[求助]用Dev-Cpp编译时出现的警告问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041801 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved