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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++ lambda 捕获模式与右值引用

發布時間:2024/4/11 c/c++ 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++ lambda 捕获模式与右值引用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

lambda 表達式和右值引用是 C++11 的兩個非常有用的特性。

lambda 表達式實際上會由編譯器創建一個 std::function 對象,以值的方式捕獲的變量則會由編譯器復制一份,在 std::function 對象中創建一個對應的類型相同的 const 成員變量,如下面的這段代碼:

int main() {std::string str = "test";printf("String address %p in main, str %s\n", &str, str.c_str());auto funca = [str]() {printf("String address %p (main lambda), str %s\n", &str, str.c_str());};std::function<void()> funcb = funca;std::function<void()> funcc;funcc = funca;printf("funca\n");funca();std::function<void()> funcd = std::move(funca);printf("funca\n");funca();printf("funcb\n");funcb();std::function<void()> funce;funce = std::move(funcb);printf("funcb\n"); // funcb();printf("funcc\n");funcc();printf("funcd\n");funcd();printf("funce\n");funce();// std::function<void(int)> funcf = funce;return 0; }

這段代碼的輸出如下:

String address 0x7ffd9aaab720 in main, str test funca String address 0x7ffd9aaab740 (main lambda), str test funca String address 0x7ffd9aaab740 (main lambda), str funcb String address 0x55bdd2160280 (main lambda), str test funcb funcc String address 0x55bdd21602b0 (main lambda), str test funcd String address 0x55bdd21602e0 (main lambda), str test funce String address 0x55bdd2160280 (main lambda), str test

由上面調用 funca 時的輸出,可以看到 lambda 表達式以值的方式捕獲的對象 str,其地址在 lambda 表達式內部和外部是不同的。

std::function 類對象和普通的魔板類對象一樣,可以拷貝構造,如:

std::function<void()> funcb = funca;

由調用 funcb 時的輸出,可以看到拷貝構造時是做了逐成員的拷貝構造。

std::function 類對象可以賦值,如:

std::function<void()> funcc;funcc = funca;

由調用 funcc 時的輸出,可以看到賦值時是做了逐成員的賦值。

std::function 類對象可以移動構造,如:

std::function<void()> funcd = std::move(funca);

由移動構造之后,調用 funca 和 funcd 時的輸出,可以看到移動構造時是做了逐成員的移動構造。

std::function 類對象可以移動賦值,如:

std::function<void()> funce;funce = std::move(funcb);printf("funcb\n"); // funcb();

這里把移動賦值之后對 funcb 的調用注釋掉了,這是因為,作為源的 funcb 在移動賦值之后被調用是,會拋出異常,如:

String address 0x562334c34280 (main lambda), str test funcb terminate called after throwing an instance of 'std::bad_function_call'what(): bad_function_call

同時,由調用 funce 時的輸出可以看到,該輸出與 funcb 在移動賦值之前被調用時的輸出完全相同。即移動賦值是將對象整體 move 走了,這與移動構造時的行為不太一樣。

std::function 類對象的拷貝構造或者賦值,也需要滿足類型匹配原則,如:

std::function<void(int)> funcf = funce;

這行代碼會造成編譯失敗,編譯錯誤信息如下:

../src/DemoTest.cpp: In function ‘int main()’: ../src/DemoTest.cpp:64:36: error: conversion from ‘std::function<void()>’ to non-scalar type ‘std::function<void(int)>’ requestedstd::function<void(int)> funcf = funce;^~~~~ make: *** [src/DemoTest.o] Error 1 src/subdir.mk:18: recipe for target 'src/DemoTest.o' failed

在 lambda 中以值的方式捕獲的右值對象,只是在 lambda 的 std::function 對象中做了一份被捕獲的右值對象的拷貝,而原來的右值則沒有任何改變。

接下來再來看一段示例代碼:

#include <iostream> #include <functional> #include <string>using namespace std;void funcd(std::string &&str) {printf("String address %p in funcd A, str %s\n", &str, str.c_str());string strs = std::move(str);printf("String address %p in funcd B, str %s, strs %s\n", &str, str.c_str(), strs.c_str()); }void funcc(std::string str) {printf("String address %p in funcc, str %s\n", &str, str.c_str()); }void funcb(std::string &str) {printf("String address %p in funcb, str %s\n", &str, str.c_str()); }void funca(std::string &&str) {printf("String address %p in funca A, str %s\n", &str, str.c_str());std::string stra = str;printf("String address %p in funca B, str %s, stra %s\n", &str, str.c_str(), stra.c_str()); }int main() {std::string str = "test";printf("String address %p in main A, str %s\n", &str, str.c_str());funca(std::move(str));printf("String address %p in main B, str %s\n", &str, str.c_str());// funcb(std::move(str));printf("String address %p in main C, str %s\n", &str, str.c_str());funcc(std::move(str));printf("String address %p in main D, str %s\n", &str, str.c_str());std::string stra = "testa";printf("String address %p in main E, stra %s\n", &stra, stra.c_str());funcd(std::move(stra));printf("String address %p in main F, stra %s\n", &stra, stra.c_str());return 0; }

上面這段代碼在執行時,輸出如下:

String address 0x7ffc833f4660 in main A, str test String address 0x7ffc833f4660 in funca A, str test String address 0x7ffc833f4660 in funca B, str test, stra test String address 0x7ffc833f4660 in main B, str test String address 0x7ffc833f4660 in main C, str test String address 0x7ffc833f4680 in funcc, str test String address 0x7ffc833f4660 in main D, str String address 0x7ffc833f4680 in main E, stra testa String address 0x7ffc833f4680 in funcd A, str testa String address 0x7ffc833f4680 in funcd B, str , strs testa String address 0x7ffc833f4680 in main F, stra

funca 函數接收右值引用作為參數,由 funca 函數內部及函數調用前后的輸出可以看到,std::move() 本身什么都沒做,單單調用 std::move() 并不會將原來的對象的內容移動到任何地方。std::move() 只是一個簡單的強制類型轉換,將左值轉為右值引用。同時可以看到,用右值引用作為參數構造對象,也并沒有對右值引用所引用的對象產生任何影響。

funcb 函數接收左值引用作為參數,上面的代碼中,如下這一行注釋掉了:

// funcb(std::move(str));

這是因為,funcb 不能用一個右值引用作為參數來調用。用右值引用作為參數,調用接收左值引用作為參數的函數 funcb 時,會編譯失敗:

g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/DemoTest.d" -MT"src/DemoTest.o" -o "src/DemoTest.o" "../src/DemoTest.cpp" ../src/DemoTest.cpp: In function ‘int main()’: ../src/DemoTest.cpp:34:18: error: cannot bind non-const lvalue reference of type ‘std::__cxx11::string& {aka std::__cxx11::basic_string<char>&}’ to an rvalue of type ‘std::remove_reference<std::__cxx11::basic_string<char>&>::type {aka std::__cxx11::basic_string<char>}’funcb(std::move(str));~~~~~~~~~^~~~~ ../src/DemoTest.cpp:17:6: note: initializing argument 1 of ‘void funcb(std::__cxx11::string&)’void funcb(std::string &str) {^~~~~ src/subdir.mk:18: recipe for target 'src/DemoTest.o' failed make: *** [src/DemoTest.o] Error 1

不過,如果 funcb 接收 const 左值引用作為參數,如 void funcb(const std::string &str),則在調用該函數時,可以用右值引用作為參數,此時 funcb 的行為與 funca 基本相同。

funcc 函數接收左值作為參數,由 funcc 函數內部及函數調用前后的輸出可以看到,由于有了左值作為接收者,傳入的右值引用所引用的對象的值被 move 走,進入函數的參數棧對象中了。

funcd 函數與 funca 函數一樣,接收右值引用作為參數,但 funcd 的特別之處在于,在函數內部,右值構造了一個新的對象,因而右值引用原來引用的對象的值被 move 走,進入了新構造的對象中。

再來看一段示例代碼:

#include <iostream> #include <functional> #include <string>using namespace std;void bar(std::string &&str) {printf("String address %p in bar A, str %s\n", &str, str.c_str());string strs = std::move(str);printf("String address %p in bar B, str %s, strs %s\n", &str, str.c_str(), strs.c_str()); }std::function<void()> bar_bar(std::string &&str) {auto funf = [&str]() {printf("String address %p (foo lambda) F, stra %s\n", &str, str.c_str());};return funf; }std::function<void()> foo(std::string &&str) {printf("String address %p in foo A, str %s\n", &str, str.c_str());// auto funa = [str]() { // printf("String address %p (foo lambda) A, str %s\n", &str, str.c_str()); // bar(str); // }; // funa(); // // auto funb = [str]() { // printf("String address %p (foo lambda) B, str %s\n", &str, str.c_str()); // bar(std::move(str)); // }; // funb();// auto func = [str]() mutable { // printf("String address %p (foo lambda) C, str %s\n", &str, str.c_str()); // bar(str); // }; // func();auto fund = [str]() mutable {printf("String address %p (foo lambda) D, str %s\n", &str, str.c_str());bar(std::move(str));};fund();auto fune = [&str]() {printf("String address %p (foo lambda) E, str %s\n", &str, str.c_str());bar(std::move(str));};fune();std::string stra = "testa";return bar_bar(std::move(stra)); }int main() {std::string str = "test";printf("String address %p in main A, str %s\n", &str, str.c_str());auto funcg = foo(std::move(str));printf("String address %p in main B, str %s\n", &str, str.c_str());funcg();return 0; }

上面這段代碼的輸出如下:

String address 0x7ffc9fe7c5c0 in main A, str test String address 0x7ffc9fe7c5c0 in foo A, str test String address 0x7ffc9fe7c540 (foo lambda) D, str test String address 0x7ffc9fe7c540 in bar A, str test String address 0x7ffc9fe7c540 in bar B, str , strs test String address 0x7ffc9fe7c5c0 (foo lambda) E, str test String address 0x7ffc9fe7c5c0 in bar A, str test String address 0x7ffc9fe7c5c0 in bar B, str , strs test String address 0x7ffc9fe7c5c0 in main B, str String address 0x7ffc9fe7c560 (foo lambda) F, stra ����

在函數 foo() 中定義的 funa 及對 funa 的調用被注釋掉了,這是因為這段代碼會導致編譯失敗,具體的錯誤信息如下:

Invoking: GCC C++ Compiler g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/DemoTest.d" -MT"src/DemoTest.o" -o "src/DemoTest.o" "../src/DemoTest.cpp" ../src/DemoTest.cpp: In lambda function: ../src/DemoTest.cpp:25:12: error: cannot bind rvalue reference of type ‘std::__cxx11::string&& {aka std::__cxx11::basic_string<char>&&}’ to lvalue of type ‘const string {aka const std::__cxx11::basic_string<char>}’bar(str);^ ../src/DemoTest.cpp:7:6: note: initializing argument 1 of ‘void bar(std::__cxx11::string&&)’void bar(std::string &&str) {^~~ src/subdir.mk:18: recipe for target 'src/DemoTest.o' failed make: *** [src/DemoTest.o] Error 1

如我們前面提到的,在 lambda 表達式中,以值的方式捕獲右值引用時,會在編譯器為該 lambda 表達式生成的 std::function 類中生成一個 const 對象,const 對象是不能作為右值引用來調用接收右值引用為參數的函數的。

在函數 foo() 中定義的 funb,相對于 funa,在調用 bar() 時,為 str 裹上了 std::move()。不過此時還是會編譯失敗。錯誤信息如下:

Invoking: GCC C++ Compiler g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/DemoTest.d" -MT"src/DemoTest.o" -o "src/DemoTest.o" "../src/DemoTest.cpp" ../src/DemoTest.cpp: In lambda function: ../src/DemoTest.cpp:31:18: error: binding reference of type ‘std::__cxx11::string&& {aka std::__cxx11::basic_string<char>&&}’ to ‘std::remove_reference<const std::__cxx11::basic_string<char>&>::type {aka const std::__cxx11::basic_string<char>}’ discards qualifiersbar(std::move(str));~~~~~~~~~^~~~~ ../src/DemoTest.cpp:7:6: note: initializing argument 1 of ‘void bar(std::__cxx11::string&&)’void bar(std::string &&str) {^~~ make: *** [src/DemoTest.o] Error 1 src/subdir.mk:18: recipe for target 'src/DemoTest.o' failed

在 funb 中,str 是個 const 對象,因而還是不行。

在函數 foo() 中定義的 func,相對于 funa,加了 mutable 修飾。此時還是會編譯失敗。錯誤信息如下:

Invoking: GCC C++ Compiler g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/DemoTest.d" -MT"src/DemoTest.o" -o "src/DemoTest.o" "../src/DemoTest.cpp" ../src/DemoTest.cpp: In lambda function: ../src/DemoTest.cpp:37:12: error: cannot bind rvalue reference of type ‘std::__cxx11::string&& {aka std::__cxx11::basic_string<char>&&}’ to lvalue of type ‘std::__cxx11::string {aka std::__cxx11::basic_string<char>}’bar(str);^ ../src/DemoTest.cpp:7:6: note: initializing argument 1 of ‘void bar(std::__cxx11::string&&)’void bar(std::string &&str) {^~~ make: *** [src/DemoTest.o] Error 1 src/subdir.mk:18: recipe for target 'src/DemoTest.o' failed

無法將左值綁定到一個右值引用上。

在函數 foo() 中定義的 fund,相對于 func,在調用 bar() 時,為 str 裹上了 std::move()。此時終于可以編譯成功,可以 move const 的 str。

在函數 foo() 中定義的 fune,相對于 funb,以引用的方式捕獲了右值引用。在 fune 中調用 bar(),就如同 foo() 直接調用 bar() 一樣。

在函數 foo() 中調用接收一個右值引用作為參數的函數 bar_bar() 生成一個函數。在函數 bar_bar() 中用 lambda 定義的函數對象 funf,以引用的方式捕獲一個右值,并在 lambda 中訪問改對象。該 lambda 作為 bar_bar() 函數生成的函數對象。foo() 中調用 bar_bar() 時傳入函數棧上定義的臨時對象 stra,并將 bar_bar() 返回的函數對象作為返回值返回。在 main() 函數中用 funcg 接收 foo() 函數返回的函數對象,并調用 funcg,此時會發生 crash 或能看到亂碼。crash 或亂碼是因為,在 funf 中,訪問的 str 對象實際上是 foo() 函數中定義的棧上臨時對象 stra,foo() 函數調用結束之后,棧上的臨時對象被釋放,main() 函數中調用 funcg 實際在訪問一個無效的對象,因而出現問題。

Done。

總結

以上是生活随笔為你收集整理的C++ lambda 捕获模式与右值引用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

不卡的av在线播放 | 国产免码va在线观看免费 | av在线中文 | 综合成人在线 | 狠狠色丁香婷婷综合视频 | 国产网红在线观看 | 五月天天色 | 亚洲高清视频在线 | 成人a v视频 | 在线免费黄色av | 精品高清美女精品国产区 | 欧美成人精品欧美一级乱 | 久草视频首页 | 4438全国亚洲精品在线观看视频 | 亚洲免费在线观看视频 | 69久久夜色精品国产69 | 国产黄色片在线 | 五月天九九| av丝袜在线 | 欧美va天堂va视频va在线 | 亚洲成年人在线播放 | av午夜电影 | 狠狠狠狠狠狠狠狠 | 亚洲精品乱码久久久久久高潮 | 超碰97av在线 | 色播亚洲婷婷 | 天天操天天舔天天干 | 久久综合色天天久久综合图片 | 射久久久 | 99精品视频在线观看 | 久久精品99国产 | 精品国产自 | 黄色午夜网站 | 久久精品中文视频 | 国产在线观看91 | 91天堂影院| 亚洲电影一级黄 | 超碰在线天天 | 天天摸日日摸人人看 | 国产福利不卡视频 | 日韩亚洲精品电影 | 一区二区三区免费网站 | 伊人成人激情 | 亚洲在线黄色 | 91av在线免费观看 | 日韩va在线观看 | 性色在线视频 | 最近免费中文字幕大全高清10 | 免费av大全 | 黄色网中文字幕 | 成人在线播放免费观看 | mm1313亚洲精品国产 | 天天拍天天操 | 97在线成人 | 中文字幕 国产专区 | 国产一级视频在线观看 | 天天爽天天碰狠狠添 | 91九色视频导航 | 中文字幕资源在线观看 | 成人xxxx| 欧美va天堂va视频va在线 | 国产精品99久久久久 | 久久免费看a级毛毛片 | 日韩av伦理片 | 精品国产免费人成在线观看 | 免费在线看成人av | 开心激情网五月天 | 国模视频一区二区 | 激情www| 国产精品福利一区 | 欧美少妇bbwhd | 欧美一级免费高清 | 日韩黄色中文字幕 | 欧美一区二区三区在线看 | 日韩av视屏 | av免费看av | 日本三级全黄少妇三2023 | 在线国产片 | 国产精品久久久久久久久久直播 | 在线观看一级视频 | 亚洲黄色免费网站 | 精品福利国产 | 久久国产免 | 国产精品99久久久久久人免费 | 国产精品网在线观看 | 成年人在线播放视频 | 99在线视频播放 | 成人毛片在线观看 | 丁香综合五月 | 狠狠干.com| 国产xxxx做受性欧美88 | 国产午夜三级一二三区 | 狠狠婷婷| 久久久蜜桃一区二区 | 五月综合在线观看 | 国产又黄又硬又爽 | 在线观看免费av网站 | 片黄色毛片黄色毛片 | 久久久久国产精品视频 | 97国产情侣爱久久免费观看 | 国产精品成久久久久三级 | 国产一区二区在线免费播放 | 亚洲精品欧洲精品 | 99热日本 | 国产一区二区不卡在线 | 99热亚洲精品 | 99久久精品久久久久久清纯 | 丁香网五月天 | 日本福利视频在线 | 欧美成人一区二区 | 国产一区二区三区免费观看视频 | 日韩欧美一区二区三区黑寡妇 | h网站免费在线观看 | 国产视频手机在线 | 97国产一区二区 | 亚洲国产精品资源 | 天天操天天添 | 91视频网址入口 | 九九有精品 | 亚洲免费精品一区二区 | 91九色九色| 日韩激情视频在线观看 | 91久久精品一区二区二区 | 久久精品毛片 | 精品久久久久久国产91 | 精品免费视频. | 亚洲综合视频网 | 久久精品香蕉 | 国产精品一二 | 免费成人在线观看 | 国产精品福利久久久 | 国产人成看黄久久久久久久久 | 三上悠亚一区二区在线观看 | 干 操 插 | 国产福利一区二区三区在线观看 | 国产成人综合在线观看 | 久草在线视频首页 | 精品亚洲成人 | 黄色av三级在线 | 免费视频一二三 | 午夜视频在线观看网站 | 97成人在线观看 | 麻豆小视频在线观看 | 亚洲视频第一页 | 免费一级片久久 | 久久国产精品99久久人人澡 | 日韩高清精品一区二区 | 日本三级国产 | 日韩在线视频线视频免费网站 | 91久久一区二区 | 99热这里只有精品8 久久综合毛片 | 免费观看一区二区 | 久久人人插 | 五月开心网 | 九色视频网站 | 久草在线视频免费资源观看 | 色婷婷97| 激情视频91 | 久久视频免费观看 | 在线观看网站黄 | 久久久96| 91看片淫黄大片一级在线观看 | 亚洲黄色免费网站 | 九九九九精品九九九九 | 天天干,天天插 | 国产成人一区二区在线观看 | 在线免费观看黄色大片 | 亚洲动漫在线观看 | 国产视频99 | 中文字幕在线观看一区二区三区 | 91麻豆看国产在线紧急地址 | 国产91九色蝌蚪 | 91成人区 | 成人毛片a| 亚洲综合在线播放 | 欧美在线观看视频 | 911久久香蕉国产线看观看 | 日日干网 | 久久综合射 | 久久久久久网址 | 欧美国产亚洲精品久久久8v | 视频在线在亚洲 | 在线观看的av网站 | 草久电影| 中文字幕高清免费日韩视频在线 | 国产精品专区在线 | 中文字幕在线影视资源 | 狠狠色丁香婷婷综合橹88 | av黄色免费看 | 国产精品久久久久久久午夜 | 国产成人一区二区三区影院在线 | 久久久久久久看片 | 日日摸日日添夜夜爽97 | 日本三级大片 | 色婷婷av在线 | 国产精品久久久久一区二区国产 | 久久久久免费视频 | 欧美精品久久天天躁 | 欧美成人tv | 97超碰人人澡人人爱学生 | 91久久黄色 | 国产日本在线播放 | 久久亚洲视频 | 天天操操操操操操 | 日韩v欧美v日本v亚洲v国产v | 男女日麻批| 在线а√天堂中文官网 | 一区二区在线电影 | 91精品一区二区三区蜜桃 | 国产精品视频你懂的 | 国产精品手机视频 | 精品在线观看一区二区 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 成+人+色综合 | 精品自拍av | 黄p网站在线观看 | 日韩va在线观看 | 中文字幕国产一区二区 | 日韩专区在线观看 | 91在线视频一区 | 激情综合国产 | 日本动漫做毛片一区二区 | 欧美性生活小视频 | 欧美精品国产综合久久 | 国产精品自在线拍国产 | 色婷婷国产在线 | 西西www444 | 精品亚洲欧美无人区乱码 | 国产精品毛片久久久久久 | 国内精品视频一区二区三区八戒 | 在线日韩视频 | 免费激情在线电影 | 国产精品美女久久久久久久久久久 | 综合网五月天 | 激情欧美xxxx | 久久久这里有精品 | 精品国产1区2区 | 青青河边草免费直播 | 97超碰影视| 久久高清国产视频 | 亚洲另类久久 | 久久亚洲免费 | 亚洲国产中文在线观看 | 欧美一区日韩一区 | 亚洲黄色一级大片 | 韩日三级av | 超级碰碰碰免费视频 | 国产又粗又硬又长又爽的视频 | 深爱激情五月网 | 久久伊人国产精品 | a色网站| 免费国产亚洲视频 | www最近高清中文国语在线观看 | 国产精品视频地址 | 91男人影院 | 超碰人人舔 | 午夜男人影院 | 二区三区精品 | 亚洲精品国产精品乱码不99热 | 在线免费三级 | 日本大片免费观看在线 | 久草视频视频在线播放 | 精品视频999 | 久久成人国产精品一区二区 | 婷五月激情 | 白丝av在线| 久久人人97超碰com | 国产高清综合 | 中文av资源站 | 婷婷久久婷婷 | 91看片在线观看 | 91亚洲精品国偷拍自产在线观看 | 国产999在线观看 | 亚洲一区久久久 | 久久99亚洲精品 | 99re国产视频 | 国产91免费在线观看 | 九九视频免费观看视频精品 | 天天做天天爽 | 国产在线自| 日韩中文字幕网站 | 一本之道乱码区 | 九九色网 | 二区中文字幕 | 色婷av| 天天看天天操 | 三日本三级少妇三级99 | 日韩av视屏在线观看 | 中文字幕乱码电影 | 四虎国产永久在线精品 | 91超级碰 | 久久久久久久久久国产精品 | 超碰97人人射妻 | 69欧美视频 | 又爽又黄又刺激的视频 | 日韩欧美xxx| 奇米影视8888在线观看大全免费 | 久久国产精品免费观看 | 麻豆视频免费播放 | 日韩v欧美v日本v亚洲v国产v | 国产精品99免费看 | 日韩在线观看视频网站 | 日韩视频在线观看免费 | 色伊人网 | 午夜狠狠干 | 精品麻豆| 96av在线视频 | 精品国产精品国产偷麻豆 | 玖玖色在线观看 | 亚洲国产精品第一区二区 | 亚洲成人免费观看 | 欧美在线观看视频一区二区 | 国产黄色免费在线观看 | 国产情侣一区 | 国产色在线 | 尤物一区二区三区 | 亚洲91精品 | 中文字幕有码在线 | 国产福利一区在线观看 | 久青草影院 | 免费看污黄网站 | 91在线看视频免费 | 久久久久久久久综合 | 三级av片| 久久久精品国产一区二区 | 夜夜操夜夜干 | 国产精品日韩欧美一区二区 | 国产精品av在线免费观看 | 国产一级高清视频 | 激情五月婷婷综合网 | 国产原创在线 | 国产99久久久精品视频 | 日日干日日| 黄色高清视频在线观看 | 日韩美女av在线 | 日韩在线一级 | www.久久久精品 | 国产色网 | 国产精品99久久99久久久二8 | 最新婷婷色 | 日本大片免费观看在线 | 麻豆成人网 | 久久久www成人免费精品 | 欧美精品久久久久久久久老牛影院 | 99热手机在线 | 麻豆久久一区 | 欧美日韩成人一区 | 国产传媒一区在线 | 亚洲国产片色 | 一级黄色片在线免费看 | 在线观看视频精品 | 欧美一级久久久 | 91久久精品一区 | 精品一区三区 | 日韩超碰 | 最近日韩中文字幕中文 | 在线观看国产一区 | 久久婷婷亚洲 | 亚洲精品中文字幕在线 | 成人免费网站视频 | 日本丶国产丶欧美色综合 | 黄网av在线 | 久久久久成人精品免费播放动漫 | 欧美一级裸体视频 | 国产精品美女久久久久久网站 | 午夜私人影院久久久久 | 999久久久国产精品 高清av免费观看 | 亚洲人成在线观看 | 午夜久久久久久久久 | 欧美日韩在线视频一区二区 | 日本3级在线观看 | 成人91视频 | 亚洲a资源 | 射射射av| av电影不卡在线 | 日韩小视频网站 | 国产无套精品久久久久久 | 国产日韩欧美在线影视 | 久久精品免费播放 | 国产精品第一 | 亚洲春色综合另类校园电影 | 日韩资源视频 | 久久狠狠亚洲综合 | 精品一区在线 | 欧美日韩国产综合网 | 成人在线免费av | 91人人澡人人爽人人精品 | 久久精品1区| 日韩精品免费在线视频 | 狠狠狠色丁香综合久久天下网 | 色婷婷狠狠五月综合天色拍 | 手机av永久免费 | 亚洲精品国产精品国产 | 亚洲午夜小视频 | 337p日本欧洲亚洲大胆裸体艺术 | 色播五月激情五月 | 狠狠色丁香婷婷综合橹88 | 中文字幕日韩无 | 国产乱码精品一区二区蜜臀 | 欧美激情视频三区 | 人人爽人人看 | 国产午夜视频在线观看 | 国产精品视频久久久 | 91成人网页版 | 久久久久久久久久免费 | 色综合久久66| 午夜精品久久久久久久99热影院 | 在线观看黄网 | 夜夜操网站 | 美女又爽又黄 | 456免费视频| 亚洲女裸体 | 国内精品久久久久久久久久清纯 | 麻豆久久 | 在线观看亚洲视频 | 狠狠综合网 | 少妇bbb搡bbbb搡bbbb′ | 国精产品满18岁在线 | 久草香蕉在线 | 91亚洲精品国偷拍 | 97国产超碰在线 | 天天天插 | 中文字幕日韩av | 在线а√天堂中文官网 | 最近中文字幕在线播放 | 久久免费视频观看 | 在线亚洲人成电影网站色www | 欧美精品久久久久久久久久久 | 大型av综合网站 | 国产精品久久久久久久久久久杏吧 | 免费三级影片 | 亚洲精品乱码久久久久久久久久 | 中文字幕有码在线 | 91久久国产自产拍夜夜嗨 | 8x成人在线| 国产高清在线a视频大全 | 99久久精品免费看国产一区二区三区 | 成年人在线看视频 | 日本精品一区二区 | 亚洲免费资源 | 毛片二区 | 黄色一级在线视频 | 天天干天天操天天操 | 日韩 精品 一区 国产 麻豆 | 欧美午夜寂寞影院 | 91精品一| 天天草综合网 | 日本乱视频| 国产成人无码AⅤ片在线观 日韩av不卡在线 | 色婷婷狠狠五月综合天色拍 | 久久观看免费视频 | 91看片在线观看 | 月丁香婷婷 | 国产精品不卡视频 | 国产毛片aaa | 午夜91在线| 亚洲精品视频二区 | 国产91影视 | 日本丰满少妇免费一区 | www狠狠操| 青青河边草免费观看完整版高清 | 国产精品麻豆欧美日韩ww | 欧美小视频在线观看 | 久久国产精品一区二区三区四区 | 欧美亚洲国产一卡 | 欧美一二区在线 | 精品一区精品二区高清 | 久久综合婷婷国产二区高清 | 日韩欧美精品在线视频 | 成人午夜精品久久久久久久3d | 玖玖精品在线 | 黄色网免费 | 久草免费在线观看 | 精品久久久久久一区二区里番 | 手机看片1042 | 日韩国产欧美在线播放 | 国内小视频在线观看 | 午夜国产福利在线观看 | 国产精品自拍在线 | 成人黄色在线 | 国产精品久久久久一区二区三区共 | 1区2区视频| 亚洲理论影院 | 黄色精品免费 | 久久成人亚洲欧美电影 | 日韩在线免费看 | 在线观看免费黄视频 | 中文字幕在线播放视频 | 激情伊人五月天久久综合 | 热久久影视 | 国产午夜精品在线 | 天堂激情网 | 国产美腿白丝袜足在线av | 黄色大片免费网站 | 久久在线精品视频 | 黄网站www| 高潮毛片无遮挡高清免费 | 在线观看视频精品 | 色多多视频在线 | 友田真希av| 天堂av影院 | 婷婷久月 | 精品伦理一区二区三区 | jizzjizzjizz亚洲 | 久久久久一区二区三区 | 国产精品久久久久久久久久久久午夜片 | 97碰碰视频 | 日韩草比 | 国产在线观看黄 | 亚洲精品一区二区网址 | 国产一区在线不卡 | 看片在线亚洲 | 日本久久久久久久久久久 | 久草国产视频 | 亚洲国产资源 | 成人免费观看网站 | 中文字幕日韩av | av福利网址导航大全 | 国产精品扒开做爽爽的视频 | 日日夜夜操操 | 亚洲最新在线视频 | 日韩免费在线一区 | 丁香婷婷深情五月亚洲 | 又黄又爽又湿又无遮挡的在线视频 | 国产成人久久久77777 | 99精品一区 | 九九九热精品免费视频观看网站 | 91看片网址| 2019精品手机国产品在线 | 国产高清不卡一区二区三区 | 色婷婷伊人 | 色人久久 | 亚洲专区中文字幕 | 黄色免费在线看 | 久久99热久久99精品 | 欧美日韩在线视频一区二区 | 99这里只有久久精品视频 | 69av视频在线观看 | 99色在线观看 | av中文字幕在线播放 | 黄色av免费看 | 91大神视频网站 | 深夜福利视频在线观看 | 国产精品伦一区二区三区视频 | 免费在线播放视频 | 麻豆免费视频 | 青草视频网 | 亚洲免费成人av电影 | 国产一区 在线播放 | 狠狠亚洲| 亚洲一级国产 | 2017狠狠干 | 午夜免费福利视频 | 国产精品一级视频 | 中文字幕在线观看的网站 | 高清中文字幕av | 免费亚洲视频在线观看 | 激情黄色av | 999日韩| 久久精品免费观看 | 精品综合久久 | 美女很黄免费网站 | 久久久久免费视频 | 精品99999| 91成人在线观看喷潮 | 97视频在线免费 | 欧美一级高清片 | 色综合久久中文字幕综合网 | 在线精品视频免费播放 | 国产在线不卡视频 | 国产精品黄网站在线观看 | 国产精品专区h在线观看 | 久久高清视频免费 | 亚洲一区美女视频在线观看免费 | 97超级碰碰碰视频在线观看 | 狠狠干狠狠插 | 日本三级香港三级人妇99 | 久久亚洲免费视频 | 丁香5月婷婷久久 | 欧美一区二区日韩一区二区 | 日日操网站 | 综合色影院 | 蜜臀av夜夜澡人人爽人人桃色 | 国产成人a v电影 | 国产精品视频地址 | 天堂av免费 | 久久好看免费视频 | 91在线超碰 | 国产精品成人免费精品自在线观看 | 在线成人观看 | 久久久久久久久久久久久影院 | 伊人久久精品久久亚洲一区 | 黄色福利网 | 狠狠久久| 亚洲黄色在线观看 | 91大神dom调教在线观看 | 精品一区在线 | 夜夜爽天天爽 | 午夜精品视频一区二区三区在线看 | 午夜精品久久久久久久久久久 | 国产精品免费一区二区三区在线观看 | 中文字幕在线字幕中文 | 日韩欧美在线影院 | 久久久蜜桃一区二区 | 日韩在线视频线视频免费网站 | 精品久久久久久亚洲 | 500部大龄熟乱视频 欧美日本三级 | 久久国产精品色av免费看 | 精品xxx | 91精品一区二区三区久久久久久 | 视频在线91 | 久久久久久久免费看 | 91免费看黄 | 2017狠狠干| 日产av在线播放 | 狠狠色狠狠色综合系列 | 国产一区久久久 | 91久久偷偷做嫩草影院 | 久久精品观看 | 日韩欧美69| 丁香五月亚洲综合在线 | 久久精品中文字幕少妇 | 日日综合网 | 久久99国产精品 | 天干啦夜天干天干在线线 | 欧美福利片在线观看 | 国产免费视频在线 | 久久精品中文字幕少妇 | av免费在线观看网站 | 国产在线高清 | 国内精品亚洲 | 欧美一级淫片videoshd | 国产免费高清 | 成人精品一区二区三区电影免费 | 国内毛片毛片 | 国产精品亚洲视频 | 欧美日韩一区二区视频在线观看 | 中文字幕久久久精品 | 99久久99久久精品免费 | 国产麻豆精品免费视频 | 在线成人欧美 | 亚洲欧美综合精品久久成人 | 日日添夜夜添 | 免费国产ww | 免费精品久久久 | 国产精品色婷婷 | 久久国产精品久久精品 | 黄色精品一区 | 欧美日韩亚洲精品在线 | 在线国产观看 | 精品国产色 | 91精品国产网站 | 免费观看9x视频网站在线观看 | 一区二区三区 亚洲 | 一区二区三区韩国免费中文网站 | 亚洲激情综合 | 在线观看一级 | 免费a v观看| 久久久国产在线视频 | 国产v视频 | 亚州精品在线视频 | 中文字幕 成人 | 久久久国产精品视频 | 免费看黄视频 | 99久久精品国产观看 | 亚洲精品国产精品国 | 国产高清在线观看 | 三上悠亚一区二区在线观看 | 深夜免费福利 | 在线午夜电影神马影院 | 国产中文自拍 | 国产一区二区不卡在线 | 99热高清 | 九九色在线观看 | 日韩特级片 | 国产视频在线观看一区 | 在线香蕉视频 | 国产视频一区在线播放 | 国产手机在线观看 | 久久亚洲欧美 | 欧美日韩久久一区 | 97福利 | av综合网址 | 成人综合免费 | 西西www4444大胆视频 | 午夜视频导航 | 成人av高清在线 | 久久夜av| 精品成人免费 | 在线免费日韩 | avv天堂| 91高清免费在线观看 | 国产69精品久久99不卡的观看体验 | 香蕉在线视频观看 | 精品电影一区 | 国产亚洲精品福利 | 91av视频在线播放 | 亚洲va天堂va欧美ⅴa在线 | 又黄又爽又色无遮挡免费 | 亚洲成人软件 | 久久精品国产精品 | 精品国产乱码久久久久久天美 | 国产一区二区三区在线 | 国产麻豆传媒 | 在线观看视频一区二区三区 | 成人精品99 | 欧美国产不卡 | 97超碰色 | 探花视频免费在线观看 | www四虎影院 | 99re8这里有精品热视频免费 | 精品五月天 | 欧美9999 | 嫩草av在线| 国产99久久久国产精品免费二区 | 国内精品视频一区二区三区八戒 | 久热这里有精品 | 99这里有精品 | 手机av在线不卡 | 中文字幕中文 | 麻豆系列在线观看 | 在线 欧美 日韩 | 99精品在线视频观看 | 日韩黄色av网站 | 国产午夜精品一区二区三区嫩草 | 成人在线观看资源 | 国产精品一区二区三区免费视频 | 久久免费观看少妇a级毛片 久久久久成人免费 | 国产精品女人久久久 | 91大神电影| 激情视频区| 岛国av在线| 久久久久久久久久久久久9999 | 99久久精品久久久久久动态片 | 特黄色大片 | 国产黄在线| 日本3级在线观看 | 91精选在线观看 | 日韩 精品 一区 国产 麻豆 | 日韩综合第一页 | 玖玖玖在线 | 日韩精品视频在线免费观看 | 久草精品视频 | 在线观看一区视频 | 丁香花中文在线免费观看 | 99这里只有精品视频 | 91精品久久久久久久91蜜桃 | 99视频在线免费观看 | 日韩精品国产一区 | 国产成人不卡 | 国产视频在线一区二区 | 国模一区二区三区四区 | 午夜10000 | 激情综合网在线观看 | 免费网站在线观看人 | 99se视频在线观看 | 成人91免费视频 | 免费日韩 精品中文字幕视频在线 | 韩国精品一区二区三区六区色诱 | av在线在线| 久久久久久久久久亚洲精品 | 麻豆国产精品永久免费视频 | 日韩午夜小视频 | 日韩在线免费播放 | 五月天激情电影 | 日韩一级成人av | 99久精品视频 | 黄色的视频网站 | 在线观看aaa | 日韩欧美综合在线视频 | 欧美亚洲三级 | 日本激情中文字幕 | 亚洲电影网站 | 97在线观看 | 国产亚洲91 | 精品一区二区三区四区在线 | 国产美女精彩久久 | 字幕网资源站中文字幕 | 色婷婷啪啪免费在线电影观看 | 天天干夜夜擦 | 色网av | 色视频网站在线 | www.五月天婷婷 | 国产婷婷vvvv激情久 | 九九免费观看视频 | 亚洲精品9| 一区二区三区免费在线观看 | 久久老司机精品视频 | 在线91视频 | 99热在线免费观看 | 激情视频综合网 | 欧美小视频在线观看 | 天堂av网在线| 欧美韩日精品 | 久久久久久久免费看 | 欧美巨大荫蒂茸毛毛人妖 | 丁香六月在线 | 中文字幕第一页在线 | 国产免费久久 | 一区二区三区在线免费观看 | 五月婷婷激情网 | 黄色精品久久久 | 欧美日韩aa | 97精品欧美91久久久久久 | 黄色免费高清视频 | 久久精品久久精品久久 | 久久精品伊人 | 欧美激情精品久久久久 | 九九热免费视频在线观看 | 91爱看片 | 操操操日日日干干干 | 91视频国产免费 | 在线中文字幕播放 | 久草在线视频资源 | av中文字幕网址 | 日韩成人免费在线观看 | 四虎www| 成人在线电影观看 | 91黄色在线看 | 久久久国产一区二区三区 | 欧美在线观看视频 | 不卡视频一区二区三区 | 久久国内免费视频 | 日韩国产高清在线 | 日韩激情中文字幕 | 少妇av网| 蜜臀av麻豆 | 国产美女视频网站 | 网站在线观看日韩 | 久久久精品欧美一区二区免费 | 最近日本韩国中文字幕 | 91最新国产 | 波多野结衣一区二区三区中文字幕 | 久艹视频在线观看 | 一区免费观看 | 久久精品国产免费看久久精品 | 美女视频永久黄网站免费观看国产 | 亚洲国产日韩av | 久久综合色8888 | 蜜臀久久99精品久久久久久网站 | www欧美xxxx | 日韩中文字幕免费电影 | 精品国产一区二区三区不卡 | 亚洲综合日韩在线 | 亚洲午夜久久久影院 | 国产三级在线播放 | 日韩 在线a | 欧美日韩国产精品一区二区三区 | 国产欧美精品一区二区三区 | 成年人黄色大全 | 91桃色视频 | 亚洲国产免费网站 | 国产激情电影综合在线看 | 国产精品久久久久久久久久三级 | 玖玖在线视频观看 | 一区二区三区中文字幕在线观看 | av色图天堂网 | 成人av电影免费在线播放 | 天天射天天 | 人人澡人人澡人人 | 中文字幕精品一区 | 日韩视频在线观看视频 | 欧美日韩一区二区三区不卡 | 精品国产一区在线观看 | 亚洲爱av | 日韩免费三级 | 久久久不卡影院 | 国产亚洲精品美女久久 | 91精品在线观看入口 | 日本久久91 | 成人动图 | 精品久久久久久综合日本 | 国产亚洲精品日韩在线tv黄 | 亚洲精品乱码久久久久久按摩 | 国产高清视频色在线www | 美女黄网站视频免费 | 不卡av在线免费观看 | 国产中的精品av小宝探花 | 最近中文字幕免费视频 | 激情婷婷久久 | 欧美一级免费片 | 最近中文字幕国语免费av | 色婷婷综合久色 | 五月婷婷六月丁香在线观看 | 国产精品嫩草影院123 | 亚洲在线网址 | 91传媒在线观看 | 五月综合色婷婷 | 国产免费av一区二区三区 | 婷婷在线视频 | 久久精品第一页 | 一区二区三区免费播放 | 久久综合九色综合欧美狠狠 | 日韩r级在线 | 亚洲一区二区视频在线 | 伊人五月天婷婷 | 亚洲视频1区2区 | 中文在线免费观看 | 99色精品视频 | av综合网址 | 91亚洲网站 | 国产精品美女久久久久久久久 | 久久久久在线视频 | 国产成人av免费在线观看 | 国产精品久久久久久69 | 久久兔费看a级 | 久久精品国产免费看久久精品 | 日韩精品一区二区在线观看视频 | 精品主播网红福利资源观看 | 天天操天天爽天天干 | 精品久久久久免费极品大片 | 久久综合久色欧美综合狠狠 | 日韩免费看的电影 | 日韩久久激情 | 国产精品18久久久久vr手机版特色 | www色网站 | 五月天综合网站 | 青青草在久久免费久久免费 | 午夜18视频在线观看 | 国产午夜精品一区二区三区在线观看 | 日韩免费高清 | 在线观看黄网站 | 日韩精品专区在线影院重磅 | 99精品系列 | 97精品国产91久久久久久 | 97操操操| 99精品久久久久久久久久综合 | 中文字幕在线观看av | www.狠狠插.com | 美女国产免费 | 五月婷婷激情 | 成人a免费 | 国产日产精品久久久久快鸭 | 日韩在线观看网址 | 91精品伦理 | 亚洲在线精品视频 | 91手机在线看片 | 国产只有精品 | 97在线精品 | 粉嫩aⅴ一区二区三区 | 日日操天天爽 | 久久日韩精品 | 日韩理论在线播放 | 色婷婷丁香 | 7777xxxx| 亚洲狠狠丁香婷婷综合久久久 | 五月婷婷深开心 | 国产 成人 久久 | 精品久久久久久久久久久久久久久久 | 99在线免费观看 | 香蕉视频在线视频 | www亚洲一区 | 福利电影一区二区 | 国产精品女同一区二区三区久久夜 | 在线 欧美 日韩 | 久久免费在线观看视频 | 国产美女无遮挡永久免费 | 18性欧美xxxⅹ性满足 | 中文字幕传媒 | 四虎成人免费影院 | 久久成人视屏 | 欧美 日韩 性 | 久久午夜免费视频 | 最新动作电影 | 99精品国产99久久久久久福利 | www黄色av| 久99久久 | 91资源在线观看 | 国产免费又爽又刺激在线观看 | 精品在线不卡 | 五月婷婷久 | 日韩精品一区在线观看 | 天堂在线免费视频 | 1024手机在线看 | 美女久久久久 | 九九热精品视频在线观看 | 免费观看一级 | 手机看片1042 | 日韩剧 | 在线观看www视频 | 欧美先锋影音 | 成人影片在线免费观看 | 亚洲毛片一区二区三区 | 国产日产精品一区二区三区四区 | 国产一区二区在线视频观看 | 三级毛片视频 | 成人欧美亚洲 | 色九九在线 | 久久人人看 | 国产精品视频区 | 久久久久国产精品一区二区 | 国产精品久久网 | 久久久91精品国产 | 精品在线一区二区 | 日韩在线高清免费视频 | 中文字幕视频在线播放 | 免费一级日韩欧美性大片 | 天天干夜夜爱 |