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

沐楓小筑(C++)

愛老婆,要比編程多一點...

  C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
  18 Posts :: 0 Stories :: 84 Comments :: 0 Trackbacks

公告

沐楓的個人主頁

eoool.com生成

eoool.com生成

常用鏈接

留言簿(8)

我參與的團隊

搜索

  •  

積分與排名

  • 積分 - 57528
  • 排名 - 404

最新評論

閱讀排行榜

評論排行榜

2007年12月15日 #

今天安裝svn服務器。上官網下載,發現windows下有一個稍微好用些的svn服務器。
下載地址: http://www.visualsvn.com/server/

這個東西有幾個特色:
1. 安裝和配置過程很方便(最大優點之一)
2. 自帶apache/ssl/mod_dav_svn/...等模塊,既小巧,又簡單,也安全一些。
3. 自帶MSC管理工具,可以創建用戶、用戶組,還可以管理多個源碼庫,以及配置各個路徑的訪問權限(最大優點之二)

通過上面下載地址,可以看到截圖。不過,截圖的版本稍低點。目前的版本是1.01。核心是Svn1.45,與官方同步。其實它也是為官方提供windows移植版的網站之一。

需要注意的是,這個網站提供的VisualSVN Server是免費的,而客戶端VisualSVN是收費的。我們可以不用該客戶端,客戶端還是用TortoiseSVN/AnkhSVN之類的。 VisualSVN客戶端從介紹上看,與AkuhSVN是差不多的,只不過功能上略有優點。定價是$49。
posted @ 2007-12-15 18:34 沐楓 閱讀(1598) | 評論 (1)編輯 收藏

2007年11月30日 #

    從VC2003到VC2005,一直有一個很奇怪的問題。
    如下的代碼:
    short s1 = 0;
    
short s2 = 2;

    s1 
+= s2;
    在這兩個編譯器的 /w4 四級警告打開的時候,就冒出以下的警告來:
warning C4244: “+=”: 從“int”轉換到“short”,可能丟失數據
    為了消除這個警,只能將 += 拆成 = 和 +,如 s1 = s1 + s2。

    終于,這個問題在VC2008消失了。
posted @ 2007-11-30 12:50 沐楓 閱讀(2294) | 評論 (7)編輯 收藏

2007年10月17日 #

    沒想到漢語編程又有人開始網上對罵了。一方指另一方騙人,一方吹自已偉大。
    今天群里頭有人又把它翻出來了,剛好無聊,也就發明了一個漢語編程語言,集成到visual studio 2005的IDE中,名字就叫漢語編程++,歡迎同樣無聊的朋友試用。
#include "常用頭文件"


整數 主函數(整數 參數數量, 字符指針 參數 是數組)
{
    整數 變量1 賦值為 
3;
    如果(變量1 大于 
0)
    {
        打印(
"可以中文編程\n");
    }

    系統命令(
"Pause");
    返回 
0;
}


    運行結果就是:“可以中文編程”
    語法呢,就是C++一樣的,那個“常用頭文件”的內容如下:
#define 整數 int
#define 如果 if
#define 大于 >
#define 打印 printf
#define 系統命令 system
#define 賦值為 =
#define 主函數 _tmain
#define 字符指針 _TCHAR*
#define 是數組 []
#define 返回

#include 
<tchar.h>
#include 
<iostream>

    唯一美中不足的是,#include暫時無法漢化。于是勸群里的人用這個寫寫情書,結果,沒人響應...
    不過,#include 可以在項目屬性中去掉它(C++高級選項:強制包含),或是指定編譯命令參數 /FI "常用頭文件" ,這樣就可以去掉上面的“#include "常用頭文件"”了。  
-----
以上程序在VC++2005上編譯并運行通過。

附群朋友的程序:
高興不<>  19:54:59
還真有這么玩的啊
沐楓(Liny)()  19:55:02
各位朋友,咱們提供一個頭文件,于是全中國人都可以用vc++2005來進行中文編程了。
風在奔跑()  19:55:05
我從來沒這么玩過.
沐楓(Liny)()  19:55:19
玩玩吧,挺好玩的。
風在奔跑()  19:55:28
干脆把所有函數用中文define成一個中文編程庫.
沐楓(Liny)()  19:55:30
不就是一堆#defing
沐楓(Liny)()  20:13:43
用這個寫情書吧各位。
西瓜()  20:13:57
女朋友不懂程序怎么辦
TLAH()  20:13:58
這樣的情書...球球不會喜歡的
高興不<>  20:14:04
。。。情書里就一個彈出的對話框"欲知詳情,請看代碼"
西瓜()  20:14:17
球球又沒出現

