第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

C++ lambda返回類型

C++ lambda返回類型

C++
慕姐3585284 2016-10-23 02:33:02
在最新版的《C++ Primer》中有這么一句話:若lambda的函數(shù)體包含單一return語(yǔ)句之外的內(nèi)容,且未指定返回類型,則返回void。然后我做了如下測(cè)試:#include?<iostream> #include?<algorithm> #include?<vector> using?namespace?std; int?main(void)?{ ????vector<int>?vi{?1,?-2,?3,?-4,?5,?-6?}; ????/*lambda表達(dá)式返回void?*/ ????/*標(biāo)準(zhǔn)寫(xiě)法:[](int?i)?->?int?{? ????????????????????????????????????if(i?<?0)?return?-i;? ????????????????????????????????????else?return?i;?}?*/ ????transform(vi.begin(),?vi.end(),?vi.begin(),?[](int?i)?{ ????????????????????????????????????????????????????if?(i?<?0)?return?-i; ????????????????????????????????????????????????????else?return?i;?}); ????for?(int?i?:?vi) ????????cout?<<?i?<<?"?"; ????cout?<<?endl; ????system("pause"); ????return?0; }可不管是在Dev-C++中還是在Visual Studio中,它都能正確編譯并且執(zhí)行。如果lambda在這里返回void,就應(yīng)該會(huì)編譯錯(cuò)誤才是???這是為什么呢?然后我在Visual Studio上又添加了這樣的一段代碼:auto?f?=?[](int?i)?{ ????????????????????if?(i?<?0)?return?-i; ????????????????????else?return?i;?};在visual assistX的幫助下,鼠標(biāo)移動(dòng)到f,它顯示的返回類型也是int。《C++ Primer》寫(xiě)錯(cuò)的可能性不大,比較可能的是編譯器的問(wèn)題。難道是編譯器都不完全遵循C++標(biāo)準(zhǔn)嗎?或者是C++14有什么新規(guī)定嗎?為防止翻譯的誤差,我也特地找了原版來(lái)看,也是如此的:Lambda with function bodies that contain anything other than a single return statement that do not specify a return type return void.??? via 《C++ Primer》 5th Edition, Page 389.However, if we write the seemingly equivalent program using an if statement, our code won't compile:????//error: can't deduce the return type for the lambda.????transform(vi.begin(), vi.end(), vi.begin(), [](int i) { if(i < 0) return -i; else return i; } );via 《C++ Primer》 5th Edition, Page 396.
查看完整描述

4 回答

?
擁小山

TA貢獻(xiàn)3條經(jīng)驗(yàn) 獲得超0個(gè)贊

我的primer怎么沒(méi)有l(wèi)ambda介紹?不包含c11新增的?

查看完整回答
反對(duì) 回復(fù) 2016-10-23
  • 慕姐3585284
    慕姐3585284
    這。。??赡苁强绰┝税伞?lambda表達(dá)式并不是一個(gè)新鮮的功能。
  • 慕姐3585284
    慕姐3585284
    對(duì)了,《C++ Primer》和《C++ Primer Plus》是不同的書(shū)。 我看的是第一本,對(duì)第二本的內(nèi)容不清楚,莫混淆了。
  • 擁小山
    擁小山
    Plus內(nèi)容有點(diǎn)多,,,沒(méi)敢看哈哈
點(diǎn)擊展開(kāi)后面1
?
擁小山

TA貢獻(xiàn)3條經(jīng)驗(yàn) 獲得超0個(gè)贊

return type can't deduce 是因?yàn)橛袃蓚€(gè)return;我這樣理解有錯(cuò)嗎?

查看完整回答
反對(duì) 回復(fù) 2016-10-23
  • 慕姐3585284
    慕姐3585284
    嗯,有點(diǎn)問(wèn)題。 我知道問(wèn)題的所在了,我在后面添加一個(gè)回答。
  • 慕姐3585284
    慕姐3585284
    我寫(xiě)在了給第一個(gè)回答的人的回復(fù)中了,就不另添加一個(gè)回答了。
  • 擁小山
    擁小山
    好的謝謝樓主?。ǎ?/div>
?
擁小山

TA貢獻(xiàn)3條經(jīng)驗(yàn) 獲得超0個(gè)贊

對(duì)于“若lambda的函數(shù)體包含單一return語(yǔ)句之外的內(nèi)容,且未指定返回類型,則返回void?!边@句話我的理解是在return語(yǔ)句之外的內(nèi)容返回類型為空,而不是匿名函數(shù)返回空。

查看完整回答
反對(duì) 回復(fù) 2016-10-23
?
onemoo

TA貢獻(xiàn)883條經(jīng)驗(yàn) 獲得超454個(gè)贊

另外,想搭車問(wèn)問(wèn)題主:你覺(jué)得這次的翻譯質(zhì)量如何?

查看完整回答
反對(duì) 回復(fù) 2016-10-23
  • 笑著哭自己
    笑著哭自己
    就閱讀來(lái)說(shuō),我其實(shí)還是推薦用原版,對(duì)于英語(yǔ)稍差的人來(lái)說(shuō),讀這本書(shū)后,明顯可以感覺(jué)自己的英語(yǔ)閱讀,聽(tīng)力都會(huì)得到提升,剛開(kāi)始讀得確實(shí)很慢,但是到后面的速度并不慢。這本專業(yè)書(shū)的陌生詞匯,就章節(jié)來(lái)說(shuō)并不多。對(duì)于時(shí)間上充足的我們學(xué)生,我認(rèn)為讀原版好。
  • 4 回答
  • 0 關(guān)注
  • 4007 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)