C 1x的應用總結之一移動捕獲

2021-08-03 10:15:21 字數 876 閱讀 1944

c++1x的應用總結之一移動捕獲

在應用的工程中看到了如下的**,以前還真沒這麼用過:

auto&& task = [e = std::move(ptr)]() mutable

int main(void)

[a = get(a)]() 

cout << a << endl; 

但是一按上面的分析發現就非常簡單了。兩個小a不是乙個變數,=號左面的是閉包內部自動宣告的,由編譯器來推導型別。後面的小a是捕獲的外面的變數。

不過真正有意義的應該還是最上面介紹的在移動時的意義。

如果在c++11中不能使用這種特性,事情也就比較不好辦了,但是可以類似於函式指標和std::function來寫,或者說用bind來實現。

多說一句,看lambda表示式(c++11 起)的說明:

構造乙個閉包:能夠捕獲作用域中變數的無名函式。

語法[ capture-list] ( params ) mutable(可選) constexpr(可選)(c++17) exception attribute -> ret   (1)   

[ capture-list ] ( params ) ->ret         (2)

[ capture-list] ( params )      (3)   

[ capture-list]       (4)   

看上面給的例程:

struct x ;

和這個:

int&(*fpi)(int*) = (auto* a)->auto& ; // ok

這兩個例程出自:

新技術和新思想層出不窮啊,有點兒力拙的表現。

C 之static的應用

static關鍵字是c,c 中都存在的關鍵字,它主要有三種使用方式,其中前兩種在c c 語言中使用,第三種只在c 中使用 1 區域性靜態變數 2 外部靜態變數 函式 3 靜態資料成員 成員函式 一 區域性靜態變數 在c c 中,區域性變數按照儲存形式可分為三種auto,static,register...

關於C 學習初步總結(1)C 對C的擴充套件1

我又開始了!不做筆記一直聽真的好難受,聽說大佬都喜歡做總結所以我就向大佬學習一下8 1.常用運算子 2.常用控制符 設定十進位制輸入 cout please input b in hexadecimal cin hex b 設定十六進製制輸入 cout please input c in octal...

c 在vc 中的應用基礎 1

公司最近有個廣告ts流生成器的工具,需要用到mfc來實現。mfc斷斷續續學了半年,似懂非懂。下週3要催著交demo,頓時感到壓力和緊迫。於是重拾c 我一直相信 無論時光怎麼流逝,技術怎麼發展,基礎的東西永遠都不會過時。mfc說白了就是c 各種類的封裝,組合的一種微軟定製的框架。只要靜下來認真的搞,一...