青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

天秤座的唐風

總會有一個人需要你的分享~!- 唐風 -

  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
  13 隨筆 :: 0 文章 :: 69 評論 :: 0 Trackbacks
共2頁: 1 2 
另,正在做提案去error-code化,加exception的體系設計。
但是做嵌入式,大家都很敏感,所以還是要先把現在所用的平臺和編譯環境中,exception空間和時間開銷分析清楚給客戶。目前還在整,感覺時間開銷上完全沒有問題(特別是normal case中,異常時其實慢一點也無所謂了,因為設計中的異常真的是非常非常地異常?。?,但代碼膨脹還是有點點擔心(因為存儲空間比較有限)。不知道 MS 是不是有這方面的數據?特別是WinCE500方面……
異常處理這段深有同感。

現在做的系統中流用了大量的C代碼,全部是error-check方式。

只能說,用error-check大部情況下只是“掩耳盜鈴”而已,Check一下函數出錯了就打個屏,完全沒有想過是否可能恢復,如何恢復,也沒有辦法想,error-code根本就傳不出去。

所以軟件“品質”就成了“測出來的”,而不是設計出來的了,因為設計的時候根本就無法處理這么復雜的層次的函數調用帶來的錯誤碼,而且中間只要有人不傳遞就完蛋了。
信了樓主的體驗,升級了工程(當然,偶是下的“試用”)
智能提示很慢,和VC助手的功能相比差距還是很明顯啊

不過2012啟動還是很快的。
雖然如此,還是受不了沒有助手的生活。
果斷退回
@chaogu
郁悶的是地大被定義為三流~而你還來一個“我是三流學校的怎么樣”
我可沒有因為自己是地大的而有覺得有什么好郁悶的。我還是很懷念地大的生活的,呵呵。
看了你的自我介紹,中國地質大學的校友郁悶地飄過~~~
@Tanky Woo
用Windows Live Writer寫,再發布,有圖的文章尤其方便撒~!
@空明流轉
興趣是有,圖形知識幾乎為0.
好吧,我申請去給你們打打雜~!
看你們收不?
造3D圖形引擎吧!
re: 關于C++之“復雜” 唐風 2010-07-10 21:29
不記得是在哪里看到的了,大意是:
一個優秀程序員要掌握的知識無論使用哪些語言都是差不多的,不同的地方在于:使用C++的話,你必須把它們大部都學會了,你才能動手做一些有實際意義的東西,(否則你將面臨著一大堆的陷阱)。而Java/C#等,則可以把學習的“時間”平攤,在你沒有“完全”掌握這些知識之前,你已經可以做一些實際的東西出來了(雖然這個時候還稱不上是“優秀”的程序員)。
我覺得,C++所謂的復雜性,大約就是這樣。
PS:把Java/C#放在這里并不想引起爭論。但是我想,如果世界只有一門語言的話,大概沒有誰會“抱怨”它的復雜性。要說它復雜,那是比起其它語言的“感覺”。所以,不比較是不可能的……好糾結
re: 代理服務器的簡單實現 唐風 2010-06-28 08:43
很少見到博客正文用楷體的,呵,不過博主的排版還是很漂亮的。
文章也讓我受教了。謝謝!
哈哈,好,這個系列會很有價值的樓主!
確實題目不清楚。呵呵
re: 模仿學習的困局 唐風 2010-06-09 23:24
我只是模仿個 AGG ,亦有同感了。

re: boost庫之Assign 賦值庫 唐風 2010-06-06 15:15
唉,還是希望出現語言級別的“糖”,還是希望有 initializer-list ……
re: 算法導論評 唐風 2010-05-29 22:34
這篇書評寫得非常棒??!
不過我覺得《算法導論》中的偽碼還是挺漂亮的,呵呵。

可惜我只看完圖算法就停下來了,習題基本沒做,買櫝還珠了,主要是沒有你這樣的毅力。PF你~!

gay……呵呵,搞錯詞了不老大~!

多用用標準庫就更好了。


re: 對 C++ 歷史的個人觀點 唐風 2010-04-07 20:50
@OwnWaterloo
很精彩,呵呵。
關于allocator這段,我看得很仔細,因為,在TopLanguage里,有一個主題是《{技術}{C++} 突然有一種想法:將文本文件讀入vector可以跨過push_­back()嗎》
http://groups.google.com/group/pongba/browse_thread/thread/ebb85b7e927c1af9/aebc1741ed60b2f5?hl=zh-CN&lnk=gst&q=%E7%AA%81%E7%84%B6%E6%9C%89%E4%B8%80%E7%A7%8D%E6%83%B3%E6%B3%95%EF%BC%9A%E5%B0%86%E6%96%87%E6%9C%AC%E6%96%87%E4%BB%B6%E8%AF%BB%E5%85%A5vector%E5%8F%AF%E4%BB%A5%E8%B7%A8%E8%BF%87push_back()%E5%90%97#
我在里面表達了與OwnWaterloo同樣的觀點,但我的認證和說明膚淺多了。我剛剛還特別翻了下,發現當時的“辯方對友”居然正是樓主,世界太小了(樓主也是牛人,哪都見得到滴說)。

在這個問題上,我與OwnWaterloo相同,并從他的回答中又學到不少東西。我喜歡這樣的“技術論戰”,因為它總是能讓人進步,呵呵。向樓主,和OwnWaterloo學習。

re: [翻譯]高效使用auto_ptr 唐風 2010-04-07 20:32
@giscn
給些例子或是一些鏈接不咧
我贊同本文的觀點,但同時很想知道“遠離 auto_ptr” 的理由是否也能說明我。

謝謝了。

re: 成熟 余秋雨 唐風 2010-04-04 13:48
@abilitytao
余的《文化苦旅》和《山居筆記》都灰常好看,高中的時候曾經很迷,哈哈。
現在覺得他更像娛樂圈的人了……
re: 成熟 余秋雨 唐風 2010-04-03 22:43
我記得我背過這段,呵呵。
re: 蘇東坡突圍 —余秋雨 唐風 2010-04-03 22:42
《山居筆記》里的吧
俺也挺喜歡看,高中時候的事兒了……唉,一恍7、8年。

@Uniker
看樣子您像是只看了標題沒看內容……

re: MFC中一個危險的Bug 唐風 2010-03-28 11:17
1. 遺留代碼不可替代
2. 升級開發環境的預算和必要性
3. 有決策權開發人員的“技術慣性”
使得VC6到現在還這么有“生命”力。感覺就像IE6一樣,哈哈,有種種的不好,可偏還是有那么多用戶。

反正我是等VS2010出來就準備XX的,嘿嘿。

哈哈,這個猛?。?

re: 虛驚一場的海嘯 唐風 2010-03-08 05:20
哈哈,期待下篇 Bug 解析?。?
@陳梓瀚(vczh)
陳版 .net ?
哈哈~~~~
re: C++雜感 唐風 2009-12-25 07:36
“像貴國的等級考試這類的考察語言偏僻細節上”?
請問閣下哪國人?

路過……
:)
唉,明修棧道,暗渡陳倉。
@Vitacy.Tan
話又說回來,在你的做法中,并沒有直接在 function pointer 和 void* 之間進行轉型,而是為 function pointer 創建(new)了一個對象,賦給 void*,這樣做我感覺是沒有問題的,這時候 void* 指向的仍然是一個“對象”,呵呵。
但這么做可能在“效率”上不如直接備份 function pointer 。畢竟,創建時候的 new 和調用時的轉型加最后的 delete,都比直接存 function pointer 負擔大。但這樣做獲得了代碼上的一致性,我倒是挺喜歡的,呵呵(如果確實沒有“我所不知道的問題的話”)。
@Vitacy.Tan
在網上找了一下相關的資料,發現這個問題其實已經有了比較多的“討論”,還有專門論述的文章:
http://www.safercode.com/blog/2008/11/25/generic-function-pointers-in-c-and-void.html

