欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

C++怎么避免互補(bǔ)性約束

這篇文章主要講解了“C++怎么避免互補(bǔ)性約束”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“C++怎么避免互補(bǔ)性約束”吧!

專注于為中小企業(yè)提供成都網(wǎng)站建設(shè)、做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)平桂免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上1000家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

T.25:避免互補(bǔ)約束

Reason(原因)

Clarity. Maintainability. Functions with complementary requirements expressed using negation are brittle.

清晰性??删S護(hù)性。包含互補(bǔ)的,使用否定方式表達(dá)的需求的函數(shù)是脆弱的。

Example (using TS concepts)(示例(使用TS概念))

Initially, people will try to define functions with complementary requirements:

最開始,人們?cè)噲D用互補(bǔ)需求定義函數(shù):

template<typename T>
   requires !C<T>    // bad
void f();

template<typename T>
   requires C<T>
void f();

This is better:

下面的代碼更好:

template<typename T>   // general template
   void f();

template<typename T>   // specialization by concept
   requires C<T>
void f();

The compiler will choose the unconstrained template only when C<T> is unsatisfied. If you do not want to (or cannot) define an unconstrained version of f(), then delete it.

只有在C<T>不能滿足時(shí),編譯器才會(huì)選擇非約束模板。如果你不想(或不能)定于f()的非約束性版本,刪除它。

template<typename T>
void f() = delete;

The compiler will select the overload and emit an appropriate error.

編譯器會(huì)選擇重載重載并報(bào)出適當(dāng)?shù)腻e(cuò)誤。

Note(注意)

Complementary constraints are unfortunately common in enable_if code:

很不幸,互補(bǔ)的約束在enable_if代碼中很常見:

template<typename T>
enable_if<!C<T>, void>   // bad
f();

template<typename T>
enable_if<C<T>, void>
f();
Note(注意)

Complementary requirements on one requirements is sometimes (wrongly) considered manageable. However, for two or more requirements the number of definitions needs can go up exponentially (2,4,8,16,...):

一個(gè)需求上的互補(bǔ)需求有時(shí)(被錯(cuò)誤地)認(rèn)為是可控的。然而,對(duì)于兩個(gè)或更多的需求,定義的數(shù)目需要可以按照指數(shù)方式增長(zhǎng)。

C1<T> && C2<T>
!C1<T> && C2<T>
C1<T> && !C2<T>
!C1<T> && !C2<T>

Now the opportunities for errors multiply.

現(xiàn)在錯(cuò)誤的可能性也倍增了。

Enforcement(實(shí)施建議)

  • Flag pairs of functions with C<T> and !C<T> constraints

  • 標(biāo)記使用C<T> 和!C<T> 約束的函數(shù)對(duì)。

感謝各位的閱讀,以上就是“C++怎么避免互補(bǔ)性約束”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)C++怎么避免互補(bǔ)性約束這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

分享文章:C++怎么避免互補(bǔ)性約束
地址分享:http://aaarwkj.com/article40/pdiseo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、網(wǎng)站收錄用戶體驗(yàn)、網(wǎng)頁(yè)設(shè)計(jì)公司做網(wǎng)站、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司
亚洲大陆免费在线视频| 日韩精品视频在线不卡播放| 国产日产精品一区二区三区四区 | 日韩人妻一区中文字幕| 午夜精品人妻一区二区| 久久精品亚洲天然东京热| 日韩国产精品一区二区| 亚洲欧美日韩校园春色| 在线天堂一区二区三区| 激情图区亚洲一区二区| 五十路六十路美熟人妻| 国产欧美高清在线观看视频| 视频一区二区中文字幕日韩| 国产亚洲精品一区久久| 一区二区在线视频中文字幕| 欧美精品久久久久九九九| 亚洲成人黄色片在线观看| 中文字幕精品高清中国| 精品国产综合一区二区三区| 久久精品国产亚洲av高清不卡| 亚洲综合色日本日b网| 国产精品国产三级区别| 精品不卡一区二区三区| 国产精品男人在线播放| 成人激情视频在线网页| 国产成人综合亚洲一区| 麻豆一区二区人妻网站| 超碰免费在线公开97| 日本黄色高清视频一区| 亚洲中文字幕高清无二区| 精品一二三四五区亚洲乱码| 国产经典三级在线观看| 中文字幕人妻丝袜一区一三区| 高清免费欧美大片在线观看| 精品一区二区日韩在线| 亚洲激情欧美激情在线| 日韩亚洲毛片全在线播放| 久久精品国产免费夜夜嗨| 欧美成人高清在线播放| 久草福利视频免费播放| 久久精品国产亚洲av波多|