lemene
隨筆 - 51, 文章 - 1, 評論 - 41, 引用 - 0
數據加載中……
vc2005無法編譯通過《從集合中枚舉子集》中的代碼
前些日子整理代碼,發現《從集合中枚舉子集》中的代碼無法在
VC2005
上編譯通過。當時只在
DevC++
上編譯,沒有考慮
VC2005
與
gcc
的區別。仔細查找,問題出在
CSetIterAgent
的構造函數的參數上。下面是一段簡化的代碼,會出現同樣的問題。
#include
<
vector
>
template
<
typename
Type
>
class CTest
{
public
:
enum Data
{
A,
B
};
public
:
CTest(
const
std::vector
<
Type
>&
set
, CTest::Data data
=
CTest::A){};
~CTest(){};
};
int
main(void)
{
std::vector
<
int
>
set
;
CTest
<
int
>
test(
set
);
CTest
<
int
>
::Data a
=
CTest
<
int
>
::A;
return
0
;
}
用vc2005編譯出現的錯誤如下
1
>
d:
\
work
\
c
++\
vc
\
qt
\
qt
\
main.cpp(
12
) : warning C4346:
'
CTest<Type>::Data' : dependent name is not a type
1
>
prefix
with
'
typename' to indicate a type
1
>
d:
\
work
\
c
++\
vc
\
qt
\
qt
\
main.cpp(
14
) : see reference
to
class template instantiation
'
CTest<Type>' being compiled
1
>
d:
\
work
\
c
++\
vc
\
qt
\
qt
\
main.cpp(
12
) :
error
C2226: syntax
error
: unexpected type
'
std::vector<Type>'
1
>
d:
\
work
\
c
++\
vc
\
qt
\
qt
\
main.cpp(
12
) :
error
C2334: unexpected token(s) preceding
'
{'; skipping apparent function body
1
>
d:
\
work
\
c
++\
vc
\
qt
\
qt
\
main.cpp(
12
) : fatal
error
C1903: unable
to
recover from previous
error
(s); stopping compilation
1
>
d:
\
work
\
c
++\
vc
\
qt
\
qt
\
main.cpp(
19
) : see reference
to
class template instantiation
'
CTest<Type>' being compiled
1
>
with
1
>
[
1
>
Type
=
int
1
>
]
但在gcc下可以通過。如果把代碼
CTest(
const
std::vector
<
Type
>&
set
, CTest::Data data
=
CTest::A){};
改為
CTest(
const
std::vector
<
Type
>&
set
, CTest
<
Type
>
::Data data
=
CTest
<
Type
>
::A){};
問題同樣。如果改成下面形式
CTest(
const
std::vector
<
Type
>&
set
){};
則vc2005和gcc都可以通過。
有一句忘了出處的名言:“我知道萬有引力是怎么工作的,但我不知道它為什么這樣工作”。現在我也知道怎樣寫會有問題,但我不知道為什么會有這樣的問題。希望能和大家多多交流,我的郵箱
lemene@sina.com
。
posted on 2007-11-09 16:54
lemene
閱讀(365)
評論(0)
編輯
收藏
引用
只有注冊用戶
登錄
后才能發表評論。
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
Powered by:
C++博客
Copyright © lemene
導航
C++博客
首頁
新隨筆
聯系
聚合
管理
<
2014年12月
>
日
一
二
三
四
五
六
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
常用鏈接
我的隨筆
我的評論
我參與的隨筆
留言簿
(4)
給我留言
查看公開留言
查看私人留言
隨筆檔案
2017年12月 (1)
2016年10月 (2)
2016年4月 (7)
2016年1月 (1)
2015年12月 (1)
2015年11月 (2)
2015年9月 (1)
2015年8月 (2)
2015年3月 (1)
2015年1月 (1)
2014年12月 (3)
2014年6月 (2)
2014年5月 (2)
2012年8月 (1)
2011年12月 (1)
2011年6月 (1)
2011年1月 (1)
2010年8月 (1)
2009年8月 (1)
2009年5月 (1)
2008年6月 (1)
2008年5月 (1)
2008年3月 (4)
2008年1月 (5)
2007年12月 (1)
2007年11月 (4)
2007年10月 (1)
2007年9月 (1)
文章檔案
2016年4月 (1)
搜索
最新隨筆
1.?
2.?K近鄰算法
3.?title
4.?CPPEXP —— 構造函數拋異常
5.?CPPEXP —— 構造析構函數調用順序
6.?CPPEXP —— char[]和char*的區別
7.?CPPEXP —— 字符串常量
8.?CPPEXP —— 字節序(大小端)
9.?CPPEXP —— 類成員初始化順序
10.?CPPEXP —— 空類的大小
最新評論
1.?re: CPPEXP —— char[]和char*的區別
char[]和char*的區別 mark下
--linda
2.?re: VS中運行控制臺程序,界面不停留[未登錄]
console.readkey();
--Darren
3.?re: 智力題:5個強盜分100個金幣
試一下不登陸可不可以評論
--xxoo
4.?re: VS2010調試斷點不起作用的解決方法[未登錄]
剛都可以不知動了那里,就出現斷點不能調試了。
編譯都是正確的。問題出在那里呢。
--liu
5.?re: 計算24點[未登錄]
評論內容較長,點擊標題查看
--lemene
閱讀排行榜
1.?title(13260)
2.?(11530)
3.?VS2005調試斷點不起作用的解決方法(8122)
4.?智力題:5個強盜分100個金幣(7211)
5.?猜數字的一種解法(5319)
評論排行榜
1.?智力題:5個強盜分100個金幣(10)
2.?VS2005調試斷點不起作用的解決方法(10)
3.?拼圖游戲(6)
4.?猜數字的一種解法(5)
5.?簡易統計程序運行時間的程序(3)
亚洲精品99久久久久中文字幕
|
欧美熟妇另类久久久久久不卡
|
国产AV影片久久久久久
|
久久久久无码专区亚洲av
|
久久AV高潮AV无码AV
|
91精品婷婷国产综合久久
|
久久婷婷人人澡人人爽人人爱
|
99久久精品免费看国产一区二区三区
|
一本伊大人香蕉久久网手机
|
久久人人爽人人爽人人片AV东京热
|
日韩精品无码久久久久久
|
久久香蕉国产线看观看99
|
俺来也俺去啦久久综合网
|
久久人人爽人人爽人人AV东京热
|
91精品日韩人妻无码久久不卡
|
狠狠色丁香久久婷婷综合图片
|
亚洲精品视频久久久
|
国产精品久久久久jk制服
|
久久久噜噜噜久久中文字幕色伊伊
|
久久人妻AV中文字幕
|
观看 国产综合久久久久鬼色 欧美 亚洲 一区二区
|
品成人欧美大片久久国产欧美... 品成人欧美大片久久国产欧美
|
思思久久99热只有频精品66
|
久久精品成人免费网站
|
丰满少妇人妻久久久久久
|
亚洲国产精品狼友中文久久久
|
色综合久久中文色婷婷
|
性做久久久久久久
|
精品久久8x国产免费观看
|
狠狠色丁香久久婷婷综合
|
久久伊人色
|
久久免费99精品国产自在现线
|
久久精品国产网红主播
|
丁香五月网久久综合
|
久久精品国产免费一区
|
久久精品国产亚洲AV麻豆网站
|
久久国产免费直播
|
午夜天堂av天堂久久久
|
99久久夜色精品国产网站
|
77777亚洲午夜久久多喷
|
亚洲精品乱码久久久久久蜜桃不卡
|