TLAH()  
20:19:00

#define 趁還 while
#define 那個啥 int
#define 總的來說 main
#define 買 cin
#define 賣 cout
#define 進 >>
#define 出 <<
#define 拜拜了 return
#define 去掉 -=
#define 等于 =
#define 屁 100e4
#define 我說 (
#define 是吧 )
#define 啊 a
#define 那么就 {
#define 得了 }
#define 呀 ;
#include 
<iostream>
using namespace std;

那個啥 總的來說 我說 那個啥 啊 是吧
那么就 那個啥 有錢 等于 屁 呀
趁還 我說 有錢 是吧    那么就
那個啥 多少 呀 買 進 多少 呀 賣 出 多少 呀 有錢 去掉 多少 呀
賣 出 多少 呀 得了
拜拜了 啊 呀 得了 

高興不
<>  20:19:30
最有語義的中文編程誕生了 



posted @ 2007-10-17 20:22 沐楓 閱讀(4135) | 評論 (38)編輯 收藏

2007年9月27日 #

   C語言確實很優雅,整個語言的設計簡潔一致。而在C++中,有一個讓人詬病的問題就是變量初始化的不一致性。
   C語言中的初始化,都是用花括號進行,簡單美觀:

int array[] = {1,2,3,4,5};
struct Point point = {23};
struct Point arrPoint[] = 
{
  {
2,3},
  {
4,5},
  {
6,7}
};

   C++自然也兼容了C語言的初始化機制。然而,C++的Class乃至STL都不支持。它們要用不同的方式來初始化, 甚至根本不能夠直接初始化, 只能使用運行時的賦值。
   比如Class:
class Param
{
public:
  
int Age;
  
int Value;
private:
  
int Level;
};

Param param 
= {2,3}; // ERROR
Param param = {2,3,4}; //ERROR
   無法初始化。而如果不初始化的話,所有的成員而處于無政府狀態,這顯然很不讓人放心。于是,C++提供了專門用于Class的初始化方式--構造函數:
class Param
{
public:
  Param(
int x, int y)
    : x_(x), y_(y)
  {}
  Param()
    : x_(
0), y_(0)
  {}
private:
  
int x_, y_;
};

Param param(
1,2);
//
Param param;
   有了構造函數,可以在構造函數的初始化列表中對成員進行初始化。可是很明顯,這里頭還是有一個陷阱,默認構造初始化和非默認構造初始化的調用方式是不一致的。默認構造函數不能用括號來調用,否則編譯器將會發瘋:
Param param();
   它會把上面的語句看成是函數聲明,而后面調用的時候就會出錯,而錯誤信息可能會讓你抓狂一下。但是這樣也就算了,偏偏 new 可以接受有括號和沒括號兩種寫法:
Param* p1 = new Param;
Param
* p2 = new Param();
   再來說說初始化列表。初始化列表,事實上,也只能支持簡單的標量類型,諸如int,bool,指針之類的;復雜點的,如數組、結構,不好意思,不支持--只能在構造函數體中進行賦值。還有一個很迷糊初學者的問題是,成員初始化的順序僅依賴于成員定義的順序,而不是初始化列表中的順序。

   再比如STL容器,這下好象更慘,連構造函數都幫不上忙了,除了初始化一個空的容器,或是復制一下別的容器,我們只能做用默認構造函數進行初始化。我們拿數組和vecotr做個比較:
// 數組
int arr[]={1,2,3,4};
// vector
vector<int> iarr;
// 必須在某個函數中賦初值
void init()
{
  
for(int i = 1; i <= 4++i) 
    iarr.push_back(i);
}

   再復雜一點的數據結構,那單單賦值程序就要寫上老長,而且還不好看。還要記得調用。這對于僅僅是簡單的設置一些初值的用途來說,太過于煩瑣。

   橫向比較,這次好象C++還不會太落伍,只有C和動態語言提供了初始化特性,其它支持OO高級語言好象都是學C++的。如Java, C#(注C#3.0開始提供初始化功能)...
   
   C++能不能做到簡潔一致的實始化呢?
   Boost的assign庫做了許多有益的工作。使用assign庫,至少現在可以初始化了:
