中文字幕二区_国产精品免费在线观看_黄色网站观看_人人草人人澡_日本真实娇小xxxx

您的位置: 首頁 > 計(jì)算機(jī)技術(shù) > 應(yīng)用程序 > VS 2010 C++的未來:0x 的新特性
Visual Studio 2010特性支持Office 回到列表 VS 2010 Beta 2功能搶先看
 VS 2010 C++的未來:0x 的新特性

作者:microsoft 時(shí)間: 2009-10-30 文檔類型:原創(chuàng) 來自:藍(lán)色理想

第 1 頁 VS 2010 C++的未來:0x 的新特性 [1]
第 2 頁 VS 2010 C++的未來:0x 的新特性 [2]
第 3 頁 VS 2010 C++的未來:0x 的新特性 [3]
第 4 頁 VS 2010 C++的未來:0x 的新特性 [4]

靜態(tài)斷言static_assert

在之前的C++標(biāo)準(zhǔn)C++03中,我們可以使用兩種斷言:

  • 使用預(yù)處理中的條件編譯和#error指令,可以在預(yù)處理階段檢查一些編譯條件
  • 可以使用宏assert來進(jìn)行運(yùn)行時(shí)檢查,以確保程序邏輯的正確性

但使用#error方法是非常煩瑣的,并且不能夠?qū)δ0鍏?shù)進(jìn)行檢查,因?yàn)槟0鍖?shí)例化是在編譯時(shí)進(jìn)行,而#error方法是在預(yù)處理階段進(jìn)行的。而 assert宏是在運(yùn)行時(shí)進(jìn)行檢查。不難發(fā)現(xiàn),我們?nèi)鄙倭艘粯訓(xùn)|西,那就是可用于在編譯時(shí)檢查的工具。于是,靜態(tài)斷言應(yīng)運(yùn)而生。

在新的C++標(biāo)準(zhǔn)C++0x中,加入了對(duì)靜態(tài)斷言的支持,引入了新的關(guān)鍵字static_assert來表示靜態(tài)斷言。使用靜態(tài)斷言,我們可以在程序的編譯時(shí)期檢測(cè)一些條件是否成立,這個(gè)特性在調(diào)試模板函數(shù)的模板參數(shù)時(shí)特別有用。在編譯的時(shí)候,模板函數(shù)實(shí)例化,這時(shí)我們就可以使用靜態(tài)斷言去測(cè)試模板函數(shù)的參數(shù)是否按照我們的設(shè)計(jì)擁有合適的值。例如下面這段代碼:

template <int N> struct Kitten {
    static_assert(N < 2, "Kitten<N> requires N < 2.");
};

int main() {
    Kitten<1> peppermint;
    Kitten<3> jazz;

   return 0;
}

當(dāng)我們?cè)谥骱瘮?shù)中使用“1”去實(shí)例化Kitten這個(gè)結(jié)構(gòu)體時(shí),在編譯的時(shí)候,靜態(tài)斷言static_assert會(huì)測(cè)試參數(shù)N的值,當(dāng)N的值小于2時(shí)就會(huì)產(chǎn)生一個(gè)斷言錯(cuò)誤,并將相應(yīng)的調(diào)試幫助信息輸出到“Error List”窗口中,這樣程序員就可以對(duì)問題快速定位,解決問題就更加方便了。

圖2 static_assert斷言及其輸出

另外,靜態(tài)斷言還帶來很多其他的優(yōu)勢(shì)。例如靜態(tài)斷言在編譯時(shí)進(jìn)行處理,不會(huì)產(chǎn)生任何運(yùn)行時(shí)刻空間和時(shí)間上的開銷,這就使得它比assert宏具有更好的效率。另外比較重要的一個(gè)特性是如果斷言失敗,它會(huì)產(chǎn)生有意義且充分的診斷信息,幫助程序員快速解決問題。

auto關(guān)鍵字

在C++0x中,auto關(guān)鍵字的意義發(fā)生了改變。從Visual C++ 2010開始,auto關(guān)鍵字將用于指引編譯器根據(jù)變量的初始值來決定變量的數(shù)據(jù)類型。換句話說,我們可以把a(bǔ)uto當(dāng)成一種新的數(shù)據(jù)類型,它可以“從初始化器(initialize)中推導(dǎo)出所代表的變量的真正類型”。這種對(duì)auto關(guān)鍵字的使用方式可以大大消除當(dāng)前替代方式所導(dǎo)致的冗長和易出錯(cuò)的代碼。我們看一個(gè)實(shí)際的例子:

#include <iostream>
#include <map>
#include <ostream>
#include <regex>
#include <string>
using namespace std;
using namespace std::tr1;

int main() {
    map<string, string> m;

    const regex r("(\\w+) (\\w+)");

    for (string s; getline(cin, s); ) {
        smatch results;
        if (regex_match(s, results, r)) {
            m[results[1]] = results[2];
        }
    }
    for (auto i = m.begin(); i != m.end(); ++i) {
        cout << i->second << " are " << i->first << endl;
    }

    return 0;
}

在這段代碼中,我們使用auto關(guān)鍵字來代替了真正的數(shù)據(jù)類型map<string, string>::iterator,這使得整個(gè)代碼自然而簡潔。

另外,跟其他數(shù)據(jù)類型一樣,我們也可以對(duì)auto關(guān)鍵字進(jìn)行修飾,例如添加const,指針(*),左值引用(&),右值引用(&&)等等,編譯器會(huì)根據(jù)auto類型所代表的真正的數(shù)據(jù)來決定這些修飾的具體含義。

為了兼容一些舊有的C++代碼,我們可以使用/Zc:auto這個(gè)編譯器選項(xiàng),來告訴編譯器是采用auto關(guān)鍵字的原有定義還是在新標(biāo)準(zhǔn)C++0x中的定義。