簡而言之,就是:
不能 void* 和 void(*f)() 合并成一個,原因是對于 C 標準而言,這兩個“東西”并不保證一致,函數指針的大小可能比 void* (也就是指向數據的指針大小要大),可能會包含更多的信息,如果在這之間進行轉換的話,在某些平臺會產生未定義的行為(在 Windows 平臺下,這樣做是沒問題的,參考http://stackoverflow.com/questions/1867698/casting-a-void-pointer-data-to-a-function-pointer 中的回復)。因此,這么做是為了可移植性的考慮。

相關原文如下:
Why can’t we use void* for a Generic Function Pointer?
This is because a void* is a pointer to a generic “data” type. A void * is used to denote pointers to objects and in some systems, pointers to functions can be larger than pointers to objects. So, if you convert amongst them, you’ll lose information and hence, the situation would be undefined and implementation dependent. Most compilers won’t even warn you if you convert between them but some might error out, if you try to call such a void * to function pointer converted. But even they might fail to alert you, if you take care of typecasting the call perfectly (Enclose in parentheses before function call brackets). And then, one fine day, you’ll try to compile and run your program on one of the aforementioned systems, and then keep on wondering why your program segfaults.

Note: C++ does allow this “conditionally” which means that such a conversion is allowed but a compiler is not bound to implement this feature, which again makes its usage circumspect.

另外,我還是不太明白,function pointer 可能攜帶的其它信息是什么,呵呵,再查查嘍。

謝謝 Vitacy.Tan 的回復,讓我能更深入的了解這方面的知識。
嗯,有人能參與討論就是好啊,希望大家多指點。



re: ACM主要算法 唐風 2009-12-12 23:45
謝謝你的總結??!
真是太好了,正在找這樣的資料,呵呵

C++0x 中貌似可以。
確實是一種很合理也很有用的初始化方式。
@Vitacy.Tan
嗯,試過了你的代碼,確實在我的例子的情況下,你的做法沒有問題而且更簡潔。呵,說真的,第一次看到 new 一個 function pointer 對象,有點詫異。后來想通了,function pointer 也不過就是一個 pointer 而已。
但 boost::function 中確實對兩者進行了區分對待,而且考慮了更多的情況情況:
/**
       * A buffer used to store small function objects in
       * boost::function. It is a union containing function pointers,
       * object pointers, and a structure that resembles a bound
       * member function pointer.
       
*/

      union function_buffer
      
{
        
// For pointers to function objects
        mutable void* obj_ptr;

        
// For pointers to std::type_info objects
        struct type_t {
          
// (get_functor_type_tag, check_functor_type_tag).
          const BOOST_FUNCTION_STD_NS::type_info* type;

          
// Whether the type is const-qualified.
          bool const_qualified;
          
// Whether the type is volatile-qualified.
          bool volatile_qualified;
        }
 type;

        
// For function pointers of all kinds
        mutable void (*func_ptr)();

        
// For bound member pointers
        struct bound_memfunc_ptr_t {
          
void (X::*memfunc_ptr)(int);
          
void* obj_ptr;
        }
 bound_memfunc_ptr;

        
// For references to function objects. We explicitly keep
        
// track of the cv-qualifiers on the object referenced.
        struct obj_ref_t {
          mutable 
void* obj_ptr;
          
bool is_const_qualified;
          
bool is_volatile_qualified;
        }
 obj_ref;

        
// To relax aliasing constraints
        mutable char data;
      }
;

在下淺薄,不能完全明白其中的道理,還請路過高人指點。
 

 
記得以前也做過樣的的東東,貌似是自己第一個PC程序呢,哈哈。
用C從頭做起,能練練數據結構(主要是鏈表)。用C++/Java/C#等容器類,那就沒什么搞頭了,呵呵

re: STL Vector 的遍歷刪除. 唐風 2009-12-08 18:43
>code3 錯誤的原因為, vecFiles.erase(it_pos); 當前的it_pos已經被刪除
>了, 再下一次循環的時候 it_pos++, 訪問非法內存..

>然后回過頭來看code1, vecFiles.erase(it_pos++); 在當前的it_pos已經被
>刪除的時候, it_pos已經指向下一個位置了. 雖然這里邏輯上是錯誤的. 但是利
>用c語法的特性產生了一個正確的結果, 算是一個技巧. 不算是一門技術.

我對這種的說法有不同看法:
it_pos無所謂刪除不刪除,it_pos 的行為就像指針一樣,指針本身不會被刪除,被刪除的是指針指向的內容。我想樓主可能對迭代器失效的理解有偏差(建議在網上查一查相關的資料再看看)
我覺得,code1、2、3沒有什么本質區別,都有可能產生迭代器失效的問題。
一個原則:對vector只要做了刪除或是增加動作,就要示迭代器已經無效,必須重新從vector對象獲取新的迭代器的值,而不能用臨時變量、后綴自增等方法……
remove_if+erase的版本才是可讀性最好且沒什么問題的。

個人愚見,請博主笑納……



@陳梓瀚(vczh)
好吧,我只能說,是你自己在 cppblog 的鏈接中列出來的。哈哈哈哈 :P
閣下愛好很廣嘛,編譯原理狂人(別人這么叫你的) + 漫迷 ……

嗯嗯,凡有回復必回訪是我的原則,哈哈,也是想通這這種途徑了解對方,多交些朋友



@Wang Feng
確實如你所言。謝謝你的回復。

說實話,“并行計算”這種高級貨,我還真沒玩過,嘿嘿。

嗯嗯,真心求教:
這方面有沒有比較好的已經成熟的做法(庫?)?能不能介紹一下?如果一個表達式比較復雜(比如有加減乘、有括號之類)有什么算法能正確地最優地根據可以并行的“行程”數來分配計算子過程?各子過程的之間的“通信”是怎么做的呢?會像一般“多線程”中的鎖機制那樣嗎(當然,我對鎖這東西的理解也限于“理論”范疇內,呵呵)?

PS:
剛才回訪了你的 blog,里面大多都是算法方面的東西啊,呵呵。向你學習 :D




@YESHG!
你也注冊一個博客園(或是cppblog)的帳戶唄
對評論和回復有郵件通知,這個功能挺好用的。
re: 聽Lippman講座 唐風 2009-12-05 19:56
【他只是謙虛地說:他只是對C++比較了解,在其他領域,他可能還不如在座諸位。】
光這一點就讓我肅然起敬。
@OwnWaterloo

operation proxy……

好形象啊,哈哈
你上篇的回復里就說到了這個呢,不過我是事后才認識到……:P

@YESHG!
謝謝老大支持!!

配合內聯 RVO,很多情況下這些臨時小對象也可以消失,你看看我上面回復中給的鏈接,MS 有說明……

至于不習慣模板,嘿嘿,吐啊吐啊就習慣了。:)

