日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Item 14: 如果函数不会抛出异常就把它们声明为noexcept

發(fā)布時間:2025/6/17 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Item 14: 如果函数不会抛出异常就把它们声明为noexcept 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本文翻譯自modern effective C++,由于水平有限,故無法保證翻譯完全正確,歡迎指出錯誤。謝謝!

博客已經(jīng)遷移到這里啦

在C++98中,異常規(guī)范(exception specifications)是一個不穩(wěn)定因素。你必須總結(jié)出一個函數(shù)可能會拋出的異常類型,所以如果函數(shù)的實現(xiàn)被修改了,異常規(guī)范可能也需要被修正。改變異常規(guī)范則又可能影響到客戶代碼,因為調(diào)用者可能依賴于原先的異常規(guī)范。編譯器通常不會提供幫助來維護“函數(shù)實現(xiàn),異常規(guī)范以及客戶代碼”之間的一致性。最終,大多數(shù)程序員覺得C++98的異常規(guī)范不值得去使用。

C++11中,對于函數(shù)的異常拋出行為來說,出現(xiàn)了一種真正有意義的信息,它能說明函數(shù)是否有可能拋出異常。是或不是,一個函數(shù)可能拋出一個異?;蛩WC它不會拋出異常。這種“可能或絕不”二分的情況是C++11異常規(guī)范的基礎(chǔ),這種異常規(guī)范從本質(zhì)上替換了C++98的異常規(guī)范。(C++98風(fēng)格的異常規(guī)范仍然是有效的,但是它們是被棄用了的。)在C++11中,無條件的noexcept就說明這個函數(shù)保證不會拋出異常。

在設(shè)計接口的時候,一個函數(shù)是不是應(yīng)該這么聲明(noexcept)是一個需要考慮的問題。函數(shù)的異常拋出行為是客戶最感興趣的部分。調(diào)用者能詢問一個函數(shù)的noexcept狀態(tài),并且這個詢問的結(jié)果能影響異常安全(exception safety)或著調(diào)用代碼的性能。因此,一個函數(shù)是否是noexcept和一個成員函數(shù)是否是cosnt,這兩個信息使同樣重要。當(dāng)你知道一個函數(shù)不會拋出異常的時候卻不聲明它為noexcept,就屬于一個不好的接口設(shè)計。

但是,這里還有一個額外的動機讓我們把noexcept應(yīng)用到不會產(chǎn)生異常的函數(shù)上:它允許編譯器產(chǎn)生更好的目標(biāo)代碼。為了理解為什么會這樣,讓我們檢查一下C++98和C++11中,對于一個函數(shù)不會拋出異常的不同解釋??紤]一個函數(shù)f,它保證調(diào)用者永遠不會收到異常。兩種不同的表示方法:

int f(int x) throw(); //C++98風(fēng)格int f(int x) noexcept; //C++11風(fēng)格

如果,運行時期,一個異常逃離了f,這違反了f的異常規(guī)范。在C++98的異常規(guī)范下,f的調(diào)用者的調(diào)用棧被解開了,然后經(jīng)過一些不相關(guān)的動作,程序終止執(zhí)行。在C++11的異常規(guī)范下,運行期行為稍微有些不同:調(diào)用棧只有在程序終止前才有可能被解開。

解開調(diào)用棧的時機,以及解開的可能性的不同,對于代碼的產(chǎn)生有很大的影響。在一個noexcept函數(shù)中,如果一個異常能傳到函數(shù)外面去,優(yōu)化器不需要保持運行期棧為解開的狀態(tài),也不需要確保noexcept函數(shù)中的對象銷毀的順序和構(gòu)造的順序相反(譯注:因為noexcept已經(jīng)假設(shè)了不會拋出異常,所以就算異常被拋出,大不了就是程序終止,而不可能處理異常)。使用“throw()”異常規(guī)范的函數(shù),以及沒有異常規(guī)范的函數(shù),沒有這樣的優(yōu)化靈活性。三種情況能這樣總結(jié):

RetType function(params) noexcept; //優(yōu)化最好RetType function(params) throw(); //沒有優(yōu)化RetType function(params); //沒有優(yōu)化

這種情況就能作為一個充足的理由,讓你在知道函數(shù)不會拋出異常的時候,把它聲明為noexcept。

對于一些函數(shù),情況變得更加強烈(更多的優(yōu)化)。move操作就是一個很好的例子。假設(shè)你有一份C++98代碼,它使用了std::vector。Widget通過一次次push_back來加到std::vector中:

std::vector<Widget> vw;...Widget w;... //使用wvw.push_back(w); //把w加到vw中...

假設(shè)這個代碼工作得很好,然后你也沒有興趣把它改成C++11的版本。但是,基于C++11的move語法能提升原來代碼的性能(當(dāng)涉及move-enabled類型時)的事實,你想做一些優(yōu)化,因此你要保證Widget有一個move operation,你要么自己寫一個,要么用函數(shù)生成器來實現(xiàn)(看Item 17)。

當(dāng)一個新的元素被添加到std::vector時,可能std::vector剩下的空間不足了,也就是std::vector的size等于它的capacity(容量)。當(dāng)發(fā)生這種事時,std::vector申請一個新的,更大的內(nèi)存塊來保存它的元素,然后把原來的內(nèi)存塊中的元素,轉(zhuǎn)移到新塊中去。在C++98中,轉(zhuǎn)移是通過拷貝來完成的,它先把舊內(nèi)存塊中的所有元素拷貝到新內(nèi)存塊中,再銷毀舊內(nèi)存塊中的對象(譯注:再delete舊內(nèi)存)。這種方法確保push_back能提供強異常安全的保證:如果一個異常在拷貝元素的時候被拋出,std::vector的狀態(tài)沒有改變,因為在所有的元素都成功地被拷貝到新內(nèi)存塊前,舊內(nèi)存塊中的元素都不會被銷毀。

