﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-r2100-文章分类-C++</title><link>http://www.cppblog.com/r2100/category/21113.html</link><description /><language>zh-cn</language><lastBuildDate>Sun, 28 Jun 2015 15:44:29 GMT</lastBuildDate><pubDate>Sun, 28 Jun 2015 15:44:29 GMT</pubDate><ttl>60</ttl><item><title>boost bind,function</title><link>http://www.cppblog.com/r2100/articles/211078.html</link><dc:creator>r2100</dc:creator><author>r2100</author><pubDate>Sun, 28 Jun 2015 15:25:00 GMT</pubDate><guid>http://www.cppblog.com/r2100/articles/211078.html</guid><wfw:comment>http://www.cppblog.com/r2100/comments/211078.html</wfw:comment><comments>http://www.cppblog.com/r2100/articles/211078.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/r2100/comments/commentRss/211078.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/r2100/services/trackbacks/211078.html</trackback:ping><description><![CDATA[<div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;boost.cpp&nbsp;:&nbsp;定义控制台应用程序的入口点。<br /></span><span style="color: #008080; ">&nbsp;2</span>&nbsp;<span style="color: #008000; "></span><span style="color: #008000; ">//<br /></span><span style="color: #008080; ">&nbsp;3</span>&nbsp;<span style="color: #008000; "></span><br /><span style="color: #008080; ">&nbsp;4</span>&nbsp;#include&nbsp;"stdafx.h"<br /><span style="color: #008080; ">&nbsp;5</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;6</span>&nbsp;#include&nbsp;&lt;iostream&gt;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;7</span>&nbsp;#include&nbsp;&lt;boost/thread/thread.hpp&gt;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;8</span>&nbsp;#include&nbsp;&lt;boost/bind.hpp&gt;<br /><span style="color: #008080; ">&nbsp;9</span>&nbsp;#include&nbsp;&lt;boost/function.hpp&gt;<br /><span style="color: #008080; ">10</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;hello(<span style="color: #0000FF; ">int</span>&nbsp;i,&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;j)&nbsp;&nbsp;<br /><span style="color: #008080; ">11</span>&nbsp;{&nbsp;&nbsp;<br /><span style="color: #008080; ">12</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;std::cout&nbsp;&lt;&lt;&nbsp;"Hello&nbsp;world,&nbsp;I'm&nbsp;a&nbsp;thread!"&nbsp;&lt;&lt;&nbsp;std::endl;&nbsp;&nbsp;<br /><span style="color: #008080; ">13</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;std::cout&lt;&lt;&nbsp;i+j&nbsp;&lt;&lt;&nbsp;std::endl;<br /><span style="color: #008080; ">14</span>&nbsp;}&nbsp;&nbsp;<br /><span style="color: #008080; ">15</span>&nbsp;<br /><span style="color: #008080; ">16</span>&nbsp;<span style="color: #0000FF; ">class</span>&nbsp;A<br /><span style="color: #008080; ">17</span>&nbsp;{<br /><span style="color: #008080; ">18</span>&nbsp;<span style="color: #0000FF; ">public</span>:<br /><span style="color: #008080; ">19</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;hello(<span style="color: #0000FF; ">int</span>&nbsp;i,&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;j){<br /><span style="color: #008080; ">20</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;std::cout&lt;&lt;i+j&lt;&lt;std::endl;<br /><span style="color: #008080; ">21</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">22</span>&nbsp;};<br /><span style="color: #008080; ">23</span>&nbsp;<br /><span style="color: #008080; ">24</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;_tmain(<span style="color: #0000FF; ">int</span>&nbsp;argc,&nbsp;_TCHAR*&nbsp;argv[])<br /><span style="color: #008080; ">25</span>&nbsp;{<br /><span style="color: #008080; ">26</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">boost::thread&nbsp;thrd(&amp;hello);&nbsp;&nbsp;<br /></span><span style="color: #008080; ">27</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">thrd.join();&nbsp;<br /></span><span style="color: #008080; ">28</span>&nbsp;<span style="color: #008000; "></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;bind<br /></span><span style="color: #008080; ">29</span>&nbsp;<span style="color: #008000; "></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A&nbsp;a;<br /></span><span style="color: #008080; ">30</span>&nbsp;<span style="color: #008000; "></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;boost::bind(&amp;A::hello,&nbsp;a,&nbsp;1,&nbsp;2)(1,2);<br /></span><span style="color: #008080; ">31</span>&nbsp;<span style="color: #008000; "></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;boost::function&lt;void(int,int)&gt;&nbsp;f;<br /></span><span style="color: #008080; ">32</span>&nbsp;<span style="color: #008000; "><br /></span><span style="color: #008080; ">33</span>&nbsp;<span style="color: #008000; "></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;function<br /></span><span style="color: #008080; ">34</span>&nbsp;<span style="color: #008000; "></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;boost::function&lt;void(int,int)&gt;&nbsp;f;<br /></span><span style="color: #008080; ">35</span>&nbsp;<span style="color: #008000; "></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f&nbsp;=&nbsp;hello;<br /></span><span style="color: #008080; ">36</span>&nbsp;<span style="color: #008000; "></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f(1,2);</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">37</span>&nbsp;<span style="color: #008000; "></span><br /><span style="color: #008080; ">38</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A&nbsp;a;<br /><span style="color: #008080; ">39</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;boost::function&lt;<span style="color: #0000FF; ">void</span>(A,<span style="color: #0000FF; ">int</span>,&nbsp;<span style="color: #0000FF; ">int</span>)&gt;&nbsp;cf;<br /><span style="color: #008080; ">40</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cf=&amp;A::hello;<br /><span style="color: #008080; ">41</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cf(a,1,2);<br /><span style="color: #008080; ">42</span>&nbsp;<br /><span style="color: #008080; ">43</span>&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;bind&nbsp;&amp;&nbsp;function&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">44</span>&nbsp;<span style="color: #008000; "></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;boost::function&lt;void(int,int)&gt;&nbsp;f;<br /></span><span style="color: #008080; ">45</span>&nbsp;<span style="color: #008000; "></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f=boost::bind(hello,_1,_2);<br /></span><span style="color: #008080; ">46</span>&nbsp;<span style="color: #008000; "></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f(1,1);<br /></span><span style="color: #008080; ">47</span>&nbsp;<span style="color: #008000; "></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;<br /></span><span style="color: #008080; ">48</span>&nbsp;<span style="color: #008000; "></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A&nbsp;a;<br /></span><span style="color: #008080; ">49</span>&nbsp;<span style="color: #008000; "></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;boost::function&lt;void(int,&nbsp;int)&gt;&nbsp;cf;<br /></span><span style="color: #008080; ">50</span>&nbsp;<span style="color: #008000; "></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cf=boost::bind(&amp;A::hello,a,_1,_2);<br /></span><span style="color: #008080; ">51</span>&nbsp;<span style="color: #008000; "></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cf(1,1);<br /></span><span style="color: #008080; ">52</span>&nbsp;<span style="color: #008000; "></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;<br /></span><span style="color: #008080; ">53</span>&nbsp;<span style="color: #008000; "></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;boost::function&lt;&gt;</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">54</span>&nbsp;<span style="color: #008000; "></span><br /><span style="color: #008080; ">55</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br /><span style="color: #008080; ">56</span>&nbsp;}<br /><span style="color: #008080; ">57</span>&nbsp;</div></div><img src ="http://www.cppblog.com/r2100/aggbug/211078.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/r2100/" target="_blank">r2100</a> 2015-06-28 23:25 <a href="http://www.cppblog.com/r2100/articles/211078.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>