@陳梓瀚(vczh)
嗯嗯,好敏銳啊,你說得很對。
d=a+(b+c);
這種在這段程序里是會產生編譯錯誤的……

這個模板類確實非常的不完善,對于一個“可用”的ExpXXX的話,應該要是左右操作數都需要泛化的。為了進一步的重用,可以再泛化操作類型(加減乘)。

這篇文章里我想把重點放在“它可以消除臨對象上”,為了能更“簡單”地說明ET,所以寫的例子很簡陋,不過我想大概的做法已經點到了。

完善的做法比較復雜,所以我認為這個庫設計都用的武器,寫應用層邏輯時也許不太會用到?(調試、維護都不容易啊……)

下面有一篇文章,從頭開始一點一點地完善這個ExpXXX,講解得非常細~,每一個改善是為了什么?。ú贿^是日文的,嘿,YESHG,為你準備的!中文英文的應該也有,不過我沒搜到這么細致的,呵呵,不過對《C++templates》里的例子應該也夠看了。)
http://homepage1.nifty.com/herumi/prog/prog81.html#MOTIVATION

PS:
至于那個囧類型,我還沒看到有什么好的做法。因為要讓左右操作數接受不同的表達式(a,a+b,a+b*c等等等等)才可用,所以操作數的“類型”不能固定,ExpPlus<I>+ExpPlus<I>==ExpPlus<I>,感覺行不通。你有什么好做法呢?