在C++11中,會進行一個很自然的優(yōu)化:用move來替換std::vector元素的拷貝。不幸的是,這樣做會違反push_back的強異常安全保證。如果n個元素已經(jīng)從舊內(nèi)存塊中move出去了,在move第n+1個元素時,有一個異常拋出,push_back操作不能執(zhí)行完。但是原來的std::vector已經(jīng)被修改了:n個元素已經(jīng)被move出去了。想要恢復(fù)到原來的狀態(tài)是不太可能的,因為嘗試”把新內(nèi)存塊中的元素move回舊內(nèi)存塊中“的操作也可能產(chǎn)生異常。

這是一個嚴重的問題,因為一些歷史遺留代碼的行為可能依賴于push_back的強異常安全的保證。因此,除非知道它不會拋出異常,否則C++11中的push_back的實現(xiàn)不能默默地用move操作替換拷貝操作。在這種情況(不會拋出異常)下,用move替換拷貝操作是安全的,并且唯一的效果就是能提升代碼的性能。

std::vector::push_back采取”如果可以就move,不能就copy“的策略,并且在標(biāo)準庫中,不只是這個函數(shù)這么做。在C++98中,其他提供強異常安全的函數(shù)(比如,std::vector::reserve,std::deque::insert等等)也采取這樣的策略。如果知道m(xù)ove操作不會產(chǎn)生異常,所有這些函數(shù)都在C++11中使用move操作來替換原先C++98中的拷貝操作。但是一個函數(shù)怎么才能知道m(xù)ove操作會不會產(chǎn)生異常呢?回答很明顯:它會檢查這個操作是否被聲明為noexcept。

swap函數(shù)特別需要noexcept,swap是實現(xiàn)很多STL算法的關(guān)鍵部分,并且它也常常被拷貝賦值操作調(diào)用。它的廣泛使用使得noexcept提供的優(yōu)化特別有價值。有趣的是,標(biāo)準庫的swap是否是noexcept常常取決于用戶自定義的swap是否是noexcept。舉個例子,標(biāo)準庫中,array和std::pair的swap這么聲明:

template<class T, size_t N> void swap(T (&a)[N],T (&a)[N]) noexcept(noexcept(swap(*a, *b)));template<class T1, class T2> sturct pair{...void swap(pair& p) noexcept(noexcept(swap(first, p.first)) && noexcept(swap(second, p.second)));... };

這些函數(shù)是條件noexcept(conditionally noexcept):它們是否是noexcept取決于noexcept中的表達式是否是noexcept。舉個例子,給出兩個Widget的數(shù)組,只有用數(shù)組中的元素來調(diào)用的swap是noexcept時(也就是用Widget來調(diào)用的swap是noexcept時),用數(shù)組調(diào)用的swap才是noexcept。反過來,這也決定了Widget的二維數(shù)組是否是noexcept。相似地,std::pair<Widget, Widget>對象的swap成員函數(shù)是否是noexcept取決于用Widget調(diào)用的swap是否是noexcept。事實上,只有低層次數(shù)據(jù)結(jié)構(gòu)的swap調(diào)用是noexcept,才能使得高層次數(shù)據(jù)結(jié)構(gòu)的swap調(diào)用是noexcept。這鼓勵你盡量提供noexcept swap函數(shù)。

現(xiàn)在我希望你已經(jīng)對noexcept提供的優(yōu)化機會感到興奮了。哎,可是我必須澆滅你的熱情。優(yōu)化很重要,但是正確性更重要。我記得在這個Item的開始說過,noexcept是函數(shù)接口的一部分,所以只有當(dāng)你愿意長期致力于noexcept的實現(xiàn)時,你才應(yīng)該聲明函數(shù)為noexcept。如果你聲明一個函數(shù)為noexcept,并且之后對于這個決定后悔了,你的選擇是將是絕望的。1:你能把noexcept從函數(shù)聲明中移除(也就是改變函數(shù)接口),則客戶代碼會遭受運行期風(fēng)險。2:你也能改變函數(shù)的實現(xiàn),讓異常能夠逃離函數(shù),但是保持著原來的異常規(guī)范(現(xiàn)在,原來的規(guī)范聲明是錯誤的)。如果你這么做,當(dāng)一個異常嘗試逃離函數(shù)時,你的程序?qū)K止。3:或者你可以拋棄一開始想要改變實現(xiàn)的想法,回歸到你現(xiàn)存的實現(xiàn)中去。這些選擇沒有一個是好的選擇。

事實上,很多函數(shù)都是異常中立的(exception-neutral)。這些函數(shù)自己不拋出異常,但是他們調(diào)用的函數(shù)可能拋出異常。當(dāng)發(fā)生這樣的事時,異常中立的函數(shù)允許異常通過調(diào)用鏈傳給處理程序。異常中立的函數(shù)永遠不是noexcept,因為他們可能拋出“我只經(jīng)過一下”(異常產(chǎn)生的地方在別的函數(shù)中,但是需要經(jīng)過我們來傳遞出去)的異常。因此,很大部分函數(shù)都不適合設(shè)計為noexcept。

然而,一些函數(shù)天生就不拋出異常,并且對于一些函數(shù)(特別是move操作和swap函數(shù))成為noexcept能有很大的回報,只要有任何可能,它們都值得實現(xiàn)為noexcept。當(dāng)你能很明確地說一個函數(shù)永遠不應(yīng)該拋出異常的時候,你應(yīng)該明確地把這個函數(shù)聲明為noexcept。

請記住,我說過一些函數(shù)天生就適合實現(xiàn)為noexcept。但是如果扭曲一個函數(shù)的實現(xiàn)來允許noexcept聲明,這樣是本末倒置的。假設(shè)一個簡單的函數(shù)實現(xiàn)可能會產(chǎn)生異常(比如,它調(diào)用的函數(shù)可能拋出異常),如果你想隱藏這樣的調(diào)用(比如,在函數(shù)內(nèi)部捕捉所有的異常并且把它們替換成相應(yīng)的狀態(tài)值或者特殊的返回值)不僅將使你的函數(shù)實現(xiàn)更加復(fù)雜,它還將使你的函數(shù)調(diào)用變得更加復(fù)雜。舉個例子,調(diào)用者必須要檢查狀態(tài)值或特殊的返回值。同時增加的運行期的費用(比如,額外的分支,以及更大的函數(shù)在指令緩存上會增加更大的壓力。等等)會超過你希望通過noexcept來實現(xiàn)的加速,同時,你還要承擔(dān)源代碼更加難以理解和維護的負擔(dān)。這真是一個糟糕的軟件工程。