vector<int> arr = list_of(1)(2)(3)(4);   

typedef boost::tuple
<int,std::string,int> tuple;
vector
<tuple> v = tuple_list_of( 1"foo"2 )( 3"bar"4 );

map
<int,int> next = map_list_of(1,2)(2,3)(3,4)(4,5)(5,6);

stack
<string> names = list_of( "Mr. Foo" )( "Mr. Bar")( "Mrs. FooBar" ).to_adapter();
   如果是賦值,也可以簡略很多:
vector<int> v;
+= 1,2,3,repeat(10,4),5,6,7,8,9;
// v = [1,2,3,4,4,4,4,4,4,4,4,4,4,5,6,7,8,9]
  不過,也僅能如此了。assign經過許多努力,也僅能支持容器的初始化,而且還不夠漂亮。

   C++0x已確定提供與C一致的初始化功能。 Initialer lists Initializer Lists for Standard Containers Initializer lists WP wording 等草案就是為了這個目的服務的。
   如果使用C++0x,那么程序的初始化將變得清晰和一致:
complex<double> z = {1,2}; 
//
complex<double> z {1,2}; 
// 初始化中,有等號和無等號都是允許的,下同。
+= {2,3};

int a = {1}; 

new vector<string>{"once""upon""a""time"}; 

f( {
"Nicholas""Annemarie"} ); // 參數是兩個元素的列表

return { "Norah" }; // 返回只有一個元素的列表
 
int* e {};  // 初始化為0或NULL指針

map
<string,int> anim = 

  {
"bear",4}, 
  {
"cassovary",2}, 
  {
"tiger",7
}; 

   這好象是C++欠了十多年的債吧。
   
posted @ 2007-09-27 17:39 沐楓 閱讀(2726) | 評論 (6)編輯 收藏

2007年9月26日 #

    一直在使用C/C++,對于循環語句while、do while、for,對于for情有獨鐘,因為其簡潔、清晰、靈活。訪問數組類型的變量,只有for寫出來的語句是最易于閱讀的,如:
int arr[N] = {/**/};
for(int i = 0; i < N; ++i)
  printf(
"arr[%d] = %d\n", i, arr[i]);

    然而,這種情況,到了STL時,就有些變味了:
for(vector<MyClass>::const_iterator iter = m_vecData.begin(); iter != m_vecData.end(); ++iter)
{
    
if(!iter->IsBusy())
        iter
->DoSomeThing(param);
}
    這么長的一個for,不再給人一種清晰的感覺了。或許因為這個程序比較短,還沒有太大的感覺,當回頭去看自已的程序中,有不少這樣的寫法時,我就覺得一陣心煩。改改?
for(size_t i = 0; i < m_vecData.size(); ++i)
{
    
if(!m_vecData[i].IsBusy())
        m_vecData[i].DoSomeThing(param);
}
    不錯,還是簡單點好啊。但是因為這里舉的是vector的例子。如果是list或是別的什么容器,就行不通了。
    其它的高級語言,都提供了foreach或是for in語句,寫出來就很清晰:
foreach(item in m_vecData)
{
    
if(!item.IsBusy())
        item.DoSomeThing(param);
}
    C++是不是也可以這么簡單?好象STL中也有一個for_each,試著改寫一下:
struct IfNotBusyThenDoSomeThing
{
   
IfNotBusyThenDoSomeThing(const Param& param)
        : param_(param)
    {}
    
void operator() (const MyClass& item)
    {
        
if(!item.IsBusy())
            item.DoSomeThing(param_);
    }
private:
    
const Param& param_;
};

for_each(m_vecData.begin(), m_vecData.end(),
IfNotBusyThenDoSomeThing(param));
    不錯,for語句簡單了,但是卻多了IfNotBusyThenDoSomeThing的定義,這代碼可是多了好幾倍。要是每個循環都要來這么一下,我還不如直接寫for,要來得爽快一些。或許還有別的辦法:
vector<MyClass> notBusyClass;
remove_copy_if(m_vecData.begin(), m_vecData.end(), inserter(notBusyClass, notBusyClass.begin()), mem_fun_ref(
&MyClass::IsBusy));
for_each(notBusyClass.begin(), notBusyClass.end(), bind2nd(mem_fun_ref(
&MyClass::DoSomeThing), param));
    天哪,這種寫法好象更恐怖。而且,還不是每種情況都能用的:
    1. notBusyClass不能是vector<const MyClass&>,因為不能建立指向引用的指針。這就要求MyClass是可拷貝的。但就算是可拷貝的,有時候拷貝成本也是很高的。
    2. MyClass::DoSomeThing的參數不能是引用(我們常定義參數為:const Param&),因為不能定義引用的引用這種類型。
    3. 一旦出現錯誤,這錯誤信息會讓人極其昏倒。

    看來單靠標準C++是不成的。Boost的lambda的庫似乎很不錯,用用:
    for_each(m_vecData.begin(), m_vecData.end(),
        if_then( !bind(
&MyClass::IsBusy, _1),
            bind(
&MyClass::DoSomeThing, _1, param)));
    不錯,好了一些,但是還是很不好看。有沒有更好的?有,boost1.34新加入的BOOST_FOREACH:
BOOST_FOREACH(cosnt MyClass& item, m_vecData)
{
    
if(!item.IsBusy())
        item.DoSomeThing(param);
}
    Oh Yeah!

    好了,問題來了,為什么C++不直接在語言中提供foreach這個功能呢?
    個人認為,原因有幾點:
    1. C/C++除了數組外,沒有內置的容器,因此for語句足矣。
    2. 當C++進化到STL的時候,C++標準委員會根本沒空去考慮其它的。
    而其它高級語言之所以內置了foreach,就是因為它們一開始就提供了標準的容器庫和迭代/枚舉接口,因此提供foreach就順理成章了。

    現在,總算C++開始考慮,由模板引入而造成的代碼復雜性的問題,這的確是Cpper的福音。因此,一系列相關的提案被提交。牽涉到上面代碼中的提案就有: DecltypeLambda expressions and closures for C++proposal for new for-loop。  
    其中,最符合foreach要求的就是新的for循環。采用這個語句,上面的程序就可以這么寫:
for(const MyClass& item : m_vecData)
{
    
if(!item.IsBusy())
        item.DoSomeThing(param);
}

    不過,考慮到Decltype&auto提案已經被采納,新的for-loop就不知道能不能再被采納。因為使用Decltype&auto后,程序可以這么寫:
for(auto iter = m_vecData.begin(), end = m_vecData.end(); iter != end; ++iter)
{
    if(!iter->IsBusy())
        iter->DoSomeThing(param);
}
    似乎還是復雜點是吧?但是有了decltype&auto后,foreach功能可以用程序庫或宏的形式被模擬,BOOST_FOREACH就是這么做的。具體模擬的方式<<proposal for new for-loop>>提案寫的很清楚了。
    同時,假如lambda提案要是能再被通過的話,那就真的要開心了:
for_each(
  m_vecData, 
  
<>(item) extern(param)
  {
    
if(!item.IsBusy())
        item.DoSomeThing(param);
  }
);
    Cool!

    不過,VC++2008倒是增加了foreach功能,不過關鍵字不是foreach,而是for each,這個讓人有點郁悶.要用的時候最好用宏定義替換一下,免得可移植性上出現問題.

posted @ 2007-09-26 19:51 沐楓 閱讀(17019) | 評論 (11)編輯 收藏

2007年8月14日 #

關于.net方面,已經有許多人在關注了,我就關注一下,VC2008方面的新東西吧。
1. 暈倒,實證后,沒有增加tr1庫(僅增加了tr1::hexfloat).
2. 對于模板的>>符號,中間不再需要空格了。
3. 增加了for each(T& in A){}語法--這個不算是改進吧,估計是為了與.NET一起工作的產物。

這是今天下午初步掃一眼VC2008中Native C++后的感覺。
同時,標準庫已不再支持Win95/98/me和NT4了。

至于C++/CLR,一個重要的部份就是STL/CLR。
posted @ 2007-08-14 00:40 沐楓 閱讀(2964) | 評論 (6)編輯 收藏

2007年7月21日 #