@OwnWaterloo
呃,不好意思,我是想說“盜版”,呵呵
回想,DB 確實容易聯想成 DataBase,那這句話就不好理解了……
It's my fault :)


@non
是有聽這么說的。
不過我總覺得:不鼓勵或是要求禁用 STL 的組織,肯定得要有牛人實現一套更合適于他們工程的基本類庫,也許他們只是不想要通用的 STL 實現,但 STL 做的那些事,始終還是需要有“人”來做的。
話說 VC6 還真有點像 IE6 ,擁有極高的使用率,但又不能完全支持“標準”,呵呵,不過 VC6 可以原諒,畢竟開發的時候 C++ 標準還沒出臺嘛……

唉,托 D 版的福,我可是每發布一個新版本就立即升級的,呵呵,不過在公司做項目又沒辦法了,得聽公司技術決策者的,呵,而我們公司那個大牛,MS 習慣 VC6 ……。

我也很期待 C++0x 呢,對 C++ 很有感情,哈哈

對于
【沒有右值引用,也可以消除很多臨時變量,只是編程很復雜……】
是啊,但通過這些途徑,完成了一些“目標”之后仍然會覺得心中有缺憾,不能用最優雅的方式解決問題的時候總會不舒服,
就像 Expression Template 被開發出來,我想也是人們想有效率,又想直觀的結果吧……