對于一些函數(shù)來說,聲明為noexcept不是如此重要,它們在默認情況下就是noexcept了。在C++98中,允許內(nèi)存釋放函數(shù)(比如operator delete和operator delete[])和析構(gòu)函數(shù)拋出異常是很糟糕的設(shè)計風(fēng)格,在C++11中,這種設(shè)計風(fēng)格已經(jīng)在語言規(guī)則的層次上得到了改進。默認情況下,所有的內(nèi)存釋放函數(shù)和所有的析構(gòu)函數(shù)(包括用戶自定義的和編譯器自動生成的)都隱式成為noexcept。因此我們不需要把它們聲明成noexcept的(這么做不會造成任何問題,但是不尋常。)只有一種情況析構(gòu)函數(shù)不是隱式noexcept,就是當(dāng)類中的一個成員變量(包括繼承來和被包含在成員變量中的成員變量)的析構(gòu)函數(shù)聲明表示了它可能會拋出異常(比如,聲明這個析構(gòu)函數(shù)為“noexcept(false)”)。這樣的聲明是不尋常的,標(biāo)準庫中就沒有。如果把一個帶有能拋出異常的析構(gòu)函數(shù)的對象用在標(biāo)準庫中(比如,這個對象在一個容器中或者這個對象被傳給一個算法),那么程序的行為是未定義的。

我們值得去注意一些庫的接口設(shè)計區(qū)分了寬接口(wide contract)和窄接口(narrow contract)。一個帶寬接口的函數(shù)沒有前提條件。這樣的函數(shù)被調(diào)用時不需要注意程序的狀態(tài),它在傳入的參數(shù)方面沒有限制。帶寬接口的函數(shù)永遠不會展現(xiàn)未定義行為。

不帶寬接口條件的函數(shù)就是窄接口函數(shù)。對這些函數(shù)來說,如果傳入的參數(shù)違反了前提條件,結(jié)果將是未定義的。

如果你在寫一個寬接口的函數(shù),并且你知道你不會拋出一個異常,那就遵循本Item的建議,把它聲明為noexcept。對于那些窄接口的函數(shù),情況將變得很棘手。舉個例子,假設(shè)你正在寫一個函數(shù)f,這個函數(shù)接受一個std::string參數(shù),并且它假設(shè)f的實現(xiàn)永遠不會產(chǎn)生一個異常。這個假設(shè)建議我們把f聲明為noexcept。

現(xiàn)在假設(shè)f有一個前提條件:std::string參數(shù)的數(shù)據(jù)長度不會超過32個字節(jié)。如果用一個超過32字節(jié)的std::string來調(diào)用f,f的行為將是未定義的,因為一個不符合前提條件的參數(shù)會導(dǎo)致未定義行為。f沒有義務(wù)去檢查前提條件,因為函數(shù)假設(shè)它們的前提條件是被滿足的(調(diào)用者有責(zé)任確保這些假設(shè)是有效的)。由于前提條件的存在,把f聲明為noexcept看起來是合理的。

void f(const std::string& s) noexcept; //前提條件:s.length() <= 32

但是假設(shè)f的實現(xiàn)選擇檢查前提條件是否被違反了。檢查本不是必須的,但是它也不是被禁止的,并且檢查一下前提條件是有用的(比如,在進行系統(tǒng)測試的時候)。調(diào)試時,捕捉一個拋出的異??偸潜葒L試找出未定義行為的原因要簡單很多。但是要怎么報道出前提條件被違反了呢?只有報道了才能讓測試工具或客戶端的錯誤處理機制來捕捉到它。一個直接的方法就是拋出一個“前提條件被違反”的異常,但是如果f被聲明為noexcept,那么這個方法就不可行了,拋出一個異常就會導(dǎo)致程序終止。因此,區(qū)分寬接口和窄接口的庫設(shè)計者通常只為寬接口函數(shù)提供noexcept聲明。

最后還有一點,讓我完善一下我之前的觀點(編譯器常常無法對“找出函數(shù)實現(xiàn)和它們的異常規(guī)范之間的矛盾”提供幫助)。考慮一下下面的代碼,這段代碼是完全合法的:

void setup(); //在別處定義的函數(shù) void cleanup(); void doWork() noexcept {setup(); //做設(shè)置工作... //做實際的工作cleanup(); //做清理工作 }

在這里,盡管doWork調(diào)用了non-noexcept函數(shù)(setup和cleanup),doWork還是被聲明為noexcept。這看起來很矛盾,但是有可能setup和cleanup在說明文檔中說了它們永遠不會拋出異常。就算它們沒有在說明文檔中說明,我們 還是有多理由來解釋他們的聲明式為什么是non-noexcept。舉個例子,它們可能是用C寫的。(也可能是從C標(biāo)準庫移動到std命名空間但缺少異常規(guī)范的函數(shù),比如,std::strlen沒有聲明為noexcept)或者它們可能是C++98標(biāo)準庫的一部分,沒有使用C++98的異常規(guī)范,并且到目前為止還沒有被修改成C++11的版本。

因為這里有很多合適的理由來解釋為什么noexcept函數(shù)可以調(diào)用缺乏noexcept保證的函數(shù),所以C++允許這樣的代碼,并且編譯器通常不會對此發(fā)出警告。

            你要記住的事
  • noexcept是函數(shù)接口的一部分,并且調(diào)用者可能會依賴這個接口。
  • 比起non-noexcept函數(shù),noexcept函數(shù)可以更好地被優(yōu)化。
  • noexcept對于move操作,swap,內(nèi)存釋放函數(shù)和析構(gòu)函數(shù)是特別有價值的,
  • 大部分函數(shù)是異常中立的而不是noexcept。

轉(zhuǎn)載于:https://www.cnblogs.com/boydfd/p/5035940.html

總結(jié)

以上是生活随笔為你收集整理的Item 14: 如果函数不会抛出异常就把它们声明为noexcept的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