這是入門級的隨筆,說的是函數對象的定義,使用,以及與函數指針,成員函數指針的關系。  閱讀全文
posted @ 2007-07-21 21:36 沐楓 閱讀(1273) | 評論 (4)編輯 收藏

2007年5月23日 #

boost 1.34 終于簡化了內嵌python的支持。
還支持了python2.5。
在中文windows下用vc8編譯boost的過程中,雖然仍有代碼頁字符警告,但是可以正常編譯成功,不再象1.33.1那樣造成正則表達式庫不修改源碼不能夠編譯通過的問題了。

下面的例子是從boost文檔中來的:
#include <iostream>
#include 
<string>
#include 
<boost/python.hpp>
#include 
<boost/ref.hpp>
#include 
<vector>
using namespace boost::python;

void greet()
{
    
object main = import("__main__");
    
object global(main.attr("__dict__"));

    
// Define greet function in Python.
    object result = exec(
        
"def greet(a):               \n"
        
"   return 'Hello %s from Python!' % a \n",
        global, global);

    
object greet = global["greet"];

    list lst;
    lst.append(
1);
    lst.append(
2);

    
object r = greet(lst);

    std::
string message = extract<std::string>(r);
    std::cout 
<< message << std::endl;
}

int _tmain(int argc, _TCHAR* argv[])
{
    Py_Initialize();
    greet();
    system(
"Pause");
    
return 0;
}

BTW:
  我用vc8編譯了全部的boost,然后,include加上lib目錄(內僅有lib和dll文件),合計2.68GB。

posted @ 2007-05-23 12:58 沐楓 閱讀(1098) | 評論 (0)編輯 收藏

2007年5月13日 #

昨天,boost終于發布了1.34版本。該版本新增加了幾個內容:
1. BOOST_FOREACH 宏
  一直對于C++的iterator枚舉元素造成的bad smell感到無奈,同時,許多語言都增加了foreach機制。終于,boost增加了這個枚舉工具。從此,C++的枚舉不再難看。如:

#define foreach BOOST_FOREACH
short array_short[] = { 123 };
foreachshort & i, array_short )
{
    
++i;
}

  BOOST_FOREACH宏大大改良了代碼可讀性。

  上述程序執行后,array_short的內容為:{2,3,4}。 

2. 狀態圖
  隨著工作流(WorkFlow)的流行,Boost也加入了狀態機。這對于程序結構的優化,將是一個好的補充。
3. Tr1
  隨著C++0x的進展,Tr1已經被通過。下一次Boost可能將增加Tr2了。
4. Typeof 庫
  C++0x中的auto的替代品。時常關心C++0x進展的人就會知道auto的作用,現在終于可以提前使用了。只是沒有auto漂亮,目前也僅能如此了,畢竟它現在能工作。
5. Xpressive庫
  屬于C++的正則表達式庫。以前都是用字串來保存正則表達式,現在終于可以用C++的表達式來寫正則了。

http://www.boost.org

posted @ 2007-05-13 22:24 沐楓 閱讀(1439) | 評論 (0)編輯 收藏

2006年8月8日 #

摘要:  在這里,我想向大家介紹如何進行Lua程序設計。

全文:Lua腳本入門
posted @ 2006-08-08 13:09 沐楓 閱讀(1864) | 評論 (0)編輯 收藏

2006年6月29日 #

用bitset進行2進制輸入輸出
posted @ 2006-06-29 10:14 沐楓 閱讀(2234) | 評論 (1)編輯 收藏

2006年4月6日 #

匯編語言沒有我想象的那么低級,它已經具備了不少高級語言的特性,代碼也變得清晰,層次清楚,易于維護了。
全文見:匯編語言的Hello World
posted @ 2006-04-06 12:05 沐楓 閱讀(1089) | 評論 (1)編輯 收藏

2006年3月13日 #

  C語言的指針相當的靈活方便,但也相當容易出錯。許多C語言初學者,甚至C語言老鳥都很容易栽倒在C語言的指針下。但不可否認的是,指針在C語言中的位置極其重要,也許可以偏激一點的來說:沒有指針的C程序不是真正的C程序。
  然而C++的指針卻常常給我一種束手束腳的感覺。C++比C語言更加強調強類型,強調類型安全,強調編譯時檢查。因此,對于C語言中最容易錯用的指針,更是不能放過:C++的指針被分成數據指針,數據成員指針,函數指針,成員函數指針,而且不能隨便相互轉換。而且這些指針的聲明格式都不一樣:

數據指針 T *
成員數據指針 T::*
函數指針 R (*)(...)
成員函數指針 R (T::*)(...)

  盡管C++中仍然有萬能指針void*,但它卻屬于被批斗的對象,而且再也不能“萬能”了。它不能轉換成成員指針。

  這樣一來,C++的指針就變得很尷尬:我們需要一種指針能夠指向同一類型的數據,不管這個數據是普通數據,還是成員數據;我們更需要一種指針能夠指向同一類型的函數,不管這個函數是靜態函數,還是成員函數。但是沒有,至少從現在的C++標準中,還沒有看到。

全文見 《C++指針探討 (三) 成員函數指針

posted @ 2006-03-13 16:44 沐楓 閱讀(961) | 評論 (0)編輯 收藏

2005年12月17日 #

在C/C++中,數據指針是最直接,也最常用的,因此,理解起來也比較容易。而函數指針,作為運行時動態調用(比如回調函數 CallBack Function)是一種常見的,而且是很好用的手段。

注:這一部份沒什么價值,純是為了引出下一節的內容。

請點此處閱讀全文:C++指針探討 (二) 函數指針
posted @ 2005-12-17 11:53 沐楓 閱讀(1190) | 評論 (0)編輯 收藏

2005年11月30日 #

指針,在C/C++語言中一直是很受寵的;幾乎找不到一個不使用指針的C/C++應用。用于存儲數據和程序的地址,這是指針的基本功能。用于指向整型數,用整數指針(int*);指向浮點數用浮點數指針(float*);指向結構,用對應的結構指針(struct xxx *);指向任意地址,用無類型指針(void*)。
本文先探討C++中用于存儲各種類型數據的指針。

