锘??xml version="1.0" encoding="utf-8" standalone="yes"?>色综合久久久久网,狠狠色丁香久久婷婷综,av无码久久久久久不卡网站 http://www.shnenglu.com/izualzhy/category/18368.html鍧氭寔 鐩鎬俊鑷繁zh-cnTue, 13 Dec 2011 14:16:40 GMTTue, 13 Dec 2011 14:16:40 GMT60error: wrong number of template argumentshttp://www.shnenglu.com/izualzhy/archive/2011/12/13/162055.htmlizualzhyizualzhyTue, 13 Dec 2011 13:41:00 GMThttp://www.shnenglu.com/izualzhy/archive/2011/12/13/162055.htmlhttp://www.shnenglu.com/izualzhy/comments/162055.htmlhttp://www.shnenglu.com/izualzhy/archive/2011/12/13/162055.html#Feedback0http://www.shnenglu.com/izualzhy/comments/commentRss/162055.htmlhttp://www.shnenglu.com/izualzhy/services/trackbacks/162055.html紕板埌涓涓猠rror錛歸rong number of template arguments鐨勯敊璇紝涓嶈繃鎴戝啓鐨勫弬鏁頒釜鏁版槸娌℃湁闂鐨勩傜櫨鎬濅笉寰楀叾瑙o紝涓婄綉鎼滀簡涓嬶紝鐪嬪埌榪欓噷鐨勪竴涓緥瀛愶細

http://stackoverflow.com/questions/851584/default-template-class-argument-confuses-g

璺熸垜閬囧埌鐨勯棶棰樹竴鏍鳳紝緲昏瘧浜嗕竴灝忛儴鍒嗭紝浣滀負絎旇錛屽鏋滃摢涓湴鏂圭悊瑙i敊璇涓瀹氭寚鍑恒傝嫳璇ソ鐨勫彲浠ョ洿鎺ョ暐榪囪繖綃囨枃绔犱簡銆?

涓嶅緱涓嶆劅鍙規ā鏉跨紪紼嬮亣鍒扮殑闂鐪熼毦鐞嗚В銆?

鍏堝啓涓緥瀛愮▼搴忥細

template<typename A,typename B>

class Foo {};

struct Bar {

void method( Foo<int,int> const &stuff = Foo<int,int>());

};

int main()

{

return 0;

}

濡傛灉Foo鏄崟妯℃澘鐨勮瘽錛屾病鏈夐棶棰樼殑銆?

緙栬瘧浜嗕笅錛岀湅涓嬭緭鍑猴細

$ g++-4.3 test.cpp

test.cpp:5: error: expected 鈥?鈥?or 鈥?..鈥?before 鈥?gt;鈥?token

test.cpp:5: error: wrong number of template arguments (1, should be 2)

test.cpp:2: error: provided for 鈥榯emplate<class A, class B> class Foo鈥?

test.cpp:5: error: default argument missing for parameter 2 of 鈥榲oid Bar::method(const Foo<int, int>&, int)鈥?

$ g++-4.4 test.cpp

$

鍙互鐪嬪埌g++4.3緙栬瘧閿欒錛実++4.4鍗寸紪璇戠殑榪囥?

鎺ヤ笅鏉ヤ負浜嗛槓榪拌繖涓棶棰橈紝鎴戠粺涓浣跨敤g++4.3鏉ョ紪璇戙?

緙栬瘧鍣ㄨ涓烘垜鎯寵鍐欒繖涔堜竴涓嚱鏁幫細

void Bar::method(const Foo<int, int>&, int)

鍙緙栬瘧鍣ㄧ悊瑙i敊浜嗗彉閲忕被鍨嬶紝鐢╰ypedef鎸囧畾涓涓嬬湅鐪嬶紝淇敼涓婇潰鐨勪緥瀛愶細

struct Bar {

typedef Foo<int,int> FooType;

void method( FooType const &stuff = FooType());

};

緙栬瘧閫氳繃錛?

涓嶈繃鍒板簳鏄負浠涔堝憿錛?

鍏堢湅涓嬭繖涔堜慨鏀硅涓嶈錛?/p>

struct Bar {

void method( Foo<int,int> const &stuff = (Foo<int,int>()));

};

鍔犱簡鎷彿錛屽悓鏍峰彲浠~

涓轟簡璇存竻妤氾紝鍏堢湅涓涓嬩互涓嬬殑浠g爜錛?/p>

struct Bar {

void method(int i = j);//鈥檍鈥?not declared yet

static const int j = 0;

};

榪欐牱緙栬瘧鏄病鏈夐棶棰樼殑錛屽敖綆鏈0鏄庯紝浣嗙紪璇戝櫒鍙互鍒嗘瀽鍑簀鏉ャ?

鑰岀紪璇戝櫒鏄繖涔堢湅寰呮垜浠渶涓婇潰鐨勪唬鐮佺殑錛?/p>

void method ( Foo<int,int> const& stuff = Foo<int // Arg 1 with dflt.

, int>() ); // Arg 2 - syntax error

榪欏氨涓嶉毦鐞嗚В緙栬瘧鍣ㄦ姤鐨勯敊璇簡錛屽鍔犱簡涓瀵規嫭鍙峰彲浠ヤ繚璇佺紪璇戝櫒鐞嗚В姝g‘銆?

鍚屾椂錛孴he following case shows an example where g++ succeeds but Comeau still generates a syntax error:

template<int J, int K>

class Foo { };

struct Bar {

void method ( Foo<0, 0> const & i = ( Foo<j, k> () ) );

static const int j = 0;

static const int k = 0;

};