精品国产成人在线影院 | 国产成人一区二区精品非洲 | 狠狠干干 | 91成人网在线观看 | 亚洲国产福利视频 | 天天综合网~永久入口 | a亚洲视频 | 欧美国产三区 | 国产免费黄色 | 亚洲精品视频在线观看视频 | 在线看国产日韩 | 午夜久久精品 | 99精品国产成人一区二区 | 久草剧场 | 蜜桃av观看 | 成人av日韩 | 岛国一区在线 | 中文字幕日韩无 | 九九导航| 国产高清视频在线播放 | 波多野结衣在线观看视频 | 色婷婷亚洲| 一区二区男女 | 日本夜夜草视频网站 | 久久久久免费观看 | 久99久久| 色五婷婷 | 天天操夜 | av色网站 | 久久精品中文视频 | 新版资源中文在线观看 | 国产精品美女在线 | 69热国产视频 | 日本女人逼 | 天天草视频| 日韩综合第一页 | 国产美女精品人人做人人爽 | 天天色天天射天天操 | 99视频国产精品免费观看 | 国产精品毛片 | 日韩激情av在线 | 国产在线一区二区 | 色综合久久天天 | 三上悠亚一区二区在线观看 | 国产精品99蜜臀久久不卡二区 | 99热在线看 | 97视频网址 | 97国产精品亚洲精品 | aav在线 | 99色在线观看视频 | 久久精品中文字幕免费mv | 国产色视频网站 | 香蕉视频在线视频 | 亚洲天堂网站视频 | 亚州av免费 | 91精品推荐| 精品国产1区2区3区 国产欧美精品在线观看 | 午夜av大片 | 91污污 | 欧美精品亚洲二区 | 亚洲视频网站在线观看 | 国产精品国产三级国产aⅴ9色 | 97视频免费播放 | 久久精品网站视频 | 天天操天天爱天天干 | 天堂入口网站 | 国产无遮挡又黄又爽馒头漫画 | 国产精品国产亚洲精品看不卡15 | 97在线观看免费视频 | 久久久午夜精品理论片中文字幕 | 在线观看免费一级片 | 国产91aaa| 国产偷国产偷亚洲清高 | 狠狠干综合 | 欧美日韩xxx| 成人av电影免费在线观看 | 免费观看的av网站 | 在线观看视频黄色 | 怡红院久久 | 国产成人久久77777精品 | 婷婷激情五月综合 | 免费在线观看91 | 国产高清日韩欧美 | 国产成人a亚洲精品 | 亚洲永久精品一区 | 亚洲欧洲美洲av | 蜜臀一区二区三区精品免费视频 | 成人影视片 | av网在线观看 | www日韩| 蜜臀久久99精品久久久酒店新书 | 天天操天天添天天吹 | 婷婷丁香在线视频 | 91麻豆福利 | 国产高清在线观看av | www激情久久 | 国产一区二区精品91 | 久久久香蕉视频 | 麻豆精品视频在线 | 日日夜夜操操操操 | 日韩激情综合 | 国产免费精彩视频 | 亚洲精品成人 | 欧美精品二 | 高清精品在线 | 亚洲第五色综合网 | 亚洲欧美日本一区二区三区 | 99免在线观看免费视频高清 | 久久avav| 日韩av一区二区三区四区 | 99久热在线精品视频成人一区 | 婷婷五月在线视频 | 国产精品一区二区三区免费视频 | 久久精品免费电影 | 少妇资源站 | 97成人在线观看 | 青青看片 | 日韩免费在线一区 | 国产美女免费观看 | 粉嫩av一区二区三区四区五区 | 日韩欧美一区二区在线播放 | 国产一级在线观看 | 一区二区三区精品在线视频 | 狠狠色丁香婷婷综合欧美 | www.玖玖玖 | 国产成人av综合色 | 国产精品无av码在线观看 | 一区二区三区免费在线观看 | 亚洲精品中文在线 | 日韩精品免费在线视频 | 亚洲九九 | 在线观看久 | 国产精品av一区二区 | 91成熟丰满女人少妇 | 在线观看91视频 | 最新av网址大全 | 日韩免费在线观看视频 | 欧美日韩网址 | 1024久久 | 麻豆视频国产精品 | 日韩电影中文字幕在线观看 | 国产午夜精品一区二区三区 | 99在线观看视频网站 | 欧美色噜噜噜 | 亚洲国产视频网站 | 国产精品18久久久 | 日日爽 | 狠狠色狠狠综合久久 | 精品国产99 | 亚洲婷婷免费 | 99婷婷狠狠成为人免费视频 | 黄色在线看网站 | 国产乱码精品一区二区三区介绍 | 欧美日韩在线观看一区二区 | 国产91aaa| 中文字幕av免费 | 波多野结衣精品 | 99视频这里有精品 | 久久观看最新视频 | 中文资源在线官网 | 国产高清在线观看 | 二区视频在线 | 黄色av电影一级片 | 亚洲综合导航 | 国产精品va在线观看入 | 99超碰在线观看 | 97在线看| 亚洲精品白浆高清久久久久久 | 久久久久国产精品一区 | 国产成人免费高清 | 四川bbb搡bbb爽爽视频 | av夜夜操| 一区二区三区四区久久 | 国产午夜精品一区二区三区在线观看 | 国产精品欧美日韩 | 国产涩图| 免费在线国产黄色 | 黄色电影小说 | 色一级片 | 综合国产在线观看 | 黄色片网站免费 | 国产精品激情偷乱一区二区∴ | 国产中文字幕久久 | 久久久久久久久久久网站 | 在线观看播放av | 精品免费在线视频 | 精品欧美一区二区三区久久久 | 美女黄频 | 97视频人人 | 成人一区影院 | 夜添久久精品亚洲国产精品 | 97视频入口免费观看 | 在线中文字幕观看 | 91精品视频一区二区三区 | 91在线免费视频 | 日本精品一区二区在线观看 | 精品亚洲欧美一区 | 天天躁日日躁狠狠躁av麻豆 | 国产一二三在线视频 | 91亚洲网站 | 麻豆91精品 | 国产97视频在线 | 日韩动态视频 | av资源免费观看 | 国产在线欧美日韩 | 激情欧美一区二区免费视频 | 久久精品首页 | 成人资源在线 | 久久国产精品免费看 | 9在线观看免费 | 最新超碰在线 | 国产精品一区二区在线播放 | 亚洲涩涩色 | 精品久操 | 天天曰天天爽 | 91精品国产99久久久久久久 | 在线三级播放 | 国产高清在线免费观看 | 国产真实在线 | 精品国产一区二区三区蜜臀 | 狠狠黄 | 国产高清小视频 | 96亚洲精品久久 | 久草在线视频在线 | 亚洲精品美女在线观看播放 | 在线欧美a| 五月天中文字幕 | 久久爱资源网 | 日日色综合 | 日韩一区二区免费视频 | 97在线观看免费 | 91九色视频在线播放 | 久草视频免费 | 一区二区三区在线免费观看 | 国产精华国产精品 | 婷婷丁香视频 | 亚洲国产日韩在线 | av网站在线观看免费 | 免费av的网站 | 91av短视频| 国产成人精品久久久久 | 午夜婷婷在线观看 | 国产精品1区 | 亚洲黄色一级大片 | 色av男人的天堂免费在线 | 精品福利网 | 欧美黑人性爽 | 在线观看视频在线 | 91观看视频 | 狠狠操导航 | 玖玖视频国产 | 午夜久草 | 干天天| 久久久久久国产精品久久 | 欧美一级特黄高清视频 | 综合久久2023 | 日韩精品无 | 国产一二三区在线观看 | 91丨九色丨高潮丰满 | 国产精品99久久久久 | 国产精品高潮呻吟久久av无 | 久久一级片| 四虎影视欧美 | 国产视频二 | 伊人小视频| 狠狠色丁香久久婷婷综合丁香 | 国产精品美女久久久久aⅴ 干干夜夜 | 激情综合五月婷婷 | 在线观看亚洲国产 | 一区在线观看 | 欧美91成人网 | 8x成人在线 | 国产日韩在线一区 | 日韩av中文在线观看 | 免费在线观看日韩欧美 | 日产乱码一二三区别免费 | 亚洲国产中文在线 | 久久婷婷五月综合色丁香 | 国语自产偷拍精品视频偷 | 人人爽人人爽人人爽人人爽 | 日韩高清精品一区二区 | 福利视频一区二区 | 99欧美精品 | 一级片色播影院 | av在线一| 国产精品视屏 | 精品福利视频在线观看 | 久久国产精品久久久久 | 97超碰福利久久精品 | 国产亚洲欧美精品久久久久久 | 国产色啪| 99热免费在线 | 精品视频在线视频 | 国产在线一卡 | 综合精品久久 | 四虎影视8848aamm | 国产精品一区二区三区在线播放 | 91在线91| 伊人首页 | 国产精品123 | www.久久免费视频 | 韩国av一区二区三区在线观看 | 91精品国产欧美一区二区成人 | 91大神在线观看视频 | 欧美精品一级视频 | 欧美日韩一区二区三区在线观看视频 | 欧美色婷婷 | 国产午夜在线观看视频 | 国产一区精品在线 | 久久公开免费视频 | 亚洲天堂网在线播放 | 九九色综合 | 丁香久久激情 | 日韩视频一区二区三区在线播放免费观看 | 少妇搡bbbb搡bbb搡69 | 久久99免费观看 | 成人免费亚洲 | www色网站 | 国产精品一区二区三区四 | 午夜精品久久久久久久99水蜜桃 | 中文字幕美女免费在线 | 国产精品久久久精品 | 亚洲综合小说 | 超碰人人舔 | www免费看片com| 黄色大片视频网站 | 欧美激情精品久久久久久 | 99亚洲精品 | 欧美日韩在线看 | 久久久久国产一区二区 | 亚洲欧洲精品久久 | 日韩免费一级a毛片在线播放一级 | 夜夜澡人模人人添人人看 | 亚洲黄色片在线 | 五月综合激情婷婷 | av中文字幕剧情 | 国产伦精品一区二区三区照片91 | 天堂网中文在线 | 欧美日韩精品在线一区二区 | 久久精品国产免费看久久精品 | 欧美日韩另类在线观看 | 九九久久久久久久久激情 | 天天色天天搞 | 色姑娘综合 | 久久国产欧美日韩 | 国产高清成人 | 国产高清av在线播放 | h动漫中文字幕 | 特级a老妇做爰全过程 | 亚洲国产中文字幕在线观看 | 中文字幕成人av | 国产日本在线观看 | 又黄又爽又湿又无遮挡的在线视频 | 国产精品免费看久久久8精臀av | 免费视频三区 | 国产精品一区在线观看 | 国产99精品 | 久久婷婷色综合 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 亚洲第一av在线播放 | 亚洲成av片人久久久 | av在线色| 成人午夜在线电影 | 日韩欧美在线视频一区二区三区 | 五月开心激情网 | 日本三级大片 | 极品美女被弄高潮视频网站 | 人人玩人人添人人澡97 | 狠狠操欧美| 99精品视频在线观看播放 | 久草五月| 免费欧美高清视频 | 欧美日韩国产精品一区二区 | 国产精品video爽爽爽爽 | 久久精品亚洲精品国产欧美 | 久久综合精品国产一区二区三区 | 国产精品免费大片视频 | 亚洲视频免费在线观看 | 91大神一区二区三区 | 日日操日日操 | 免费的黄色的网站 | 美女久久久久久 | 国产视频2| 国产午夜三级一区二区三桃花影视 | 69久久久 | 香蕉久久久久久久 | 在线观看欧美成人 | 国产精品视频 | 亚洲精品高清视频在线观看 | 婷婷干五月 | 亚洲欧美日韩一级 | 午夜久久久久久久久久影院 | 成人一级片在线观看 | 不卡视频在线看 | 国产精品中文久久久久久久 | 国产高清免费在线观看 | 日韩v欧美v日本v亚洲v国产v | 99色免费 | 国产四虎在线 | 天天插狠狠干 | 在线观看成人毛片 | 91传媒视频在线观看 | 黄色一级动作片 | 国产精品久久99综合免费观看尤物 | 美女视频久久黄 | 久久久久国产一区二区三区四区 | 亚洲高清国产视频 | 欧美一区二区日韩一区二区 | 五月婷婷在线观看视频 | 91专区在线观看 | 精品视频999 | 亚洲午夜久久久综合37日本 | 伊人色综合久久天天 | 天海翼一区二区三区免费 | 成年人免费观看国产 | 欧美色一色 | 日本色小说视频 | 日韩精品一区在线观看 | 欧美成人理伦片 | 91人人揉日日捏人人看 | 日日婷婷夜日日天干 | 成人久久久久久久久 | 欧美黑吊大战白妞欧美 | 久久精品国产免费观看 | 香蕉视频在线网站 | 美女禁18| 波多野结衣最新 | 国内精品久久久久影院日本资源 | 久久久www成人免费精品张筱雨 | 激情婷婷在线观看 | 一级一片免费视频 | 99视频国产精品 | 日韩城人在线 | 九九九热精品免费视频观看网站 | 国产日韩在线一区 | 欧美一级电影免费观看 | 色悠悠久久综合 | 992tv在线观看 | 99久久夜色精品国产亚洲 | 在线观看久草 | 国产麻豆精品95视频 | 日黄网站 | 欧美福利视频 | 啪一啪在线| 99热国产在线观看 | 99精品黄色片免费大全 | 欧美一级乱黄 | 久久久久久久久久福利 | 91久久国产自产拍夜夜嗨 | 精品在线不卡 | 久久激情五月丁香伊人 | av免费观看网址 | 亚洲免费视频在线观看 | 国产精品美女视频 | 超碰国产在线观看 | 成人在线观看影院 | 欧洲成人免费 | 成人av.com | 天天天天天天干 | 婷婷色综合 | 免费黄色一区 | 国产精品不卡一区 | 国产免费亚洲高清 | 亚洲综合色丁香婷婷六月图片 | 日韩免费一级a毛片在线播放一级 | 91免费黄视频 | 国产麻豆精品95视频 | 国产精品久久久久久模特 | 亚洲码国产日韩欧美高潮在线播放 | 超碰99在线 | 日韩免费av网址 | 中文字幕乱码电影 | 香蕉视频久久久 | 久久久国产精品免费 | av中文在线影视 | 久久久久综合精品福利啪啪 | 久久精品欧美视频 | 日本大尺码专区mv | 久草精品免费 | a级国产乱理伦片在线播放 久久久久国产精品一区 | 国产中文视频 | 午夜精品一区二区三区在线播放 | 国产精品一区电影 | 国产黄色精品网站 | 在线播放亚洲 | 国产一卡二卡四卡国 | 天天干天天操天天 | 亚洲精品免费在线视频 | 欧美极品少妇xbxb性爽爽视频 | 欧美伦理电影一区二区 | 激情综合五月网 | 五月亚洲婷婷 | 日韩精品一区二区在线 | 国产日韩欧美在线影视 | 爱干视频 | 欧美国产亚洲精品久久久8v | 天天操天天操天天 | 91禁看片| 欧美综合久久 | 日韩电影中文,亚洲精品乱码 | 日韩美精品视频 | 91视频3p | 中国美女一级看片 | 九色在线 | 亚洲观看黄色网 | 免费在线黄 | 亚洲自拍偷拍色图 | 九九在线国产视频 | 探花国产在线 | 日韩字幕| 蜜臀久久99精品久久久无需会员 | 国产精品欧美日韩 | 午夜免费视频网站 | 欧美亚洲另类在线视频 | 国产亚洲精品女人久久久久久 | 深夜福利视频在线观看 | 中文一区在线 | 亚洲播播| 天天操夜夜操天天射 | 亚洲日本中文字幕在线观看 | 久久精品第一页 | 日韩精品久久中文字幕 | 视频一区二区在线 | 免费在线国产 | 在线观看国产www | 久久美女高清视频 | 亚洲电影图片小说 | 色94色欧美 | 日日噜噜噜噜夜夜爽亚洲精品 | 99精品国产免费久久久久久下载 | 成人a级大片| av性网站| 亚洲成av片人久久久 | 亚洲精品视频免费观看 | 天天操天天玩 | 日本中文字幕在线视频 | 亚洲欧美国产精品18p | 国产日韩欧美视频在线观看 | 96视频在线 | 国产精品高清在线 | www免费网站在线观看 | 婷婷激情5月天 | 手机在线小视频 | 久久视频这里有久久精品视频11 | 欧美尹人| 网站在线观看你们懂的 | 天天色天天色 | av网站大全免费 | 欧美日韩国产亚洲乱码字幕 | 久久久久久久福利 | 精品久久久免费 | av免费福利 | 欧美日韩国内在线 | 欧美最猛性xxxxx免费 | 公与妇乱理三级xxx 在线观看视频在线观看 | 欧美综合色| 天堂在线视频中文网 | 国精产品999国精产品视频 | 9在线观看免费高清完整 | 麻花传媒mv免费观看 | 亚洲视频每日更新 | 久久久久久免费毛片精品 | 天天曰天天干 | 日本一区二区不卡高清 | 国产特级毛片aaaaaa毛片 | 国产免费区 | 午夜av网站 | 91丨九色丨国产丨porny精品 | 国产精品美乳一区二区免费 | 99精品视频免费看 | 99久久久久久 | 国产福利91精品 | 午夜精品一区二区三区在线视频 | 欧洲精品码一区二区三区免费看 | 国产xxxxx在线观看 | 国产伦精品一区二区三区… | 在线你懂的视频 | 中文欧美字幕免费 | 日韩免费三级 | 成年人在线免费视频观看 | www.97色.com | 亚洲国产日韩一区 | 日本九九视频 | 久久综合干 | 亚洲国产日韩欧美 | 久久久久久久久久电影 | 在线观看爱爱视频 | 五月婷婷丁香激情 | 91av手机在线 | 99免费在线播放99久久免费 | 夜夜爽天天爽 | 波多野结衣一区二区三区中文字幕 | 国产91免费观看 | 久久刺激视频 | 国产xxxxx在线观看 | 免费久久视频 | 久久99精品国产99久久 | 久久精品日产第一区二区三区乱码 | 中文字幕一区二区三区精华液 | 在线观看日韩 | 国产91精品高清一区二区三区 | 国产精品成久久久久三级 | 99国产一区二区三精品乱码 | 91中文字幕在线观看 | 亚洲天堂网在线观看视频 | a在线免费观看视频 | 午夜久久久久久久 | 亚州精品成人 | 在线天堂日本 | 久久精品99国产精品 | 欧美在线一 | 91久久偷偷做嫩草影院 | 日韩欧美在线视频一区二区 | 99久久精品视频免费 | 国产99久久久久 | 亚洲天天在线日亚洲洲精 | 欧美成人猛片 | 久久精品www人人爽人人 | 国产福利av | 国产亚洲精品美女 | 国产伦理精品一区二区 | 99精品视频在线观看播放 | 99免费观看视频 | ww亚洲ww亚在线观看 | 欧美国产亚洲精品久久久8v | 欧美性色黄大片在线观看 | 人人草网站 | 在线观看视频免费播放 | 国产精品美女999 | 成人网在线免费视频 | 免费色av | 国产高清不卡av | 国产高清不卡一区二区三区 | 中文字幕亚洲字幕 | 五月婷婷综合久久 | 久久九九网站 | 亚洲狠狠丁香婷婷综合久久久 | 在线看不卡av | 亚洲精品在线视频网站 | 色a在线观看 | 亚洲欧洲一区二区在线观看 | 亚洲精品视频在线免费 | 亚洲视屏在线播放 | 在线高清| 国产精品乱看 | 在线精品视频免费播放 | 久久国产a | 草久久久久久 | 久久久久久久久久久黄色 | 天天干天天做 | 国产超碰在线观看 | 免费在线观看av片 | 97国产在线 | www.色五月| 久久黄色片子 | 国产999| 日韩在线一二三区 | 插综合网 | 亚洲人成人天堂h久久 | 天天干天天操av | av看片在线观看 | 久草在线看片 | 91毛片在线 | 69精品视频在线观看 | 一区二区三区电影大全 | 天天综合网 天天综合色 | 伊人资源视频在线 | 天天操天天操 | 国产专区在线看 | 欧美日韩xxx | 狠狠色丁香婷婷综合久小说久 | 久久人人看 | 成年人在线看视频 | 麻豆综合网 | 欧美怡红院 | 国产精品美乳一区二区免费 | 99视频国产在线 | 免费高清在线观看电视网站 | 精品一二三区 | 久久免费视频这里只有精品 | 久久99精品国产99久久 | 亚洲欧美视屏 | 国产精品久久久久999 | 亚洲国产日韩av | 色资源二区在线视频 | 亚洲精品美女久久久久网站 | 国产高清久久久久 | 中文字幕有码在线观看 | 手机看片国产日韩 | 国产视频在线观看一区二区 | 久草在线官网 | 99 色| 亚洲国产成人av网 | 性日韩欧美在线视频 | 国产精品系列在线播放 | 久久国产二区 | 国产小视频网站 | 日本免费一二三区 | 成人在线观看资源 | 超碰人人在 | 激情网色 | 免费中文字幕视频 | 美女久久 | 三级黄色片在线观看 | 国产精品美女久久久久久免费 | 狠狠操.com| 日韩三级久久 | 日本在线观看一区二区 | 91高清免费看 | 91亚洲激情 | 日韩丝袜视频 | 精品久久久久久久久久久久久久久久久久 | 久久色在线观看 | 91成人精品一区在线播放69 | 福利av在线| 久草在线高清 | 亚洲激情综合网 | 在线99热 | av网站免费在线 | 亚洲国产97在线精品一区 | 三级黄色免费 | 日韩欧美精品免费 | 成人午夜av电影 | 久久精品99国产国产精 | 婷婷5月激情5月 | 日日弄天天弄美女bbbb | 久久天天拍| 亚洲精品国精品久久99热一 | 在线观看日本高清mv视频 | ww视频在线观看 | 久久综合久久久久88 | 丁香免费视频 | 国产精品麻豆果冻传媒在线播放 | 99久久毛片| 久久色网站 | 久久久精品欧美 | 亚洲精品视频在线观看免费 | 99在线免费观看视频 | 亚洲乱码精品久久久久 | 国产成人精品福利 | 一区二区三区免费在线观看视频 | 探花视频免费在线观看 | 九草视频在线观看 | 久久精品国产一区二区三区 | 成人中文字幕+乱码+中文字幕 | 亚洲区另类春色综合小说校园片 | 亚洲乱码一区 | 免费不卡中文字幕视频 | 免费观看丰满少妇做爰 | 国产午夜三级一区二区三 | 国产精品男女 | 在线欧美日韩 | 91在线精品观看 | 色婷婷综合在线 | 一区二区精品在线观看 | 人人精品| 黄色免费观看视频 | 久久久国产精品一区二区中文 | 国产精品久久久免费看 | 国产视频一区二区在线观看 | 国产视频在线观看一区二区 | 日韩视频免费在线 | 午夜av一区 | 久久久国产一区二区 | 久久综合免费视频影院 | 97在线观视频免费观看 | 国产 一区二区三区 在线 | 国产原创在线观看 | 婷婷色中文 | 日韩中文字幕在线观看 | 蜜臀久久99精品久久久无需会员 | 99精品免费久久久久久日本 | 四虎天堂 | 欧美日韩亚洲精品在线 | 综合网色 | 91视频首页| 香蕉视频91 | 黄色91在线 | 九九亚洲精品 | 六月丁香综合 | 在线观看色网 | 三日本三级少妇三级99 | 亚洲日本va中文字幕 | 日韩中文字幕亚洲一区二区va在线 | av大全在线免费观看 | 成人网444ppp| 日产av在线播放 | 在线观看免费观看在线91 | 国产一区电影在线观看 | 美女视频黄免费网站 | 在线91观看 | 操一草 | 99草视频在线观看 | 国产精品男女 | 日韩免费一区 | 人人舔人人插 | 久久精品亚洲一区二区三区观看模式 | 亚洲资源在线观看 | 久久久久久激情 | 操高跟美女 | 欧美一级黄色片 | www久| 久久久这里有精品 | 在线观看黄色av | 亚洲一级片免费观看 | 久久久www成人免费精品 | 国产精品一区二区三区在线播放 | 91精品在线播放 | 精品爱爱 | 午夜久久精品 | 人人干人人干人人干 | 91看片淫黄大片一级在线观看 | 日韩久久久久久久久 | 精品国产一区二区三区久久久蜜臀 | 欧美视频日韩视频 | 久久69精品| 成人av高清在线 | 欧美成人精品欧美一级乱 | 天天天干天天射天天天操 | 午夜久久久久 | 青青河边草手机免费 | 午夜 在线 | 国产精品福利小视频 | 久久黄色成人 | 天天操比 | 免费视频三区 | 欧美一级淫片videoshd | 综合成人在线 | 天天操操| 91成版人在线观看入口 | 黄色av电影 | 久久久久久福利 | 91精品国产91热久久久做人人 | 亚洲精品99久久久久久 | 国产精品久久久久久一区二区 | 一区二区三区日韩在线 | a午夜在线 | 在线观看av国产 | 免费亚洲精品视频 | 国产精品黄色av | 91女神的呻吟细腰翘臀美女 | 婷婷深爱网 | 国产一二三区av | 成人片在线播放 | 久久超碰在线 | 日日夜夜狠狠 | 天天操天天射天天添 | 精品在线免费视频 | 中文字幕日本特黄aa毛片 | 久久刺激视频 | 婷婷天天色 | 成人综合日日夜夜 | 亚洲欧美日韩国产精品一区午夜 | 亚洲精品网站 | 91新人在线观看 | 免费亚洲一区二区 | 97视频在线免费观看 | 中文字幕亚洲字幕 | 大荫蒂欧美视频另类xxxx | 国产麻豆精品久久一二三 | 国偷自产中文字幕亚洲手机在线 | 亚洲首页| 精选久久| 毛片网在线播放 | 国产精品综合在线 | 亚洲情感电影大片 | 国产高清在线免费观看 | 国产高清视频 | 有码一区二区三区 | 欧美狠狠色 | 亚洲精品在线免费看 | 91av在线免费 | 久久6精品| 久久99九九99精品 | 亚洲欧美国产精品 | 久久久久久久99精品免费观看 | 国产精品99久久久久久有的能看 | 五月丁婷婷| 亚洲精品午夜aaa久久久 | 美女视频a美女大全免费下载蜜臀 | 婷婷综合激情 | 狠狠狠色丁香婷婷综合久久五月 | 午夜久久久久久久 | 天天av资源 | 99视频在线免费看 | 97色在线观看免费视频 | 久久精品免视看 | 99精品视频播放 | 久久精品影视 | 亚洲精品91天天久久人人 | 日本韩国精品在线 | 顶级欧美色妇4khd | 精品国产不卡 | 日韩黄色中文字幕 | 成人国产精品一区 | 精品99久久| 久久久资源| 久久久免费高清视频 | 91视频国产免费 | 在线观看亚洲精品 | 中文字幕精品三级久久久 | 2019中文字幕网站 | www中文在线 | 91在线日韩 | 天天干夜夜擦 | 91成人精品视频 | 玖玖视频免费在线 | 国产午夜精品一区二区三区 | 中文字幕网站视频在线 | 岛国大片免费视频 | 中文乱码视频在线观看 | 欧美激情综合五月色丁香 | 欧美一二三区在线观看 | 国产精品久久久久永久免费看 | 日韩高清免费观看 | 欧美一级片免费在线观看 | 中文字幕超清在线免费 | 亚洲美女在线国产 | 中文字幕在线播放一区二区 | 久久久免费高清视频 | 激情视频免费在线观看 | 国产成人a v电影 | 久久国精品| 久久99国产精品免费网站 | 久久久久久毛片精品免费不卡 | 国产打女人屁股调教97 | 国产 色| 亚洲 中文字幕av | 成人h动漫精品一区二 | 91伊人影院 | 久久久久国产精品www | 久久精品国产精品 | 免费久久网 | 久久亚洲免费 | 毛片一二区 | 欧美午夜理伦三级在线观看 | 亚洲综合成人婷婷小说 | 日韩精品91偷拍在线观看 | 日日摸日日添夜夜爽97 | 一区二区三区国产欧美 | 久久精品三| 成人午夜精品福利免费 | 一本一道久久a久久精品蜜桃 | 97成人在线免费视频 | 日本韩国精品在线 | 国产一区二区精品 | 久久免费的精品国产v∧ | 91成人黄色 | 在线日韩中文字幕 | 成人黄色一级视频 | 99精品视频免费观看视频 | 国产特级毛片aaaaaaa高清 | 亚洲在线成人精品 | 国产成人久久77777精品 | 超碰在线最新网址 | 久久99精品久久久久蜜臀 | 日韩成人黄色 | 一本色道久久精品 | 五月激情丁香婷婷 | 91精品夜夜 | 久久婷婷色综合 | 亚洲狠狠 | 日韩在线免费视频观看 | av综合站 | 狠狠狠色丁香综合久久天下网 | 五月婷婷另类国产 | 美女禁18| 天天色综合天天 | 久草精品免费 | 奇米影视777影音先锋 | 六月色播| 国产精品v欧美精品 | 亚洲永久精品一区 | 亚洲自拍偷拍色图 | av一区在线 | 成人在线视频免费观看 | 亚洲一级电影 | 欧美一区日韩精品 | 成人免费电影 | 91视频下载 | 夜夜操天天摸 | 免费成人在线视频网站 | 国产一级免费观看视频 | 亚州免费视频 | 中日韩免费视频 | 午夜精品久久久 | 亚州精品成人 | 99欧美精品| 韩国精品视频在线观看 | 国产精品高清在线观看 | 久99久精品视频免费观看 | 亚洲波多野结衣 | 天天弄天天干 | 中文字幕av专区 | 911国产精品| 国产999视频 | 99精品久久99久久久久 | 人人揉人人揉人人揉人人揉97 |