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

沐楓小筑(C++)

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

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

公告

沐楓的個人主頁

eoool.com生成

eoool.com生成

常用鏈接

留言簿(8)

我參與的團隊

搜索

  •  

積分與排名

  • 積分 - 57590
  • 排名 - 404

最新評論

閱讀排行榜

評論排行榜

2007年12月15日 #

今天安裝svn服務器。上官網(wǎng)下載,發(fā)現(xiàn)windows下有一個稍微好用些的svn服務器。
下載地址: http://www.visualsvn.com/server/

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

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

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

2007年11月30日 #

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

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

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

2007年10月17日 #

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


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

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


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

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

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

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

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 沐楓 閱讀(4141) | 評論 (38)編輯 收藏

2007年9月27日 #

   C語言確實很優(yōu)雅,整個語言的設計簡潔一致。而在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
   無法初始化。而如果不初始化的話,所有的成員而處于無政府狀態(tài),這顯然很不讓人放心。于是,C++提供了專門用于Class的初始化方式--構(gòu)造函數(shù):
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;
   有了構(gòu)造函數(shù),可以在構(gòu)造函數(shù)的初始化列表中對成員進行初始化。可是很明顯,這里頭還是有一個陷阱,默認構(gòu)造初始化和非默認構(gòu)造初始化的調(diào)用方式是不一致的。默認構(gòu)造函數(shù)不能用括號來調(diào)用,否則編譯器將會發(fā)瘋:
Param param();
   它會把上面的語句看成是函數(shù)聲明,而后面調(diào)用的時候就會出錯,而錯誤信息可能會讓你抓狂一下。但是這樣也就算了,偏偏 new 可以接受有括號和沒括號兩種寫法:
Param* p1 = new Param;
Param
* p2 = new Param();
   再來說說初始化列表。初始化列表,事實上,也只能支持簡單的標量類型,諸如int,bool,指針之類的;復雜點的,如數(shù)組、結(jié)構(gòu),不好意思,不支持--只能在構(gòu)造函數(shù)體中進行賦值。還有一個很迷糊初學者的問題是,成員初始化的順序僅依賴于成員定義的順序,而不是初始化列表中的順序。

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

   再復雜一點的數(shù)據(jù)結(jié)構(gòu),那單單賦值程序就要寫上老長,而且還不好看。還要記得調(diào)用。這對于僅僅是簡單的設置一些初值的用途來說,太過于煩瑣。

   橫向比較,這次好象C++還不會太落伍,只有C和動態(tài)語言提供了初始化特性,其它支持OO高級語言好象都是學C++的。如Java, C#(注C#3.0開始提供初始化功能)...
   
   C++能不能做到簡潔一致的實始化呢?
   Boost的assign庫做了許多有益的工作。使用assign庫,至少現(xiàn)在可以初始化了:
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經(jīng)過許多努力,也僅能支持容器的初始化,而且還不夠漂亮。

   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"} ); // 參數(shù)是兩個元素的列表

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

map
<string,int> anim = 

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

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

2007年9月26日 #

    一直在使用C/C++,對于循環(huán)語句while、do while、for,對于for情有獨鐘,因為其簡潔、清晰、靈活。訪問數(shù)組類型的變量,只有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的定義,這代碼可是多了好幾倍。要是每個循環(huán)都要來這么一下,我還不如直接寫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的參數(shù)不能是引用(我們常定義參數(shù)為:const Param&),因為不能定義引用的引用這種類型。
    3. 一旦出現(xiàn)錯誤,這錯誤信息會讓人極其昏倒。

    看來單靠標準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++除了數(shù)組外,沒有內(nèi)置的容器,因此for語句足矣。
    2. 當C++進化到STL的時候,C++標準委員會根本沒空去考慮其它的。
    而其它高級語言之所以內(nèi)置了foreach,就是因為它們一開始就提供了標準的容器庫和迭代/枚舉接口,因此提供foreach就順理成章了。

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

    不過,考慮到Decltype&auto提案已經(jīng)被采納,新的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功能,不過關(guān)鍵字不是foreach,而是for each,這個讓人有點郁悶.要用的時候最好用宏定義替換一下,免得可移植性上出現(xiàn)問題.

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