緇х畫寤朵幾涓涓嬶紝涓轟粈涔堝鍙傛暟鐨勫嚱鏁拌皟鐢ㄦ斁鍦ㄥ悓鏍風殑浣嶇疆涓嶄細鍑洪敊鍛紵姣斿錛?/p>

int foo(int,int,int);

struct Bar {

void method(int i = foo(0,0,0));

};

鍥犱負緙栬瘧鍣ㄦ槸榪欎箞鐞嗚В涓婇潰鐨勪唬鐮佺殑錛?/p>

int foo (int, int, int);

struct Bar {

void method ( int j =

foo (0, 0, 0) ); // Comma's here are inside ( )

};

涓轟粈涔堢紪璇戝櫒鍦ㄨ繖閲岀悊瑙e浜嗗憿錛熷叾瀹炰笉闅劇寽嫻嬶紝C++瑕佹眰鎵鏈夌殑鎷彿蹇呴』閰嶅錛屸?鈥欏氨鎰忓懗鐫鏈変竴涓?鈥欏湪鍚庨潰銆備絾妯℃澘鍙傛暟閲岀殑鈥?lt;鈥欎笉鍚岋紝C++鍏佽瀵光?lt;鈥欓噸杞姐?

The reason for the problem here is that '<' does not need to be matched, since it is overloaded in C++ and so can be the less than operator or the start of a template argument list.

鐪嬩笅榪欎釜渚嬪瓙灝辨槑鐧戒簡錛?/p>

template<int I, int J>

class Foo { };

struct Bar {

template <typename T> struct Y { };

void method ( ::Foo<0,0> const& stuff = Foo<10 , Y < int > = Y<int>() );

struct X {

::Foo<0, 0> operator< (int);

};

static X Foo;

};

緙栬瘧娌℃湁闂錛屽洜涓鴻繖閲屾病鏈変粈涔堥粯璁ゆā鏉垮弬鏁幫紝瀹為檯涓婃槸涓や釜鍙傛暟銆傘傘傘傘傘?

izualzhy 2011-12-13 21:41 鍙戣〃璇勮
]]>
鍏充簬妯℃澘鎴愬憳綾誨瀷寮曞彂鐨勯敊璇?error: expected `;' before &lsquo;iter&rsquo;http://www.shnenglu.com/izualzhy/archive/2011/12/13/162054.htmlizualzhyizualzhyTue, 13 Dec 2011 13:39:00 GMThttp://www.shnenglu.com/izualzhy/archive/2011/12/13/162054.htmlhttp://www.shnenglu.com/izualzhy/comments/162054.htmlhttp://www.shnenglu.com/izualzhy/archive/2011/12/13/162054.html#Feedback0http://www.shnenglu.com/izualzhy/comments/commentRss/162054.htmlhttp://www.shnenglu.com/izualzhy/services/trackbacks/162054.html鍏堢湅涓涓緥瀛愶細

#include <vector>

template<typename T>

class Foo {

};

template<typename T>

void method()

{

std::vector<Foo<T> > vecFoo;

std::vector<Foo<T> >::iterator iter = vecFoo.begin();

}

緙栬瘧鏄氫笉榪囩殑銆?

瑙e喅鍔炴硶錛?

typename std::vector<Foo<T> >::iterator iter = vecFoo.begin();

灝卞彲浠ヤ簡銆?

Effective C++:浜嗚Вtypename鐨勫弻閲嶆剰涔夐噷鍋氫簡瑙i噴銆?

闇瑕佺敤typename鍛婅瘔瑙f瀽鍣ㄨ繖鏄釜綾誨瀷錛屽惁鍒欑紪璇戝櫒浼氬綋鍋氱浉搴旂殑闈欐佸彉閲忔潵澶勭悊銆傛瘮濡?C鏄竴涓ā鏉跨被錛?

C::iterator* x;緙栬瘧鍣ㄤ細鐞嗚В涓烘槸C鐨勯潤鎬佸彉閲忎箻涓妜鈥︹?

izualzhy 2011-12-13 21:39 鍙戣〃璇勮
]]>
久久久这里有精品| 一本久道久久综合狠狠躁AV| 亚洲精品无码久久毛片| 久久婷婷五月综合97色直播| 久久婷婷国产综合精品| 青青草原1769久久免费播放| 7777精品伊人久久久大香线蕉| 伊人久久大香线蕉亚洲| 久久国产免费观看精品| 一本综合久久国产二区| 久久综合中文字幕| 日产精品久久久一区二区| 蜜桃麻豆www久久国产精品| 久久精品国产亚洲精品2020| 欧美色综合久久久久久| 精品免费tv久久久久久久| 国产aⅴ激情无码久久| 午夜精品久久久久成人| 亚洲伊人久久大香线蕉苏妲己| 囯产精品久久久久久久久蜜桃| 久久99精品久久久久久水蜜桃| 亚洲AV无码久久精品蜜桃| 亚洲欧洲精品成人久久曰影片| 欧美777精品久久久久网| 久久精品中文騷妇女内射| 久久精品国产2020| 一级a性色生活片久久无| 久久精品国产精品亚洲人人| 国产成人综合久久综合| 久久国产亚洲精品无码| 久久棈精品久久久久久噜噜| 久久www免费人成看片| 久久天天婷婷五月俺也去| 伊人久久五月天| 久久久久久久97| 狠狠色婷婷久久一区二区| 久久婷婷五月综合97色| 精品国产VA久久久久久久冰 | 久久精品国产久精国产| 99久久99久久| 青青青青久久精品国产h|