出處:藍(lán)色理想
責(zé)任編輯:bluehearts

上一頁 VS 2010 C++的未來:0x 的新特性 [2] 下一頁 VS 2010 C++的未來:0x 的新特性 [4]

◎進(jìn)入論壇計(jì)算機(jī)技術(shù)版塊參加討論

相關(guān)文章 更多相關(guān)鏈接
Visual Studio 2010特性支持Office
Visual Studio 2010中的新語言
Visual Studio 2010 的新功能
微軟宣布下一代開發(fā)工具和平臺(tái)
Visual Studio 2010的用戶反饋
作者文章 更多作者文章
Visual Studio 2010特性支持Office
VS 2010 Beta 2功能搶先看
Visual Studio 2010中的新語言
Visual Studio 2010 的新功能
微軟宣布下一代開發(fā)工具和平臺(tái)
關(guān)鍵字搜索 常規(guī)搜索 推薦文檔
熱門搜索:CSS Fireworks 設(shè)計(jì)比賽 網(wǎng)頁制作 web標(biāo)準(zhǔn) 用戶體驗(yàn) UE photoshop Dreamweaver Studio8 Flash 手繪 CG
站點(diǎn)最新 站點(diǎn)最新列表
周大!熬•自然”設(shè)計(jì)大賽開啟
國際體驗(yàn)設(shè)計(jì)大會(huì)7月將在京舉行
中國國防科技信息中心標(biāo)志征集
云計(jì)算如何讓安全問題可控
云計(jì)算是多數(shù)企業(yè)唯一擁抱互聯(lián)網(wǎng)的機(jī)會(huì)
阿里行云
云手機(jī)年終巨獻(xiàn),送禮標(biāo)配299起
阿里巴巴CTO王堅(jiān)的"云和互聯(lián)網(wǎng)觀"
1499元買真八核 云OS雙蛋大促
首屆COCO桌面手機(jī)主題設(shè)計(jì)大賽
欄目最新 欄目最新列表
Windows7優(yōu)化調(diào)整實(shí)用小技巧十則
關(guān)于國內(nèi)Windows 7下載的一些提醒
Windows 7安全模式下修復(fù)系統(tǒng)故障
如何防止電腦被黑客入侵
syssafe病毒抗?fàn)幱?/A>
淺談手工殺毒
L2TP預(yù)共享密鑰解決內(nèi)網(wǎng)VPN連接問題
淺談移動(dòng)硬盤的數(shù)據(jù)安全問題
Windows組策略之軟件限制策略
特殊文件防止閃存為電腦帶來病毒
>> 分頁 首頁 前頁 后頁 尾頁 頁次:3/41個(gè)記錄/頁 轉(zhuǎn)到 頁 共4個(gè)記錄

藍(lán)色理想版權(quán)申明:除部分特別聲明不要轉(zhuǎn)載,或者授權(quán)我站獨(dú)家播發(fā)的文章外,大家可以自由轉(zhuǎn)載我站點(diǎn)的原創(chuàng)文章,但原作者和來自我站的鏈接必須保留(非我站原創(chuàng)的,按照原來自一節(jié),自行鏈接)。文章版權(quán)歸我站和作者共有。

轉(zhuǎn)載要求:轉(zhuǎn)載之圖片、文件,鏈接請(qǐng)不要盜鏈到本站,且不準(zhǔn)打上各自站點(diǎn)的水印,亦不能抹去我站點(diǎn)水印。

特別注意:本站所提供的攝影照片,插畫,設(shè)計(jì)作品,如需使用,請(qǐng)與原作者聯(lián)系,版權(quán)歸原作者所有,文章若有侵犯作者版權(quán),請(qǐng)與我們聯(lián)系,我們將立即刪除修改。

您的評(píng)論
用戶名:  口令:
說明:輸入正確的用戶名和密碼才能參與評(píng)論。如果您不是本站會(huì)員,你可以注冊(cè) 為本站會(huì)員。
注意:文章中的鏈接、內(nèi)容等需要修改的錯(cuò)誤,請(qǐng)用報(bào)告錯(cuò)誤,以利文檔及時(shí)修改。
不評(píng)分 1 2 3 4 5
注意:請(qǐng)不要在評(píng)論中含與內(nèi)容無關(guān)的廣告鏈接,違者封ID
請(qǐng)您注意:
·不良評(píng)論請(qǐng)用報(bào)告管理員,以利管理員及時(shí)刪除。
·尊重網(wǎng)上道德,遵守中華人民共和國的各項(xiàng)有關(guān)法律法規(guī)
·承擔(dān)一切因您的行為而直接或間接導(dǎo)致的民事或刑事法律責(zé)任
·本站評(píng)論管理人員有權(quán)保留或刪除其管轄評(píng)論中的任意內(nèi)容
·您在本站發(fā)表的作品,本站有權(quán)在網(wǎng)站內(nèi)轉(zhuǎn)載或引用
·參與本評(píng)論即表明您已經(jīng)閱讀并接受上述條款
推薦文檔 | 打印文檔 | 評(píng)論文檔 | 報(bào)告錯(cuò)誤  
專業(yè)書推薦 更多內(nèi)容
網(wǎng)站可用性測(cè)試及優(yōu)化指南
《寫給大家看的色彩書1》
《跟我去香港》
眾妙之門—網(wǎng)站UI 設(shè)計(jì)之道
《Flex 4.0 RIA開發(fā)寶典》
《贏在設(shè)計(jì)》
犀利開發(fā)—jQuery內(nèi)核詳解與實(shí)踐
作品集 更多內(nèi)容

雜⑦雜⑧ Gold NORMANA V2