<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## \[11+\][$]一.lambda 1. 概念 **匿名函數** 2. 語法格式 + 必須使用尾置返回來指定函數的返回類型。 + **捕獲列表** 向lambda傳入的外部函數的變量列表。可空,不可省。 + **參數表** 可省。若省略,則表示沒有參數。 + **返回類型** 可省。若省略,則編譯器從函數體的返回值類型中推斷類型。 + **函數體** 不可省。 ```c++ [捕獲列表] (參數表) -> 返回類型 {函數體} ``` 3. 當定義一個 `lambda` 時,編譯器生成一個與 `lambda` 對應的新的匿名類類型并定義一個該類的常對象。 + 捕獲列表相當于這個類的數據成員。在對象初始化時進行初始化,且默認為常數據成員。若需要對這些成員進行修改,需要在參數列表后加上 `mutable`,此時參數列表也不可省 。 `[捕獲列表] () mutable -> 返回類型 {函數體}` + `(參數表) -> 返回類型 {函數體}` 這一部分相當于重載了函數調用運算符。參數在對象調用時初始化。 ## \[11+\][$]二.lambda捕獲 1. 值捕獲,在捕獲列表中寫變量名稱。對象創建時會將值拷貝一份。 >[warning] 請使用 支持C++11標準的編譯器運行此例。 ```c++ #include <iostream> using namespace std; int main() { int size = 20; auto f = [size] { return size; }; cout << f(); return 0; } ``` >[test] >20 2. 引用捕獲,在捕獲列表中寫變量名稱,并在左邊加上 `&` 符號。對象創建時不會將值拷貝一份。 >[warning] 請使用 支持C++11標準的編譯器運行此例。 ```c++ #include <iostream> using namespace std; int main() { int size = 20; auto f = [&size] { return size; }; cout << f(); return 0; } ``` >[test] >20 3. 隱式捕獲( `=` 和 `&` )。自動捕獲外部函數內的所有變量。 4. 總結 | 寫法|說明| | ----| ----| | [&變量1,變量2,...]|變量1進行引用捕獲,變量2進行值捕獲| | [this]|捕獲this指針| | [&]|所有變量進行引用捕獲| | [=]|所有變量進行值捕獲| | [&,變量列表]|變量列表中的變量進行值捕獲,其余變量進行引用捕獲| | [=,變量列表]|變量列表中的變量進行引用捕獲,其余變量進行值捕獲| ## [$]三.可調用對象 1. **概念** 可以通過函數調用運算符進行調用的對象。 2. **類型** 函數、函數指針、重載了函數調用運算符的對象、lambda
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看