Boost C++ Libraries: Ticket #10272: property_tree commit 8af8b6b breaks VS2013 64-bit build https://svn.boost.org/trac10/ticket/10272 <p> I was attempting to build the <a class="missing wiki">PointCloudLibrary</a> using the 1.56.0_beta1 binary from <a class="missing wiki">SourceForge</a>; however, I encountered the following compilation errors when doing so: </p> <pre class="wiki">C:\Users\Will\Source\boost-1_56_0_b1\boost/property_tree/detail/xml_parser_writer_settings.hpp(38): error C2825: 'Str': must be a class or namespace when followed by '::' (C:\Users\Will\Source\pcl.git\io\src\lzf_image_io.cpp) C:\Users\Will\Source\pcl.git\io\src\lzf_image_io.cpp(201) : see reference to class template instantiation 'boost::property_tree::xml_parser::xml_writer_settings&lt;char&gt;' being compiled C:\Users\Will\Source\boost-1_56_0_b1\boost/property_tree/detail/xml_parser_writer_settings.hpp(38): error C2039: 'value_type' : is not a member of '`global namespace'' (C:\Users\Will\Source\pcl.git\io\src\lzf_image_io.cpp) C:\Users\Will\Source\boost-1_56_0_b1\boost/property_tree/detail/xml_parser_writer_settings.hpp(38): error C2146: syntax error : missing ';' before identifier 'Ch' (C:\Users\Will\Source\pcl.git\io\src\lzf_image_io.cpp) C:\Users\Will\Source\boost-1_56_0_b1\boost/property_tree/detail/xml_parser_writer_settings.hpp(38): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (C:\Users\Will\Source\pcl.git\io\src\lzf_image_io.cpp) C:\Users\Will\Source\boost-1_56_0_b1\boost/property_tree/detail/xml_parser_writer_settings.hpp(40): error C2061: syntax error : identifier 'Ch' (C:\Users\Will\Source\pcl.git\io\src\lzf_image_io.cpp) C:\Users\Will\Source\boost-1_56_0_b1\boost/property_tree/detail/xml_parser_writer_settings.hpp(49): error C2146: syntax error : missing ';' before identifier 'indent_char' (C:\Users\Will\Source\pcl.git\io\src\lzf_image_io.cpp) C:\Users\Will\Source\boost-1_56_0_b1\boost/property_tree/detail/xml_parser_writer_settings.hpp(49): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (C:\Users\Will\Source\pcl.git\io\src\lzf_image_io.cpp) C:\Users\Will\Source\boost-1_56_0_b1\boost/property_tree/detail/xml_parser_writer_settings.hpp(50): error C2825: 'Str': must be a class or namespace when followed by '::' (C:\Users\Will\Source\pcl.git\io\src\lzf_image_io.cpp) C:\Users\Will\Source\boost-1_56_0_b1\boost/property_tree/detail/xml_parser_writer_settings.hpp(50): error C2039: 'size_type' : is not a member of '`global namespace'' (C:\Users\Will\Source\pcl.git\io\src\lzf_image_io.cpp) C:\Users\Will\Source\boost-1_56_0_b1\boost/property_tree/detail/xml_parser_writer_settings.hpp(50): error C2146: syntax error : missing ';' before identifier 'indent_count' (C:\Users\Will\Source\pcl.git\io\src\lzf_image_io.cpp) C:\Users\Will\Source\boost-1_56_0_b1\boost/property_tree/detail/xml_parser_writer_settings.hpp(50): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (C:\Users\Will\Source\pcl.git\io\src\lzf_image_io.cpp) C:\Users\Will\Source\pcl.git\io\src\lzf_image_io.cpp(201): error C2661: 'boost::property_tree::xml_parser::xml_writer_settings&lt;char&gt;::xml_writer_settings' : no overloaded function takes 2 arguments C:\Users\Will\Source\pcl.git\io\src\lzf_image_io.cpp(203): error C2664: 'void boost::property_tree::xml_parser::write_xml&lt;boost::property_tree::ptree&gt;(const std::string &amp;,const Ptree &amp;,const std::locale &amp;,const boost::property_tree::xml_parser::xml_writer_settings&lt;Key&gt; &amp;)' : cannot convert argument 4 from 'boost::property_tree::xml_parser::xml_writer_settings&lt;char&gt;' to 'const boost::property_tree::xml_parser::xml_writer_settings&lt;Key&gt; &amp;' with [ Ptree=boost::property_tree::ptree , Key=std::string ] and [ Key=std::string ] Reason: cannot convert from 'boost::property_tree::xml_parser::xml_writer_settings&lt;char&gt;' to 'const boost::property_tree::xml_parser::xml_writer_settings&lt;Key&gt;' with [ Key=std::string ] No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called C:\Users\Will\Source\pcl.git\io\src\lzf_image_io.cpp(221): error C2661: 'boost::property_tree::xml_parser::xml_writer_settings&lt;char&gt;::xml_writer_settings' : no overloaded function takes 2 arguments C:\Users\Will\Source\pcl.git\io\src\lzf_image_io.cpp(227): error C2664: 'void boost::property_tree::xml_parser::write_xml&lt;boost::property_tree::ptree&gt;(const std::string &amp;,const Ptree &amp;,const std::locale &amp;,const boost::property_tree::xml_parser::xml_writer_settings&lt;Key&gt; &amp;)' : cannot convert argument 4 from 'boost::property_tree::xml_parser::xml_writer_settings&lt;char&gt;' to 'const boost::property_tree::xml_parser::xml_writer_settings&lt;Key&gt; &amp;' with [ Ptree=boost::property_tree::ptree , Key=std::string ] and [ Key=std::string ] Reason: cannot convert from 'boost::property_tree::xml_parser::xml_writer_settings&lt;char&gt;' to 'const boost::property_tree::xml_parser::xml_writer_settings&lt;Key&gt;' with [ Key=std::string ] No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called C:\Users\Will\Source\pcl.git\io\src\lzf_image_io.cpp(282): error C2661: 'boost::property_tree::xml_parser::xml_writer_settings&lt;char&gt;::xml_writer_settings' : no overloaded function takes 2 arguments C:\Users\Will\Source\pcl.git\io\src\lzf_image_io.cpp(287): error C2664: 'void boost::property_tree::xml_parser::write_xml&lt;boost::property_tree::ptree&gt;(const std::string &amp;,const Ptree &amp;,const std::locale &amp;,const boost::property_tree::xml_parser::xml_writer_settings&lt;Key&gt; &amp;)' : cannot convert argument 4 from 'boost::property_tree::xml_parser::xml_writer_settings&lt;char&gt;' to 'const boost::property_tree::xml_parser::xml_writer_settings&lt;Key&gt; &amp;' with [ Ptree=boost::property_tree::ptree , Key=std::string ] and [ Key=std::string ] Reason: cannot convert from 'boost::property_tree::xml_parser::xml_writer_settings&lt;char&gt;' to 'const boost::property_tree::xml_parser::xml_writer_settings&lt;Key&gt;' with [ Key=std::string ] No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called </pre><p> Reverting the <code>property_tree</code> module back to commit <code>85f8d8866ccfa98e4a667343529adb411bd67d08</code> corrected the build problem I was having. </p> <p> Thanks, Will </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/10272 Trac 1.4.3 anonymous Thu, 31 Jul 2014 03:39:40 GMT <link>https://svn.boost.org/trac10/ticket/10272#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10272#comment:1</guid> <description> <p> Fix on github. ID 4e16d57fa634fc9ddb64cde1c687e11e23b6e34a </p> </description> <category>Ticket</category> </item> <item> <author>nullable.type@…</author> <pubDate>Mon, 18 Aug 2014 12:06:54 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/10272#comment:2 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10272#comment:2</guid> <description> <p> There are two superfluous typename's in the char specialization of xml_writer_settings (in xml_parser_writer_settings.hpp, line 59 and 68). This leads at least with Visual Studio 2013 and g++ 4.8.2 to compilation errors. </p> <p> Please see the comment in the respective pull request. </p> </description> <category>Ticket</category> </item> <item> <author>mevatron@…</author> <pubDate>Mon, 15 Sep 2014 05:41:20 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/10272#comment:3 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10272#comment:3</guid> <description> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/10272#comment:2" title="Comment 2">nullable.type@…</a>: </p> <blockquote class="citation"> <p> There are two superfluous typename's in the char specialization of xml_writer_settings (in xml_parser_writer_settings.hpp, line 59 and 68). This leads at least with Visual Studio 2013 and g++ 4.8.2 to compilation errors. </p> <p> Please see the comment in the respective pull request. </p> </blockquote> <p> Sorry for the late reply, but just tested this commit, and it compiles correctly now with VS2013 Update 3. Any idea when this fix will make it's way into the Boost mainline? </p> <p> Thanks again for the fix! Will </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Sebastian Redl</dc:creator> <pubDate>Wed, 21 Jan 2015 10:48:20 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/10272#comment:4 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10272#comment:4</guid> <description> <p> Current master and develop branch compile just fine for me without any fix - could this have been fixed by a VS update? </p> <p> I'm very reluctant to include the fix, since it duplicates a lot of code for no reason that I can see. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>kwaegel</dc:creator> <pubDate>Sun, 25 Jan 2015 12:30:56 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/10272#comment:5 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10272#comment:5</guid> <description> <p> I am getting these exact same errors using Boost 1.57.0 and Visual Studio 2013 update 4. </p> </description> <category>Ticket</category> </item> <item> <author>Mika Fischer <mika.fischer@…></author> <pubDate>Thu, 16 Apr 2015 09:06:23 GMT</pubDate> <title>cc set https://svn.boost.org/trac10/ticket/10272#comment:6 https://svn.boost.org/trac10/ticket/10272#comment:6 <ul> <li><strong>cc</strong> <span class="trac-author">mika.fischer@…</span> added </li> </ul> Ticket Mika Fischer <mika.fischer@…> Tue, 21 Apr 2015 09:34:45 GMT <link>https://svn.boost.org/trac10/ticket/10272#comment:7 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10272#comment:7</guid> <description> <p> This bug is still present in 1.58.0 with VS 2013 </p> </description> <category>Ticket</category> </item> <item> <dc:creator>anonymous</dc:creator> <pubDate>Thu, 07 May 2015 17:31:11 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/10272#comment:8 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10272#comment:8</guid> <description> <p> Same here - the same error with 1.58.0 and VS2013 Update 4. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>anonymous</dc:creator> <pubDate>Tue, 17 Nov 2015 11:21:34 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/10272#comment:9 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10272#comment:9</guid> <description> <p> Boost 1.59.0 Visual studio 2008 SP1 64bits, same problem </p> </description> <category>Ticket</category> </item> <item> <dc:creator>anonymous</dc:creator> <pubDate>Wed, 16 Dec 2015 22:44:48 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/10272#comment:10 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10272#comment:10</guid> <description> <p> Same problem with Boost 1.59.0 vs2015 update 1 </p> </description> <category>Ticket</category> </item> <item> <dc:creator>anonymous</dc:creator> <pubDate>Thu, 07 Jan 2016 10:44:04 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/10272#comment:11 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10272#comment:11</guid> <description> <p> Same problem with Boost 1.60.0 vs2013 update 5 </p> </description> <category>Ticket</category> </item> <item> <dc:creator>anonymous</dc:creator> <pubDate>Thu, 07 Jan 2016 10:55:42 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/10272#comment:12 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10272#comment:12</guid> <description> <p> Sorry, I take that back. Works fine with Boost 1.60.0 vs2013 update 5 </p> </description> <category>Ticket</category> </item> <item> <dc:creator>anonymous</dc:creator> <pubDate>Thu, 07 Jan 2016 10:58:53 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/10272#comment:13 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10272#comment:13</guid> <description> <p> Disregard the last comment, it does NOT work with Boost 1.60.0 vs2013 update 5 </p> </description> <category>Ticket</category> </item> <item> <author>ramasamy.vignesh@…</author> <pubDate>Thu, 10 Mar 2016 07:35:52 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/10272#comment:14 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10272#comment:14</guid> <description> <p> I am getting the same error in Boost 1.60 with Visual Studio 2015 Update 1. I also searched for commit Id 4e16d57fa634fc9ddb64cde1c687e11e23b6e34a in <a class="missing wiki">GitHub</a> which is not available. Any other solution for the error ? Please recommend. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>anonymous</dc:creator> <pubDate>Thu, 07 Apr 2016 17:54:32 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/10272#comment:15 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10272#comment:15</guid> <description> <p> We're encountering this issue as well on boost 1.60 in our codebase. </p> <p> Here's a link to the aforementioned fix on github, and a discussion of why it's not yet in the mainline. </p> <p> <a class="ext-link" href="http://lists.boost.org/Archives/boost/2014/08/215859.php"><span class="icon">​</span>http://lists.boost.org/Archives/boost/2014/08/215859.php</a> </p> </description> <category>Ticket</category> </item> <item> <dc:creator>anonymous</dc:creator> <pubDate>Tue, 30 Aug 2016 19:35:05 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/10272#comment:16 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10272#comment:16</guid> <description> <p> We encountered the same error with Visual Studio 2015 Update 3 &amp;&amp; Boost 1.61. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>anonymous</dc:creator> <pubDate>Wed, 31 Aug 2016 14:46:15 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/10272#comment:17 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10272#comment:17</guid> <description> <p> I reverted the property_tree header files to version 1.54 and the problem went away. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>anonymous</dc:creator> <pubDate>Fri, 02 Sep 2016 14:16:01 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/10272#comment:18 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10272#comment:18</guid> <description> <p> I have the same problem with Visual Studio 2013 Update 5 (64bit) when using any Boost version between 1.56 and 1.61 (1.62 not tested). Boost 1.55 is working ok. Any updates or hints? I am stuck with Boost 1.55 for a while now. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>anonymous</dc:creator> <pubDate>Tue, 01 Nov 2016 21:58:47 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/10272#comment:19 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10272#comment:19</guid> <description> <p> I'm still hitting this with Visual Studio 2015 - update 3, compiling 64 bit with boost 1.61 </p> </description> <category>Ticket</category> </item> <item> <dc:creator>anonymous</dc:creator> <pubDate>Thu, 05 Jan 2017 13:28:21 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/10272#comment:20 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10272#comment:20</guid> <description> <p> I have seen that even big opensource projects like e.g. QGIS (qgis.org) are still using Boost 1.55 (two years old) and do not update to newer Boost versions - the question is if the reason is also related to this bug (breaking Visual Studio builds with Boost newer than 1.55) </p> </description> <category>Ticket</category> </item> <item> <author>mevatron@…</author> <pubDate>Thu, 05 Jan 2017 22:16:15 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/10272#comment:21 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10272#comment:21</guid> <description> <p> I'm not sure if this particular bug is the reason projects are holding back on upgrading; however, I'm currently working around this bug with the following: </p> <pre class="wiki">#include &lt;boost/version.hpp&gt; ... #if (BOOST_VERSION &gt;= 105600) xml_writer_settings&lt;std::string&gt; settings('\t', 1); #else xml_writer_settings&lt;char&gt; settings('\t', 1); #endif </pre><p> It would definitely be nice to get this fixed properly. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>anonymous</dc:creator> <pubDate>Wed, 10 May 2017 09:31:01 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/10272#comment:22 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10272#comment:22</guid> <description> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/10272#comment:21" title="Comment 21">mevatron@…</a>: </p> <blockquote class="citation"> <p> I'm not sure if this particular bug is the reason projects are holding back on upgrading; however, I'm currently working around this bug with the following: </p> <pre class="wiki">#include &lt;boost/version.hpp&gt; ... #if (BOOST_VERSION &gt;= 105600) xml_writer_settings&lt;std::string&gt; settings('\t', 1); #else xml_writer_settings&lt;char&gt; settings('\t', 1); #endif </pre><p> It would definitely be nice to get this fixed properly. </p> </blockquote> <p> Many thanks for this really helpful hint. I agree it would be better if such workaround was not necessery and this would be fixed in boost for API compatibility. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>anonymous</dc:creator> <pubDate>Sat, 22 Jul 2017 19:14:00 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/10272#comment:23 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10272#comment:23</guid> <description> <p> Still broken even in visual studio 2017 (Boost version 1.64). </p> </description> <category>Ticket</category> </item> </channel> </rss>