PS:
您還真是快啊~~我這才發布,你就來了。神仙~
re: 函數調用棧初探 唐風 2009-11-27 19:49
謝謝你的提醒啊~!
呵呵,這兩天跑去看 WinDbg 的擴展命令去了,企圖看能不能通過寫 WinDbg 的擴展來達到目的……有點頭大的說,哈哈。

RednaxelaFX 這個“家伙”也是個神人,我在 JavaEye 上第一次發表這篇文章的時候就有他的回復,相信是同一個人,嘿嘿。(他在 JavaEye 上有關于 JavaScript 運行機制的文章,看得出是很有幾把刷子的)

跑來跑去,發現世界挺大,圈子確挺小,哈哈哈哈 :P

嗯嗯,是夠長的,明天早起好好看,嘿嘿?。?

PS:
>>你本來寫的是【quote】吧? cnblogs確實很偏心,cppblog確實是穿小鞋的……
確實是的,唉……
這段時間在通過 CSS 和 JS 腳本在配置 cnblogs 的博客,已經比較滿意了,嘿嘿。
@OwnWaterloo
是的啊,正好我也在“回味”,哈哈,準備作為那篇 SFINAE 隨筆的補充,加一些 enable_if 的筆記……

對于 enable_if 的還有一個比較舒服的功能點是:
boost::disable_if<boost::is_class<T>, DataFromFile&>::type
這個可以放返回值的位置上生效,并且讓條件滿足時使用DataFromFile&作為返回類型,其它情況下讓它 Substitution fail,而不對程序產生“負面影響”。

真是非常體貼啊,因為在這個地方,運算符重載的參數個數是有限制的,不能隨意增加,所以在這里不能直接在參數表中加 T::* p = 0 之類的東西來運用 SFINAE。


re: 函數調用棧初探 唐風 2009-11-22 12:54
>>問題就在于這個前提是沒有保證的。編譯器處理尾調用時可以使用jmp而不用call。這種情況在msvc和gcc上都存在。
哦哦,原來還有這種情況,呃,如果是在 debug 模式下,優化全關呢?嗯,找個時間我再也看看。

>>或者其他profile工具是怎么做的?
這倒是,以前沒想到這個可以做參考呢,嗯,謝謝提醒。


真是獨學而無友,則孤陋而寡聞。

