• <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>

            的筆記

            隨時(shí)隨地編輯

            耍點(diǎn)C++11/14的小流氓

            C普拉斯普拉斯耶標(biāo)準(zhǔn)委員會(huì)的無上尊寵的元老們是不是晚年耍得很high耶

            所謂耍流氓,耍,玩弄,流氓,不忍淬讀的技巧


            lambda


            lambda
            [] // 沒有定義任何變量。使用未定義變量會(huì)引發(fā)錯(cuò)誤。
            [x, &y] // x以傳值方式傳入(默認(rèn)),y以引用方式傳入。
            [&] // 任何被使用到的外部變量都隱式地以引用方式加以引用。
            [=] // 任何被使用到的外部變量都隱式地以傳值方式加以引用。
            [&, x] // x顯式地以傳值方式加以引用。其余變量以引用方式加以引用。
            [=, &z] // z顯式地以引用方式加以引用。其余變量以傳值方式加以引用。

            傳返回值:
            auto Foo = []()-> Type { return Value;}
            函數(shù)聲明了返回值類型,但是似乎可以不返回值

            thread

            <占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述>
          1. <占位項(xiàng)1>
          2. <占位項(xiàng)2>

          3. template

            <占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述>
          4. <占位項(xiàng)1>
          5. <占位項(xiàng)2>

          6. bind

            provides support for partial function application, i.e. binding arguments to functions to produce new functions.
            丫就一lambda,參考cplusplus的示例, 參考cppreference的示例。 bind上2個(gè)玩意后,就產(chǎn)生了一個(gè)新玩意,這個(gè)新玩意可以拿來當(dāng)一般方法來訪問了。

            功效

          7. 特化函數(shù)參數(shù)組裝成一個(gè)新函數(shù),例如讓第二個(gè)形參固定,特化嘛
          8. 強(qiáng)制轉(zhuǎn)換函數(shù)返回值,淫家本來返回float,搞個(gè)bind(fun, _1),返回int了,硬是掰彎了
          9. 暴露類成員方法,用bind產(chǎn)生一個(gè)新方法,這樣可以用類的某個(gè)對(duì)象call新方法了
          10.   auto newfun = std::bind (&MyClass::foo,_1)
              MyClass obj1,obj2;
            如此,可以這樣搞了:
              newfun(obj1);newfun(obj2);
            爽了2把哈?

            總結(jié)下bind類成員方法的規(guī)則:
            bind(成員方法的坑,類對(duì)象的坑,形參1的坑,新參2的坑)
            bind(&MyClass::memberfun,&obj或者_(dá)1,常量或_2,常量或_3)


            cplusplus示例中fn_five()產(chǎn)生的調(diào)用堆棧

            my_divide()
            TestClient.exe!std::_Invoker_functor::_Call
            TestClient.exe!std::invoke
            TestClient.exe!std::_Invoke_ret
            TestClient.exe!std::_Call_binder,std::tuple<> >
            TestClient.exe!std::_Binder::operator()<>
            

            function

            屁話不多說了,直接看cppreference示例。
            還可以參考:
          11. http://www.cplusplus.com/reference/functional/function/

          12. 接2句廢話,可以這樣將類成員方法和對(duì)象綁定成一個(gè)新方法,是不是在處理網(wǎng)絡(luò)消息協(xié)議時(shí)很有用哇

            using std::placeholders::_1;
            // store a call to a member function and object
            std::function f_add_display2 = std::bind(&Foo::print_add, foo, _1);
            f_add_display2(2);
            
            // store a call to a member function and object ptr
            std::function f_add_display3 = std::bind(&Foo::print_add, &foo, _1);
            f_add_display3(3);
            

            placeholders

            This namespace declares an unspecified number of objects: _1,_2,_3,..., which are used to specifyplaceholdersin calls to functionbind.

            啟用placeholders

            using namespace std::placeholders; // adds visibility of _1, _2, _3,...
          13. http://www.cplusplus.com/reference/functional/placeholders/

          14. forward

            <占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述>
          15. <占位項(xiàng)1>
          16. <占位項(xiàng)2>

          17. 小流氓

            <占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述>
          18. <占位項(xiàng)1>
          19. <占位項(xiàng)2>

          20. 小流氓

            <占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述>
          21. <占位項(xiàng)1>
          22. <占位項(xiàng)2>

          23. 小流氓

            <占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述>
          24. <占位項(xiàng)1>
          25. <占位項(xiàng)2>

          26. posted on 2017-01-14 18:48 的筆記 閱讀(215) 評(píng)論(0)  編輯 收藏 引用 所屬分類: C++

            国产精品99久久久久久猫咪| 很黄很污的网站久久mimi色| 久久天天躁狠狠躁夜夜avapp | 欧美午夜A∨大片久久 | 久久精品国产只有精品66| 精产国品久久一二三产区区别| 亚洲色大成网站WWW久久九九| 久久大香香蕉国产| 久久午夜夜伦鲁鲁片免费无码影视| 久久亚洲精品无码VA大香大香| 久久精品无码一区二区三区日韩 | 欧美日韩久久中文字幕| 无码国内精品久久人妻| 狠狠综合久久综合中文88| 日日狠狠久久偷偷色综合96蜜桃| 久久亚洲精品中文字幕| 久久精品综合网| 国产精品久久久久a影院| 精品一区二区久久久久久久网站| 人妻久久久一区二区三区| 久久久久婷婷| 情人伊人久久综合亚洲| a级毛片无码兔费真人久久| 日韩乱码人妻无码中文字幕久久| 久久播电影网| 日本久久久久久中文字幕| 欧美大香线蕉线伊人久久| 国内精品久久久久影院亚洲| 久久精品国产亚洲7777| 精品国产婷婷久久久| 日本三级久久网| 色综合久久天天综合| 久久久久黑人强伦姧人妻| 亚洲第一极品精品无码久久| 少妇人妻88久久中文字幕| 亚洲va久久久噜噜噜久久天堂| 久久久精品国产sm调教网站| 久久久久久免费视频| 亚洲国产精品无码久久久久久曰 | 婷婷综合久久狠狠色99h| 精品久久无码中文字幕|