﻿<?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++博客-力为的技术博客-随笔分类-4. C++ FAQ</title><link>http://cppblog.com/mythma/category/146.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 15 Nov 2017 22:09:52 GMT</lastBuildDate><pubDate>Wed, 15 Nov 2017 22:09:52 GMT</pubDate><ttl>60</ttl><item><title>VS2010 Win32编译失败一例</title><link>http://www.cppblog.com/mythma/archive/2017/11/15/215349.html</link><dc:creator>力为</dc:creator><author>力为</author><pubDate>Wed, 15 Nov 2017 11:07:00 GMT</pubDate><guid>http://www.cppblog.com/mythma/archive/2017/11/15/215349.html</guid><wfw:comment>http://www.cppblog.com/mythma/comments/215349.html</wfw:comment><comments>http://www.cppblog.com/mythma/archive/2017/11/15/215349.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/mythma/comments/commentRss/215349.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mythma/services/trackbacks/215349.html</trackback:ping><description><![CDATA[<div><br />在编译一个第三方库的时候出现如下错误：<br /><br />C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\Microsoft.<span style="background-color: #ffffff; color: #333333; font-family: arial; font-size: 13px;">Cpp.Win32.Targets(157,5):<br /><br />症状<br />Release编译没问题，只有Debug出现上述错误。<br /><br />&#8220;解决&#8221;办法&#8221;<br />把调试信息格式设置为空<br />C/C+++/常规/</span><span style="color: #333333; font-family: arial; font-size: 13px; background-color: #ffffff;">调试信息格式</span></div><img src ="http://www.cppblog.com/mythma/aggbug/215349.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mythma/" target="_blank">力为</a> 2017-11-15 19:07 <a href="http://www.cppblog.com/mythma/archive/2017/11/15/215349.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>std::vector使用一例</title><link>http://www.cppblog.com/mythma/archive/2015/11/03/using-std-vector-in-point-cloud.html</link><dc:creator>力为</dc:creator><author>力为</author><pubDate>Tue, 03 Nov 2015 08:43:00 GMT</pubDate><guid>http://www.cppblog.com/mythma/archive/2015/11/03/using-std-vector-in-point-cloud.html</guid><wfw:comment>http://www.cppblog.com/mythma/comments/212174.html</wfw:comment><comments>http://www.cppblog.com/mythma/archive/2015/11/03/using-std-vector-in-point-cloud.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/mythma/comments/commentRss/212174.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mythma/services/trackbacks/212174.html</trackback:ping><description><![CDATA[<h1>1. 准备</h1><p style="margin: 4px 0px; padding: 2px 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: normal; background-color: #ffffff;">使用std::vector应该知道几点：</p><p style="margin: 4px 0px; padding: 2px 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: normal; background-color: #ffffff;">（1）内存连续的容器，有点像数组</p><p style="margin: 4px 0px; padding: 2px 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: normal; background-color: #ffffff;">（2）与std::list相比，插入和删除元素比较慢- 因为数据迁移</p><p style="margin: 4px 0px; padding: 2px 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: normal; background-color: #ffffff;">（3）添加元素可能会引发内存分配和数据迁移。</p><h1>2. 问题</h1><p style="margin: 4px 0px; padding: 2px 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: normal; background-color: #ffffff;">AnyCAD::API::PointCloudNode使用FloatList &nbsp;及std::vector&lt;float&gt;来存储一些列的点[x0, y0, z0, x1, y1, z1, .....]:</p><table xhe-border"="" style="border-color: #d3d3d3;"><tbody><tr><td align="right" valign="top" style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; border-color: #d3d3d3;">void&nbsp;</td><td valign="bottom" style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; border-color: #d3d3d3;">SetPoints&nbsp;(const FloatList &amp;buffer)</td></tr></tbody></table><p style="margin: 4px 0px; padding: 2px 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: normal; background-color: #ffffff;"><br /></p><p style="margin: 4px 0px; padding: 2px 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: normal; background-color: #ffffff;">若想要显示n个点，需要3n的长度:<br /></p><p style="margin: 4px 0px; padding: 2px 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: normal; background-color: #ffffff;"><br /></p><p style="margin: 4px 0px; padding: 2px 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: normal; background-color: #ffffff;">为了在空间中模拟某个物体的运动轨迹，即一系列的点，如何才能高效的实现动态绘制呢？</p><p style="margin: 4px 0px; padding: 2px 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: normal; background-color: #ffffff;"><img src="http://ww2.sinaimg.cn/bmiddle/72555d50gw1exnuml7rvuj20gj08yaar.jpg" _xhe_src="http://ww2.sinaimg.cn/bmiddle/72555d50gw1exnuml7rvuj20gj08yaar.jpg" style="max-width: 98%;"  alt="" /><br /></p><p style="margin: 4px 0px; padding: 2px 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: normal; background-color: #ffffff;"><br /></p><h1>3. 方案</h1><p style="margin: 4px 0px; padding: 2px 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: normal; background-color: #ffffff;">最基本的办法：</p><p style="margin: 4px 0px; padding: 2px 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: normal; background-color: #ffffff;">定义的变量:</p><pre name="code" style="margin-top: 4px; margin-bottom: 4px; background-color: #f0f0f0;">PointCloudNode m_PointCoud; <br />std::_vector&lt;float&gt; m_Points;</pre><br />每次调用push_back添加点：<p>&nbsp;</p><p style="margin: 4px 0px; padding: 2px 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: normal; background-color: #ffffff;"></p><pre name="code" style="margin-top: 4px; margin-bottom: 4px; background-color: #f0f0f0;"><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: #0000FF; ">void</span>&nbsp;onAddPoint(x,&nbsp;y,&nbsp;z)&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_Points.push(x);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_Points.push(y);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_Points.push(z);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_PointCloud.SetPoints(m_Points);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;render();<br />&nbsp;}</div></pre><br />&#8220;优化1&#8221;：为了减少显示的点太多引起内存问题和效率问题，可以限定显示的点的个数<p>&nbsp;</p><p style="margin: 4px 0px; padding: 2px 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: normal; background-color: #ffffff;"></p><pre name="code" style="margin-top: 4px; margin-bottom: 4px; background-color: #f0f0f0;">int MAX_POINT3_COUNT = MAX_POINT_COUNT * 3;</pre><br /><p>&nbsp;</p><p style="margin: 4px 0px; padding: 2px 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: normal; background-color: #ffffff;"></p><pre name="code" style="margin-top: 4px; margin-bottom: 4px; background-color: #f0f0f0;"><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: #0000FF; ">void</span>&nbsp;onAddPointV1(x,&nbsp;y,&nbsp;z)&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(m_Points.size()&nbsp;&gt;&nbsp;MAX_POINT3_COUNT)<br />&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_Points.erase(m_Points.begin());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_Points.erase(m_Points.begin());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_Points.erase(m_Points.begin());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_Points.push(x);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_Points.push(y);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_Points.push(z);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_PointCloud.SetPoints(m_Points);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;render();<br />&nbsp;}</div></pre><p>&nbsp;</p><p style="margin: 4px 0px; padding: 2px 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: normal; background-color: #ffffff;">onAddPointV1引入了什么问题？</p><p style="margin: 4px 0px; padding: 2px 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: normal; background-color: #ffffff;"><br /></p><p style="margin: 4px 0px; padding: 2px 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: normal; background-color: #ffffff;">优化2：避免每次vector都重新分配内存，指定vector的初始内存大小</p><p style="margin: 4px 0px; padding: 2px 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: normal; background-color: #ffffff;"></p><pre name="code" style="margin-top: 4px; margin-bottom: 4px; background-color: #f0f0f0;">m_Points.reserve(MAX_POINT3_COUNT);</pre><br />优化3：避免由于删除头元素引擎的数据迁移<p>&nbsp;</p><p style="margin: 4px 0px; padding: 2px 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: normal; background-color: #ffffff;">新加入的点放在队尾还是队头，对于显示而言，结果都是一样一样的。所以可以覆盖&#8221;过期的"的点。</p><p style="margin: 4px 0px; padding: 2px 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: normal; background-color: #ffffff;">int m_TotalCount = 0;</p><p style="margin: 4px 0px; padding: 2px 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: normal; background-color: #ffffff;"></p><pre name="code" style="margin-top: 4px; margin-bottom: 4px; background-color: #f0f0f0;"><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: #0000FF; ">void</span>&nbsp;onAddPointV3(x,&nbsp;y,&nbsp;z)&nbsp;<br />{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;++m_TotalCount;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(m_TotalCount&nbsp;&lt;=&nbsp;MAX_POINT_COUNT)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_Points.push_back(x);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_Points.push_back(y);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_Points.push_back(z);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;pos&nbsp;=&nbsp;(m_TotalCount&nbsp;%&nbsp;100&nbsp;-&nbsp;1)&nbsp;*&nbsp;3;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_Points[pos]&nbsp;=&nbsp;x;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_Points[pos+1]&nbsp;=&nbsp;y;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_Points[pos+2]&nbsp;=&nbsp;z;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_PointCloud.SetPoints(m_Points);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;render();&nbsp;<br />}</div></pre><br /><h1>4 总结</h1><p>&nbsp;</p><p style="margin: 4px 0px; padding: 2px 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: normal; background-color: #ffffff;">略</p><p style="margin: 4px 0px; padding: 2px 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: normal; background-color: #ffffff;"><br /></p><p style="margin: 4px 0px; padding: 2px 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: normal; background-color: #ffffff;"><br /></p><p style="margin: 4px 0px; padding: 2px 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: normal; background-color: #ffffff;"><br /></p><img src ="http://www.cppblog.com/mythma/aggbug/212174.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mythma/" target="_blank">力为</a> 2015-11-03 16:43 <a href="http://www.cppblog.com/mythma/archive/2015/11/03/using-std-vector-in-point-cloud.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>istreambuf_iterator 使用</title><link>http://www.cppblog.com/mythma/archive/2015/08/07/istreambuf_iterator.html</link><dc:creator>力为</dc:creator><author>力为</author><pubDate>Fri, 07 Aug 2015 05:42:00 GMT</pubDate><guid>http://www.cppblog.com/mythma/archive/2015/08/07/istreambuf_iterator.html</guid><wfw:comment>http://www.cppblog.com/mythma/comments/211500.html</wfw:comment><comments>http://www.cppblog.com/mythma/archive/2015/08/07/istreambuf_iterator.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/mythma/comments/commentRss/211500.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mythma/services/trackbacks/211500.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 />-->&nbsp; &nbsp; &nbsp; &nbsp; std::<span style="color: #0000FF; ">string</span>&nbsp;str;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file.seekg(0,&nbsp;std::ios::end);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str.reserve(file.tellg());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file.seekg(0,&nbsp;std::ios::beg);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str.assign((std::istreambuf_iterator&lt;<span style="color: #0000FF; ">char</span>&gt;(file)),&nbsp;std::istreambuf_iterator&lt;<span style="color: #0000FF; ">char</span>&gt;());</div></div><img src ="http://www.cppblog.com/mythma/aggbug/211500.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mythma/" target="_blank">力为</a> 2015-08-07 13:42 <a href="http://www.cppblog.com/mythma/archive/2015/08/07/istreambuf_iterator.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>临时对象引用</title><link>http://www.cppblog.com/mythma/archive/2015/01/13/209497.html</link><dc:creator>力为</dc:creator><author>力为</author><pubDate>Tue, 13 Jan 2015 06:24:00 GMT</pubDate><guid>http://www.cppblog.com/mythma/archive/2015/01/13/209497.html</guid><wfw:comment>http://www.cppblog.com/mythma/comments/209497.html</wfw:comment><comments>http://www.cppblog.com/mythma/archive/2015/01/13/209497.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/mythma/comments/commentRss/209497.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mythma/services/trackbacks/209497.html</trackback:ping><description><![CDATA[VS允许引用临时对象，而gcc则禁止引用临时对象。<br />比如：<br /><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: #0000FF; ">int</span>&nbsp;a&nbsp;=&nbsp;100;<br /><span style="color: #0000FF; ">int</span>&nbsp;b&nbsp;=&nbsp;200;<br /><span style="color: #0000FF; ">int</span>&amp;&nbsp;c&nbsp;=&nbsp;a&nbsp;-&nbsp;b;&nbsp;</div><br />再如：<br /><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: #0000FF; ">int</span>&nbsp;sum(<span style="color: #0000FF; ">int</span>&amp;&nbsp;a,&nbsp;<span style="color: #0000FF; ">int</span>&amp;&nbsp;b)<br />{<br />&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;a&nbsp;+&nbsp;b;<br />}<br /><br />sum(1,&nbsp;2);</div><br /><br />再比如取临时对象的地址：<br /><div style="font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all; background-color: #eeeeee;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><br /><span style="color: #0000FF; ">void</span>&nbsp;div(MyClass*&nbsp;a)<br />{<br />&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; "><img src="http://www.cppblog.com/Images/dot.gif"  alt="" />.</span><span style="color: #008000; "><br /></span>}<br /><br />div(&amp;MyClass());</div><br /><br />以上用法VS竟然统统允许编译通过。<br /><div style="font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all; background-color: #eeeeee;"></div><img src ="http://www.cppblog.com/mythma/aggbug/209497.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mythma/" target="_blank">力为</a> 2015-01-13 14:24 <a href="http://www.cppblog.com/mythma/archive/2015/01/13/209497.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>布尔变量初始值(2)</title><link>http://www.cppblog.com/mythma/archive/2015/01/06/debug-release-bool-f5-ctrl-f5.html</link><dc:creator>力为</dc:creator><author>力为</author><pubDate>Tue, 06 Jan 2015 08:43:00 GMT</pubDate><guid>http://www.cppblog.com/mythma/archive/2015/01/06/debug-release-bool-f5-ctrl-f5.html</guid><wfw:comment>http://www.cppblog.com/mythma/comments/209406.html</wfw:comment><comments>http://www.cppblog.com/mythma/archive/2015/01/06/debug-release-bool-f5-ctrl-f5.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/mythma/comments/commentRss/209406.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mythma/services/trackbacks/209406.html</trackback:ping><description><![CDATA[<div>之前遇到过的问题-<a id="viewpost1_TitleUrl" href="http://www.cppblog.com/mythma/archive/2011/04/16/144365.html">布尔变量初始值</a> ，最近又遇到了。<br /><br />重新整理一下bool在VS2010中的未初始化时候的值：<br />
<table style="border-collapse: collapse" cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<td style="border-top: #f0f0f0; border-right: #f0f0f0;background: #b8cce4; border-bottom: white 1pt solid; padding-bottom: 0cm; padding-top: 0cm; padding-left: 5.4pt; border-left: #f0f0f0; padding-right: 5.4pt; width: 142pt" valign="top" width="189">
<p><strong><span style="color: white">&nbsp;</span></strong></p></td>
<td style="border-top: #f0f0f0; border-right: #f0f0f0;background: #b8cce4; border-bottom: white 1pt solid; padding-bottom: 0cm; padding-top: 0cm; padding-left: 5.4pt; border-left: #f0f0f0; padding-right: 5.4pt; width: 142.05pt" valign="top" width="189">
<p><strong><span style="font-family: 'Verdana','sans-serif'; color: black">F5 </span></strong><strong><span style="font-family: 宋体; color: black">：调试</span></strong></p></td>
<td style="border-top: #f0f0f0; border-right: #f0f0f0;background: #b8cce4; border-bottom: white 1pt solid; padding-bottom: 0cm; padding-top: 0cm; padding-left: 5.4pt; border-left: #f0f0f0; padding-right: 5.4pt; width: 142.05pt" valign="top" width="189">
<p><strong><span style="font-family: 'Verdana','sans-serif'; color: black">CTRL+F5</span></strong><strong><span style="font-family: 宋体; color: black">：执行</span></strong></p></td></tr>
<tr>
<td style="border-top: #f0f0f0; border-right: #f0f0f0;background: #365f91; border-bottom: white 1pt solid; padding-bottom: 0cm; padding-top: 0cm; padding-left: 5.4pt; border-left: #f0f0f0; padding-right: 5.4pt; width: 142pt" valign="top" width="189">
<p><span style="color: white">DEBUG</span></p></td>
<td style="border-top: #f0f0f0; border-right: #f0f0f0;background: #a7bfde; border-bottom: white 1pt solid; padding-bottom: 0cm; padding-top: 0cm; padding-left: 5.4pt; border-left: #f0f0f0; padding-right: 5.4pt; width: 142.05pt" valign="top" width="189">
<p><span style="color: black">TRUE</span></p></td>
<td style="border-top: #f0f0f0; border-right: #f0f0f0;background: #a7bfde; border-bottom: white 1pt solid; padding-bottom: 0cm; padding-top: 0cm; padding-left: 5.4pt; border-left: #f0f0f0; padding-right: 5.4pt; width: 142.05pt" valign="top" width="189">
<p><span style="color: black">TRUE</span></p></td></tr>
<tr>
<td style="border-top: #f0f0f0; border-right: #f0f0f0;background: #365f91; border-bottom: #f0f0f0; padding-bottom: 0cm; padding-top: 0cm; padding-left: 5.4pt; border-left: #f0f0f0; padding-right: 5.4pt; width: 142pt" valign="top" width="189">
<p><span style="color: white">RELEASE</span></p></td>
<td style="border-top: #f0f0f0; border-right: #f0f0f0;background: #dbe5f1; border-bottom: #f0f0f0; padding-bottom: 0cm; padding-top: 0cm; padding-left: 5.4pt; border-left: #f0f0f0; padding-right: 5.4pt; width: 142.05pt" valign="top" width="189">
<p><span style="color: black">TRUE</span></p></td>
<td style="border-top: #f0f0f0; border-right: #f0f0f0;background: #dbe5f1; border-bottom: #f0f0f0; padding-bottom: 0cm; padding-top: 0cm; padding-left: 5.4pt; border-left: #f0f0f0; padding-right: 5.4pt; width: 142.05pt" valign="top" width="189">
<p><span style="color: black">FALSE</span></p></td></tr></tbody></table>
<p>&nbsp;<br />可以看到DEBUG下，未初始化bool变量的值是可以预知的。而RELEASE下，行为却不可确定。如果是RELEASE状态下在VS中按F5调试程序，bool变量的默认值为true；若按Ctrl+F5或者直接点EXE执行程序，bool的默认值为false。<br /><br /><u><em>假如程序在调试模式和执行模式的行为不一致，就需要考虑是否是由于未初始化的bool变量引起的。<br /></em></u><br />假如调用bool的构造函数来构造bool变量，在上面的四种情况下是否是确定的？</p>
<div style="font-size: 13px; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; border-bottom: #cccccc 1px solid; word-break: break-all; padding-bottom: 4px; padding-top: 4px; padding-left: 4px; border-left: #cccccc 1px solid; padding-right: 5px; width: 98%; background-color: #eeeeee"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">bool</span><span style="color: #000000">&nbsp;bTest&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">bool</span><span style="color: #000000">();</span></div>
<p><br /><br /><br />&nbsp;</p></div><img src ="http://www.cppblog.com/mythma/aggbug/209406.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mythma/" target="_blank">力为</a> 2015-01-06 16:43 <a href="http://www.cppblog.com/mythma/archive/2015/01/06/debug-release-bool-f5-ctrl-f5.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>为什么需要给函数返回类型加const</title><link>http://www.cppblog.com/mythma/archive/2014/08/24/cpp-const-return-rvalue.html</link><dc:creator>力为</dc:creator><author>力为</author><pubDate>Sun, 24 Aug 2014 10:50:00 GMT</pubDate><guid>http://www.cppblog.com/mythma/archive/2014/08/24/cpp-const-return-rvalue.html</guid><wfw:comment>http://www.cppblog.com/mythma/comments/208114.html</wfw:comment><comments>http://www.cppblog.com/mythma/archive/2014/08/24/cpp-const-return-rvalue.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/mythma/comments/commentRss/208114.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mythma/services/trackbacks/208114.html</trackback:ping><description><![CDATA[相对clang，VS2010对rvalue的检查还是若了些。<br />比如如下的程序，在VS2010顺利编译通过，而在clang中则报错。<br /><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: #0000FF; ">class</span>&nbsp;XY<br />{<br /><span style="color: #0000FF; ">public</span>:<br />&nbsp;&nbsp;&nbsp;&nbsp;XY();<br />&nbsp;&nbsp;&nbsp;&nbsp;XY(<span style="color: #0000FF; ">int</span>&nbsp;x,&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;y)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:_x(x)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,_y(y)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #0000FF; ">public</span>:<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;_x;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;_y;<br />};<br /><br />XY&nbsp;GetXY(<span style="color: #0000FF; ">int</span>&nbsp;x,&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;y)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;XY(x,&nbsp;y);<br />}<br /><br /><span style="color: #0000FF; ">void</span>&nbsp;ComplexAlgo(XY&amp;&nbsp;xy)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;xy._x&nbsp;=&nbsp;100;<br />&nbsp;&nbsp;&nbsp;&nbsp;xy._y&nbsp;=&nbsp;200;<br />}<br /><br /><span style="color: #0000FF; ">int</span>&nbsp;_tmain(<span style="color: #0000FF; ">int</span>&nbsp;argc,&nbsp;_TCHAR*&nbsp;argv[])<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;ComplexAlgo(GetXY(10,10));<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}</div><br />ComplexAlgo的输入参数是一个非const引用，即需要传入的是个非临时值。而在<br /><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 />-->&nbsp; &nbsp; ComplexAlgo(GetXY(10,10));</div>&nbsp;中，GetXY返回的是为临时值，从逻辑上应该为const的，即等价为：<br /><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: #0000FF; ">const</span>&nbsp;XY&nbsp;GetXY(<span style="color: #0000FF; ">int</span>&nbsp;x,&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;y)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;XY(x,&nbsp;y);<br />}</div><br />所以，上面的程序不应该编译通过。而VS2010顺利通过，也使有着同样用法的程序潜伏着bug。<br /><br /><img src ="http://www.cppblog.com/mythma/aggbug/208114.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mythma/" target="_blank">力为</a> 2014-08-24 18:50 <a href="http://www.cppblog.com/mythma/archive/2014/08/24/cpp-const-return-rvalue.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>被遗忘的argv[0]</title><link>http://www.cppblog.com/mythma/archive/2013/04/16/GetModuleFileName.html</link><dc:creator>力为</dc:creator><author>力为</author><pubDate>Tue, 16 Apr 2013 05:46:00 GMT</pubDate><guid>http://www.cppblog.com/mythma/archive/2013/04/16/GetModuleFileName.html</guid><wfw:comment>http://www.cppblog.com/mythma/comments/199478.html</wfw:comment><comments>http://www.cppblog.com/mythma/archive/2013/04/16/GetModuleFileName.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/mythma/comments/commentRss/199478.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mythma/services/trackbacks/199478.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 获取程序所在的目录是一个常用的需求，在Windows下使用GetModuleFileName可以满足需求。<br>在使用Qt，wxWidgets等实现可跨平台代码该如何处理？<br>---找与GetModuleFileName等价的API。这是我马上能相到的。很遗憾，却没有找到。<br><br>有时候，你需要的东西就在你的面前，你却找不到它。&nbsp;&nbsp;<a href='http://www.cppblog.com/mythma/archive/2013/04/16/GetModuleFileName.html'>阅读全文</a><img src ="http://www.cppblog.com/mythma/aggbug/199478.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mythma/" target="_blank">力为</a> 2013-04-16 13:46 <a href="http://www.cppblog.com/mythma/archive/2013/04/16/GetModuleFileName.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>当嵌套类遇见API</title><link>http://www.cppblog.com/mythma/archive/2013/01/23/197517.html</link><dc:creator>力为</dc:creator><author>力为</author><pubDate>Wed, 23 Jan 2013 15:26:00 GMT</pubDate><guid>http://www.cppblog.com/mythma/archive/2013/01/23/197517.html</guid><wfw:comment>http://www.cppblog.com/mythma/comments/197517.html</wfw:comment><comments>http://www.cppblog.com/mythma/archive/2013/01/23/197517.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/mythma/comments/commentRss/197517.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mythma/services/trackbacks/197517.html</trackback:ping><description><![CDATA[有时候需要在一个类中定义另外一个类，即嵌套类。为隐藏嵌套类某些公共方法的实现细节，在cpp中实现了嵌套类的成员函数。<br />在本模块中访问嵌套类的方法，编译和链接都没有问题。<br /><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: #0000FF; ">class</span>&nbsp;Out<br />{<br /><span style="color: #0000FF; ">public</span>:<br />&nbsp;<span style="color: #0000FF; ">struct</span>&nbsp;NestedClass<br />&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;doSomething();<br />&nbsp;};<br />};</div><br />调用<br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->Out::NestedClass&nbsp;nc;<br />nc.doSomething();</div><br />假如需要暴露Out类（作为动态库）给其他模块使用<br /><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: #0000FF; ">class</span>&nbsp;DECL_API&nbsp;Out<br />{<br /><span style="color: #0000FF; ">public</span>:<br />&nbsp;<span style="color: #0000FF; ">struct</span>&nbsp;NestedClass<br />&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;doSomething();<br />&nbsp;};<br />};</div><br />这时候能在其他模块(DLL/EXE)中调用嵌套类，会链接成功吗？<br /><br />答案是否定的。需要把嵌套类显式的导出，也就是说外部类导出并不会将嵌套类同时导出。<br /><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: #0000FF; ">class</span>&nbsp;DECL_API&nbsp;Out<br />{<br /><span style="color: #0000FF; ">public</span>:<br />&nbsp;<span style="color: #0000FF; ">struct</span>&nbsp;<span style="color: red;">DECL_API</span>&nbsp;NestedClass<br />&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;doSomething();<br />&nbsp;};<br />};</div><br /><br /><img src ="http://www.cppblog.com/mythma/aggbug/197517.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mythma/" target="_blank">力为</a> 2013-01-23 23:26 <a href="http://www.cppblog.com/mythma/archive/2013/01/23/197517.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用lambda对std::list排序</title><link>http://www.cppblog.com/mythma/archive/2013/01/20/lambda_stl_list_sort.html</link><dc:creator>力为</dc:creator><author>力为</author><pubDate>Sun, 20 Jan 2013 05:50:00 GMT</pubDate><guid>http://www.cppblog.com/mythma/archive/2013/01/20/lambda_stl_list_sort.html</guid><wfw:comment>http://www.cppblog.com/mythma/comments/197423.html</wfw:comment><comments>http://www.cppblog.com/mythma/archive/2013/01/20/lambda_stl_list_sort.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/mythma/comments/commentRss/197423.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mythma/services/trackbacks/197423.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: std::list提供了两个排序方法：std::list::sort() 和std::list::sort(_Pr3 _Pred)。<br>std::list::sort(_Pr3 _Pred)需要提供一个函数对象（仿函数）作为参数。构造函数有多种方式，lambda表达式算是最复合潮流的一种。&nbsp;&nbsp;<a href='http://www.cppblog.com/mythma/archive/2013/01/20/lambda_stl_list_sort.html'>阅读全文</a><img src ="http://www.cppblog.com/mythma/aggbug/197423.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mythma/" target="_blank">力为</a> 2013-01-20 13:50 <a href="http://www.cppblog.com/mythma/archive/2013/01/20/lambda_stl_list_sort.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>构造UTF8的std::string</title><link>http://www.cppblog.com/mythma/archive/2012/10/29/execution_character_set_utf8.html</link><dc:creator>力为</dc:creator><author>力为</author><pubDate>Mon, 29 Oct 2012 06:53:00 GMT</pubDate><guid>http://www.cppblog.com/mythma/archive/2012/10/29/execution_character_set_utf8.html</guid><wfw:comment>http://www.cppblog.com/mythma/comments/194014.html</wfw:comment><comments>http://www.cppblog.com/mythma/archive/2012/10/29/execution_character_set_utf8.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/mythma/comments/commentRss/194014.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mythma/services/trackbacks/194014.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 有人说，MS引入_UNICODE就是个错误，STL引入wstring也是个错误；而鼓励使用UTF8 string做为程序内部string存储格式。在与GUI交互的时候，转换为wstring（假定GUI使用的是_UNICODE)。这样做至少有一个好处：相对的可以减少程序运行时占用内存的大小。当然现在内存资源也不是个什么大问题，我更关心的是保存/读取XML数据的效率。&nbsp;&nbsp;<a href='http://www.cppblog.com/mythma/archive/2012/10/29/execution_character_set_utf8.html'>阅读全文</a><img src ="http://www.cppblog.com/mythma/aggbug/194014.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mythma/" target="_blank">力为</a> 2012-10-29 14:53 <a href="http://www.cppblog.com/mythma/archive/2012/10/29/execution_character_set_utf8.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【找茬】split string</title><link>http://www.cppblog.com/mythma/archive/2012/10/06/cpp_split_string.html</link><dc:creator>力为</dc:creator><author>力为</author><pubDate>Sat, 06 Oct 2012 04:21:00 GMT</pubDate><guid>http://www.cppblog.com/mythma/archive/2012/10/06/cpp_split_string.html</guid><wfw:comment>http://www.cppblog.com/mythma/comments/192905.html</wfw:comment><comments>http://www.cppblog.com/mythma/archive/2012/10/06/cpp_split_string.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/mythma/comments/commentRss/192905.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mythma/services/trackbacks/192905.html</trackback:ping><description><![CDATA[问题：<br />把以下字符串按照空格split<br /><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: #0000FF; ">string</span>&nbsp;str="&nbsp;&nbsp;&nbsp;50&nbsp;&nbsp;4&nbsp;&nbsp;&nbsp;&nbsp;13.900&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0.400&nbsp;&nbsp;&nbsp;&nbsp;-0.600";</div><br />&#8220;方案&#8221;一:<br />用boost::split<br /><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 />-->#include&nbsp;"boost/algorithm/string.hpp"</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 Co