——全文請見:C++指針探討 (一)數據指針
posted @ 2005-11-30 11:12 沐楓 閱讀(904) | 評論 (0)編輯 收藏

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久亚洲不卡| 国产精品久久久久毛片大屁完整版 | 国产精品夫妻自拍| 欧美国产丝袜视频| 欧美成熟视频| 欧美三级电影一区| 国产欧美日韩综合一区在线观看 | 欧美特黄一区| 国产精品丝袜久久久久久app | 亚洲精品在线视频| 亚洲视频高清| 久久久www免费人成黑人精品| 久久久精品国产免费观看同学 | 亚洲精品乱码久久久久久日本蜜臀| 亚洲日本电影| 午夜一区二区三视频在线观看 | 久久综合五月| 亚洲人成人99网站| 99v久久综合狠狠综合久久| 久久综合网hezyo| 欧美在线三级| 欧美精品午夜视频| 国产欧美一区二区在线观看| 极品少妇一区二区| 在线视频亚洲一区| 免费国产一区二区| 亚洲午夜女主播在线直播| 久久九九国产精品| 欧美涩涩网站| 亚洲激情视频| 欧美一区二区免费视频| 亚洲国产精品久久久久久女王| 在线亚洲一区二区| 久久亚洲综合色一区二区三区| 欧美三区在线| 亚洲日本一区二区三区| 久久噜噜亚洲综合| 亚洲在线视频网站| 久久综合中文色婷婷| 一区二区三区 在线观看视| 另类国产ts人妖高潮视频| 国产伦精品一区二区三区高清| 99国产精品久久久久久久久久| 久久综合中文字幕| 亚洲欧美在线观看| 99精品久久久| 欧美激情视频一区二区三区免费| 国内精品久久久久久久影视麻豆| 一本久久综合| 91久久精品一区| 免费成人黄色片| 一区在线视频| 久久只精品国产| 久久精品国产99国产精品澳门| 国产精品一区2区| 亚洲综合国产| 一本色道久久加勒比88综合| 欧美日韩国产首页| 亚洲一区二区三区成人在线视频精品 | 国产精品理论片| 欧美精品久久久久a| 国产自产2019最新不卡| 久久www免费人成看片高清| 亚洲一区二区三区免费在线观看| 欧美日韩一区二区视频在线观看| 久久亚洲高清| 在线成人免费视频| 免费看的黄色欧美网站| 久久人人97超碰精品888| 一区在线影院| 亚洲福利精品| 欧美精品日韩三级| 1204国产成人精品视频| 欧美亚洲一区二区在线观看| 国产精品99久久久久久白浆小说| 久久噜噜亚洲综合| 免费看成人av| 中日韩美女免费视频网站在线观看| 亚洲国产一区二区三区青草影视| 欧美精品日韩www.p站| 亚洲一区二区三区精品在线观看| 99国产精品久久久久老师| 欧美亚州一区二区三区| 欧美亚洲在线视频| 久久亚洲私人国产精品va媚药| 亚洲精品人人| 亚洲美女在线观看| 国产亚洲欧美日韩一区二区| 美女视频一区免费观看| 欧美夫妇交换俱乐部在线观看| 一区二区三区日韩在线观看| 亚洲午夜伦理| 亚洲黄色成人| 亚洲一区免费视频| 亚洲国产日韩欧美| 亚洲视频精品| 亚洲国产另类久久精品| 一区二区免费在线播放| 在线观看91久久久久久| 在线视频一区观看| 亚洲激情视频网站| 欧美一区二区精品在线| 亚洲美女视频网| 久久国产精品久久w女人spa| 亚洲美女电影在线| 久久成人免费网| 亚洲亚洲精品三区日韩精品在线视频 | 榴莲视频成人在线观看| 欧美日韩综合久久| 欧美成人精品在线视频| 国产精品美女在线| 亚洲精品乱码久久久久久黑人 | 亚洲免费一级电影| 亚洲三级免费| 久久精品2019中文字幕| 亚洲综合视频网| 欧美精品日韩一本| 欧美国产欧美亚洲国产日韩mv天天看完整 | 国产精品一卡| 日韩一区二区久久| 亚洲国产日韩一级| 久久国产一区| 久久精品成人欧美大片古装| 欧美性大战久久久久| 亚洲精品视频在线观看网站| 狠狠操狠狠色综合网| 亚洲欧美一区二区精品久久久| 国产精品99久久久久久www| 欧美黑人在线观看| 亚洲欧美日韩系列| 欧美三区美女| 亚洲国产一区二区三区在线播| 国产亚洲一区二区三区在线播放| 一区二区三区日韩精品| 一本色道久久综合| 欧美激情aaaa| 亚洲电影专区| 亚洲青涩在线| 欧美成人午夜视频| 欧美成年人视频网站| 伊人久久噜噜噜躁狠狠躁| 久久精品亚洲国产奇米99| 久久久久久久久综合| 狠狠入ady亚洲精品经典电影| 久久er99精品| 免费观看欧美在线视频的网站| 在线视频成人| 久久综合电影一区| 欧美黄色免费网站| 亚洲伦伦在线| 欧美精品成人一区二区在线观看| 在线精品亚洲一区二区| 午夜在线不卡| 久久亚洲一区二区三区四区| 精品成人一区二区| 开心色5月久久精品| 欧美成人高清| 亚洲精品欧洲精品| 欧美先锋影音| 久久久久久久久久码影片| 亚洲二区视频| 亚洲一级在线观看| 国产视频亚洲精品| 两个人的视频www国产精品| 亚洲精品乱码久久久久久久久| 亚洲自拍另类| 国外视频精品毛片| 欧美成人国产va精品日本一级| 一区二区三欧美| 久久手机精品视频| 亚洲精品综合| 国产一区二区剧情av在线| 欧美成人午夜激情| 欧美亚洲一区二区在线| 亚洲激情第一页| 久久久91精品国产| 在线视频亚洲欧美| 在线电影院国产精品| 国产精品久久久久一区二区三区| 久久久久久久久综合| 亚洲另类一区二区| 老司机午夜免费精品视频| 一区二区三区成人| 国产一区欧美| 欧美小视频在线| 欧美福利电影网| 欧美一区二区三区久久精品茉莉花 | 亚洲精品日韩一| 久久久999| 亚洲综合视频在线| 亚洲精品免费一二三区| 娇妻被交换粗又大又硬视频欧美| 欧美午夜精品久久久久久浪潮| 老司机精品导航| 小辣椒精品导航| 亚洲小说春色综合另类电影| 亚洲激情视频网站| 亚洲日本成人网| 免费黄网站欧美| 欧美一区二区精品久久911|