PS:
一連兩天看到你搶占沙發長篇回復,果然是神人啊……
什么時候我夠格能和你“論戰”一番而后雙方受益,倒是可以“含笑九泉”了,:)

學習中……

re: 函數調用棧初探 唐風 2009-11-21 17:39
@OwnWaterloo
調試器沒有符號表的情況下應該也能工作,但給出來的信息是“人類不可讀”的。

一直在找一種方法,希望能實現這樣的需求:
給出兩個斷點,當程序停在第二個斷點的時候,希望得到在之期間被調用過的函數的列表(按時間順序)。
當然,希望這個方法是非侵入性的。
棧信息顯然是不夠的,某一時刻的棧信息只有被斷點函數的上層函數信息,但可以肯定的是每個函數調用都會有壓棧出棧,能不能設置一個類似“勾子”的東西,在CPU進行壓棧的時候記錄下某些信息呢?

@OwnWaterloo
謝謝推薦,說起來,C++ 的書讀了不少,不過 BS 老爺子的《the c++ programming language》還真是沒看過……慚愧,回頭找來啃一啃。
《標準C++輸入輸出流與本地化》這本書看了前兩章都看不下去了,實在有點無趣,倒是《C++ standard library》中IO部分看幾回,但本地化還是沒搞明白。

PS:
說到 log 模塊,覺得還是蠻有用的,就現在手頭上做的項目來說,如果沒有這東西,所有模塊的 log 信息不受任何控制的話,光是這些 log 的通信就能把機器卡死(因為機器與PC的是串口連的)……
覺得對于大一點的軟件(雖然我只接觸了一個)來說,系統自身的調試機能和控制都蠻重要。
共2頁: 1 2 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲国产网站| 亚洲专区一二三| 免费成人高清| 久久久.com| 久久免费视频网站| 欧美成人在线影院| 欧美日韩成人精品| 国产精品日韩久久久久| 狠狠色狠狠色综合| 亚洲黄色在线| 亚洲午夜久久久久久尤物| 亚洲免费在线观看| 久久久精品国产免大香伊| 欧美91大片| 夜夜夜精品看看| 久久成人国产| 欧美国产欧美亚洲国产日韩mv天天看完整 | 校园春色综合网| 久久久国产一区二区| 欧美成人免费在线观看| 国产精品捆绑调教| 亚洲精品久久久久久下一站| 亚洲伊人久久综合| 奶水喷射视频一区| 亚洲无线视频| 男男成人高潮片免费网站| 国产精品乱人伦中文| 亚洲精品1区2区| 久久久噜噜噜久久| 亚洲美女中出| 浪潮色综合久久天堂| 国产精品免费看久久久香蕉| 1024亚洲| 久久国产视频网| 亚洲久久一区二区| 久久九九久精品国产免费直播| 欧美三日本三级少妇三2023| 亚洲第一在线| 美女91精品| 欧美一级播放| 国产精品爽黄69| 亚洲午夜在线观看视频在线| 欧美大片免费观看| 亚洲欧美综合网| 欧美午夜女人视频在线| 久久激情视频久久| 亚洲国产精品第一区二区| 亚洲精品一区二区三区福利| 久久激情中文| 国产精品久线观看视频| 亚洲日本中文字幕| 免费不卡在线观看| 欧美在线综合| 国产一级精品aaaaa看| 欧美中文字幕在线视频| 亚洲欧美日韩国产综合| 国产精品一卡| 欧美在线1区| 亚洲天堂第二页| 91久久精品国产91性色tv| 久久久久久久高潮| 久久久噜噜噜久噜久久| 国产视频一区在线| 久久不射中文字幕| 欧美一区二区免费| 狠狠色2019综合网| 美女久久网站| 农夫在线精品视频免费观看| 亚洲人www| 亚洲国产你懂的| 欧美伦理91| 中文一区二区| 亚洲一区二区视频| 国产亚洲欧美日韩在线一区| 久久久久成人网| 久久亚洲一区| 99精品国产福利在线观看免费| 亚洲国产精品va在线看黑人| 欧美日韩视频一区二区| 欧美一级欧美一级在线播放| 久久高清福利视频| 99精品视频免费观看视频| 中国日韩欧美久久久久久久久| 国产女人水真多18毛片18精品视频| 久久av资源网| 欧美大片第1页| 亚洲欧美日韩在线播放| 欧美在线视频免费播放| 亚洲人永久免费| 亚洲网站视频| 亚洲电影天堂av| 一区二区三区日韩| 在线欧美福利| 中日韩男男gay无套| 一区在线影院| 99精品久久久| 激情视频一区| 国产精品99久久久久久久女警| 国产亚洲精品aa午夜观看| 亚洲国产精品ⅴa在线观看| 国产精品乱看| 亚洲国产清纯| 国产一区二区按摩在线观看| 最新日韩在线| 狠狠色2019综合网| 亚洲一区二区三区免费观看 | 免费观看欧美在线视频的网站| 欧美日本在线视频| 亚洲一区bb| 久久综合一区| 欧美一区二区日韩| 欧美日本中文字幕| 欧美黄色免费网站| 国产一级一区二区| 亚洲一区二区三区免费在线观看| 亚洲黄网站在线观看| 欧美一区二区视频在线观看| 中文一区二区| 欧美日韩第一区| 亚洲电影av在线| 韩国av一区二区三区四区| 一本色道久久88精品综合| 亚洲精品久久在线| 久久综合久久综合久久| 久久婷婷国产综合尤物精品| 国产精品中文字幕在线观看| 一区二区三区视频在线播放| 99精品国产在热久久婷婷| 美女黄毛**国产精品啪啪| 久久久久久久久久久一区| 国产精品自拍网站| 亚洲伊人网站| 午夜精品美女自拍福到在线| 欧美三级乱人伦电影| 日韩视频在线一区| 一区二区三区视频在线看| 欧美精品亚洲| 亚洲最新视频在线播放| 一区二区三区视频在线播放| 欧美日韩一区二区高清| 亚洲精品国产精品乱码不99| 日韩小视频在线观看| 欧美日本不卡高清| 日韩一级片网址| 亚洲欧美综合| 国产偷国产偷亚洲高清97cao | 亚洲小说区图片区| 午夜亚洲性色视频| 国产伦精品一区二区三区免费迷 | 国产欧美日韩麻豆91| 欧美自拍丝袜亚洲| 噜噜噜躁狠狠躁狠狠精品视频| 尤物yw午夜国产精品视频| 美女日韩在线中文字幕| 亚洲国产精品嫩草影院| 一区二区欧美激情| 国产精品女人久久久久久| 久久国产精品99国产| 欧美高清在线视频观看不卡| 99国产精品自拍| 国产精品永久入口久久久| 久久精品夜夜夜夜久久| 亚洲激情一区| 香蕉免费一区二区三区在线观看 | 久久精品伊人| 亚洲第一网站免费视频| 欧美日韩亚洲一区二区三区四区| 鲁大师成人一区二区三区| 欧美福利一区| 亚洲综合清纯丝袜自拍| 欧美另类高清视频在线| 亚洲午夜激情网站| 老司机亚洲精品| 一本一道久久综合狠狠老精东影业| 欧美三区不卡| 久久免费视频这里只有精品| 亚洲精品一区二区三| 久久精品一区二区国产| 91久久黄色| 国产精品青草综合久久久久99 | 久久亚洲综合色| 亚洲精品综合| 久久久久久久成人| 中文一区二区| 亚洲黑丝在线| 国产女主播视频一区二区| 女生裸体视频一区二区三区| 亚洲一区在线观看视频| 亚洲国产精品久久91精品| 久久精品视频在线播放| 亚洲午夜激情网站| 最新国产成人在线观看| 国产性做久久久久久| 国产精品久久97| 欧美日韩国产电影| 欧美风情在线| 欧美 日韩 国产一区二区在线视频| 欧美一级大片在线免费观看| 亚洲午夜国产一区99re久久| 亚洲毛片一区|