2007年8月14日 #

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

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

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

2007年7月21日 #

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

2007年5月23日 #

boost 1.34 終于簡化了內(nèi)嵌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目錄(內(nèi)僅有l(wèi)ib和dll文件),合計2.68GB。

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

2007年5月13日 #

昨天,boost終于發(fā)布了1.34版本。該版本新增加了幾個內(nèi)容:
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宏大大改良了代碼可讀性。

  上述程序執(zhí)行后,array_short的內(nèi)容為:{2,3,4}。 

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

http://www.boost.org

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

2006年8月8日 #

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

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

2006年6月29日 #

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

2006年4月6日 #

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

2006年3月13日 #

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

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

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

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

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

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

2005年12月17日 #

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

注:這一部份沒什么價值,純是為了引出下一節(jié)的內(nèi)容。

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

2005年11月30日 #

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

——全文請見:C++指針探討 (一)數(shù)據(jù)指針
posted @ 2005-11-30 11:12 沐楓 閱讀(905) | 評論 (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>
            欧美一区二区三区在线观看| 欧美日本在线| 你懂的亚洲视频| 欧美亚洲免费电影| 亚洲欧美日本另类| 西西裸体人体做爰大胆久久久| 亚洲香蕉视频| 中国av一区| 亚洲欧美日韩精品久久久| 欧美一级成年大片在线观看| 午夜免费在线观看精品视频| 国产精品免费一区二区三区观看| 久久久久国产精品厨房| 久久九九电影| 国产精品久久波多野结衣| 国产精品综合av一区二区国产馆| 国产乱码精品一区二区三区五月婷| 国产亚洲亚洲| 性久久久久久久| 欧美+日本+国产+在线a∨观看| 亚洲欧洲一区二区天堂久久| 欧美成人免费小视频| 亚洲一区二区三区在线播放| 久久精品99无色码中文字幕| 欧美日韩国产一级片| 精品1区2区3区4区| 欧美亚洲在线观看| 亚洲一区二区黄| 欧美日韩精品三区| 日韩视频三区| 亚洲国产精品视频一区| 久久精品女人的天堂av| 国产精品入口日韩视频大尺度| 一本综合久久| 日韩一级大片在线| 欧美日韩在线免费| 亚洲一区免费网站| 一区二区久久久久久| 欧美日韩成人在线| 亚洲网站视频福利| 中文国产一区| 国产一区二区三区不卡在线观看 | 国产精品区二区三区日本| 麻豆精品在线视频| 激情综合色综合久久综合| 欧美制服丝袜第一页| 香蕉乱码成人久久天堂爱免费| 国产亚洲精品一区二区| 欧美91视频| 国产精品日韩欧美| 老司机凹凸av亚洲导航| 欧美男人的天堂| 久久国产婷婷国产香蕉| 欧美刺激性大交免费视频| 亚洲一区二区欧美| 久热国产精品| 性色av一区二区三区在线观看| 久久国产夜色精品鲁鲁99| 亚洲经典在线| 欧美一区二区三区免费视| 亚洲欧洲在线视频| 久久aⅴ乱码一区二区三区| 99riav国产精品| 亚洲精品视频免费| 久久久精品性| 久久久久www| 国产精品免费区二区三区观看| 老司机免费视频一区二区| 国产精品视频xxx| 一区二区三区日韩精品视频| 亚洲激情一区二区| 欧美阿v一级看视频| 久久久久久穴| 亚洲国产福利在线| 欧美成人免费小视频| 欧美激情a∨在线视频播放| 亚洲丁香婷深爱综合| 欧美大色视频| 日韩亚洲精品电影| 久久精品国产清自在天天线| 欧美国产精品| 欧美高清在线| 亚洲精品久久久久久下一站| 久久精品国产成人| 亚洲福利视频一区二区| 中日韩午夜理伦电影免费| 欧美日韩亚洲不卡| 欧美一级久久| 亚洲国产精品久久精品怡红院| 亚洲日韩欧美一区二区在线| 欧美日韩亚洲成人| 亚洲一二区在线| 欧美国产日产韩国视频| 亚洲电影成人| 国产欧美日韩激情| 欧美激情bt| 久久久噜噜噜| 一区二区三区回区在观看免费视频| 香港成人在线视频| 一区二区精品国产| 激情伊人五月天久久综合| 欧美日韩另类丝袜其他| 久久人人97超碰精品888| 亚洲图片欧美日产| 亚洲精品在线电影| 欧美国产综合视频| 欧美va亚洲va香蕉在线| 久久久久久久91| 久久久久久久久一区二区| 亚洲性夜色噜噜噜7777| 亚洲激情亚洲| 91久久精品国产91久久性色tv| 国模精品娜娜一二三区| 国产九区一区在线| 国语自产精品视频在线看抢先版结局 | 免费成人av| 久久久无码精品亚洲日韩按摩| 亚洲一区二区三区午夜| 在线一区免费观看| 午夜亚洲视频| 欧美在线观看一二区| 欧美一区国产二区| 久久免费黄色| 欧美性大战久久久久久久蜜臀| 国产精品久久久久免费a∨大胸| 国产精品你懂的在线| 国外视频精品毛片| 亚洲图片欧美午夜| 免费不卡在线视频| 亚洲人成在线免费观看| 亚洲视频中文| 久久久综合网站| 欧美日韩亚洲一区三区| 国产精品久久久久久久久久尿 | 国内外成人免费激情在线视频网站| 国内成人自拍视频| 中国女人久久久| 亚洲成色最大综合在线| 中文亚洲免费| 欧美日韩视频在线观看一区二区三区| 欧美日韩久久久久久| 亚洲电影免费观看高清完整版在线 | 亚洲美女免费精品视频在线观看| 亚洲欧美日韩在线不卡| 欧美精品啪啪| 亚洲精品在线观看免费| 久久久噜噜噜久噜久久| 亚洲午夜激情网页| 亚洲精品一二三区| 欧美激情性爽国产精品17p| 狠狠色狠狠色综合日日tαg| 亚洲影院在线观看| 亚洲一区二区成人| 国产精品久久久久一区二区三区| 99亚洲视频| 亚洲精品一区二区网址| 欧美人体xx| 欧美一区二区免费| 欧美一区二区三区免费视频| 亚洲春色另类小说| 亚洲老司机av| 国产一级揄自揄精品视频| 久久国产毛片| 欧美成人精品不卡视频在线观看 | 91久久久亚洲精品| 欧美日本高清| 久久婷婷av| 欧美激情一区二区三级高清视频 | 亚洲破处大片| 国产精品一卡二| 欧美激情精品久久久久久| 免费看的黄色欧美网站| 欧美一区二区在线看| 久久午夜激情| 久久精品成人| 国产精品va在线播放| 久久综合狠狠综合久久综青草 | 欧美久久视频| 久久久久九九九九| 国产精品美女久久久免费| 欧美+亚洲+精品+三区| 国产精品视频一区二区三区| 久久亚洲捆绑美女| 亚洲欧美日韩精品久久久久| 日韩视频在线永久播放| 美女黄网久久| 最新日韩欧美| 亚洲另类黄色| 欧美日韩国产高清视频| 亚洲国产日韩欧美在线图片| 亚洲黑丝在线| 欧美电影在线| 一区二区三区**美女毛片| 一区二区三区鲁丝不卡| 欧美性大战久久久久久久| 亚洲天天影视| 久久久综合免费视频| 国产一区美女| 欧美精品在线免费观看| 在线视频日韩|