Boost C++ Libraries: Ticket #12228: Some test headers fail to compile independently https://svn.boost.org/trac10/ticket/12228 <p> The Boost header policy requires: </p> <blockquote class="citation"> <p> Make sure that a translation unit consisting of just the contents of the header file will compile successfully. </p> </blockquote> <p> ...but quite a few of the test headers to not meet this standard, eg: </p> <pre class="wiki">clang++ -std=c++11 -stdlib=libc++ -isystem serialization/include -isystem /opt/include -x c++ -c -o /tmp/a.o test/include/boost/test/data/test_case.hpp In file included from test/include/boost/test/data/test_case.hpp:17: In file included from /opt/include/boost/test/data/dataset.hpp:16: In file included from /opt/include/boost/test/data/monomorphic.hpp:19: /opt/include/boost/test/data/monomorphic/generate.hpp:88:64: error: no member named 'ref' in namespace 'boost'; did you mean 'std::ref'? iterator begin() const { return iterator( boost::ref(const_cast&lt;Generator&amp;&gt;(m_generator)) ); } ^~~~~~~ /usr/include/c++/v1/__functional_base:462:1: note: 'std::ref' declared here ref(_Tp&amp; __t) _NOEXCEPT ^ In file included from test/include/boost/test/data/test_case.hpp:17: In file included from /opt/include/boost/test/data/dataset.hpp:16: In file included from /opt/include/boost/test/data/monomorphic.hpp:21: /opt/include/boost/test/data/monomorphic/grid.hpp:137:57: error: no template named 'identity' in namespace 'boost::mpl'; did you mean 'move_detail::identity'? result_of::grid&lt;mpl::identity&lt;DataSet1&gt;,mpl::identity&lt;DataSet2&gt;&gt; ^~~~~ /opt/include/boost/move/detail/meta_utils.hpp:217:8: note: 'move_detail::identity' declared here struct identity ^ In file included from test/include/boost/test/data/test_case.hpp:17: In file included from /opt/include/boost/test/data/dataset.hpp:16: In file included from /opt/include/boost/test/data/monomorphic.hpp:21: /opt/include/boost/test/data/monomorphic/grid.hpp:137:81: error: no template named 'identity' in namespace 'boost::mpl'; did you mean 'move_detail::identity'? result_of::grid&lt;mpl::identity&lt;DataSet1&gt;,mpl::identity&lt;DataSet2&gt;&gt; ^~~~~ /opt/include/boost/move/detail/meta_utils.hpp:217:8: note: 'move_detail::identity' declared here struct identity ^ In file included from test/include/boost/test/data/test_case.hpp:17: In file included from /opt/include/boost/test/data/dataset.hpp:16: In file included from /opt/include/boost/test/data/monomorphic.hpp:21: /opt/include/boost/test/data/monomorphic/grid.hpp:151:57: error: no template named 'identity' in namespace 'boost::mpl'; did you mean 'move_detail::identity'? result_of::grid&lt;mpl::identity&lt;DataSet1&gt;,data::result_of::make&lt;DataSet2&gt;&gt; ^~~~~ /opt/include/boost/move/detail/meta_utils.hpp:217:8: note: 'move_detail::identity' declared here struct identity ^ In file included from test/include/boost/test/data/test_case.hpp:17: In file included from /opt/include/boost/test/data/dataset.hpp:16: In file included from /opt/include/boost/test/data/monomorphic.hpp:21: /opt/include/boost/test/data/monomorphic/grid.hpp:163:89: error: no template named 'identity' in namespace 'boost::mpl'; did you mean 'move_detail::identity'? result_of::grid&lt;data::result_of::make&lt;DataSet1&gt;,mpl::identity&lt;DataSet2&gt;&gt; ^~~~~ /opt/include/boost/move/detail/meta_utils.hpp:217:8: note: 'move_detail::identity' declared here struct identity ^ In file included from test/include/boost/test/data/test_case.hpp:17: In file included from /opt/include/boost/test/data/dataset.hpp:16: In file included from /opt/include/boost/test/data/monomorphic.hpp:22: /opt/include/boost/test/data/monomorphic/join.hpp:111:57: error: no template named 'identity' in namespace 'boost::mpl'; did you mean 'move_detail::identity'? result_of::join&lt;mpl::identity&lt;DataSet1&gt;,mpl::identity&lt;DataSet2&gt;&gt; ^~~~~ /opt/include/boost/move/detail/meta_utils.hpp:217:8: note: 'move_detail::identity' declared here struct identity ^ In file included from test/include/boost/test/data/test_case.hpp:17: In file included from /opt/include/boost/test/data/dataset.hpp:16: In file included from /opt/include/boost/test/data/monomorphic.hpp:22: /opt/include/boost/test/data/monomorphic/join.hpp:111:81: error: no template named 'identity' in namespace 'boost::mpl'; did you mean 'move_detail::identity'? result_of::join&lt;mpl::identity&lt;DataSet1&gt;,mpl::identity&lt;DataSet2&gt;&gt; ^~~~~ /opt/include/boost/move/detail/meta_utils.hpp:217:8: note: 'move_detail::identity' declared here struct identity ^ In file included from test/include/boost/test/data/test_case.hpp:17: In file included from /opt/include/boost/test/data/dataset.hpp:16: In file included from /opt/include/boost/test/data/monomorphic.hpp:22: /opt/include/boost/test/data/monomorphic/join.hpp:122:57: error: no template named 'identity' in namespace 'boost::mpl'; did you mean 'move_detail::identity'? result_of::join&lt;mpl::identity&lt;DataSet1&gt;,data::result_of::make&lt;DataSet2&gt;&gt; ^~~~~ /opt/include/boost/move/detail/meta_utils.hpp:217:8: note: 'move_detail::identity' declared here struct identity ^ In file included from test/include/boost/test/data/test_case.hpp:17: In file included from /opt/include/boost/test/data/dataset.hpp:16: In file included from /opt/include/boost/test/data/monomorphic.hpp:22: /opt/include/boost/test/data/monomorphic/join.hpp:133:89: error: no template named 'identity' in namespace 'boost::mpl'; did you mean 'move_detail::identity'? result_of::join&lt;data::result_of::make&lt;DataSet1&gt;,mpl::identity&lt;DataSet2&gt;&gt; ^~~~~ /opt/include/boost/move/detail/meta_utils.hpp:217:8: note: 'move_detail::identity' declared here struct identity ^ In file included from test/include/boost/test/data/test_case.hpp:17: In file included from /opt/include/boost/test/data/dataset.hpp:16: In file included from /opt/include/boost/test/data/monomorphic.hpp:24: /opt/include/boost/test/data/monomorphic/zip.hpp:151:56: error: no template named 'identity' in namespace 'boost::mpl'; did you mean 'move_detail::identity'? result_of::zip&lt;mpl::identity&lt;DataSet1&gt;,mpl::identity&lt;DataSet2&gt;&gt; ^~~~~ /opt/include/boost/move/detail/meta_utils.hpp:217:8: note: 'move_detail::identity' declared here struct identity ^ In file included from test/include/boost/test/data/test_case.hpp:17: In file included from /opt/include/boost/test/data/dataset.hpp:16: In file included from /opt/include/boost/test/data/monomorphic.hpp:24: /opt/include/boost/test/data/monomorphic/zip.hpp:151:80: error: no template named 'identity' in namespace 'boost::mpl'; did you mean 'move_detail::identity'? result_of::zip&lt;mpl::identity&lt;DataSet1&gt;,mpl::identity&lt;DataSet2&gt;&gt; ^~~~~ /opt/include/boost/move/detail/meta_utils.hpp:217:8: note: 'move_detail::identity' declared here struct identity ^ In file included from test/include/boost/test/data/test_case.hpp:17: In file included from /opt/include/boost/test/data/dataset.hpp:16: In file included from /opt/include/boost/test/data/monomorphic.hpp:24: /opt/include/boost/test/data/monomorphic/zip.hpp:165:56: error: no template named 'identity' in namespace 'boost::mpl'; did you mean 'move_detail::identity'? result_of::zip&lt;mpl::identity&lt;DataSet1&gt;,data::result_of::make&lt;DataSet2&gt;&gt; ^~~~~ /opt/include/boost/move/detail/meta_utils.hpp:217:8: note: 'move_detail::identity' declared here struct identity ^ In file included from test/include/boost/test/data/test_case.hpp:17: In file included from /opt/include/boost/test/data/dataset.hpp:16: In file included from /opt/include/boost/test/data/monomorphic.hpp:24: /opt/include/boost/test/data/monomorphic/zip.hpp:177:88: error: no template named 'identity' in namespace 'boost::mpl'; did you mean 'move_detail::identity'? result_of::zip&lt;data::result_of::make&lt;DataSet1&gt;,mpl::identity&lt;DataSet2&gt;&gt; ^~~~~ /opt/include/boost/move/detail/meta_utils.hpp:217:8: note: 'move_detail::identity' declared here struct identity ^ test/include/boost/test/data/test_case.hpp:119:30: error: expected class name class test_case_gen : public test_unit_generator { ^ test/include/boost/test/data/test_case.hpp:140:13: error: unknown type name 'test_unit'; did you mean 'test_unit_id'? virtual test_unit* next() const ^~~~~~~~~ test_unit_id /opt/include/boost/test/detail/global_typedef.hpp:53:25: note: 'test_unit_id' declared here typedef unsigned long test_unit_id; ^ test/include/boost/test/data/test_case.hpp:182:18: error: no type named 'list' in namespace 'std' mutable std::list&lt;test_unit*&gt; m_test_cases; ~~~~~^ test/include/boost/test/data/test_case.hpp:182:22: error: expected member name or ';' after declaration specifiers mutable std::list&lt;test_unit*&gt; m_test_cases; ~~~~~~~~~~~~~~~~~^ test/include/boost/test/data/test_case.hpp:124:29: error: no member named 'normalize_test_case_name' in namespace 'boost::unit_test::ut_detail' : m_tc_name( ut_detail::normalize_test_case_name( tc_name ) ) ~~~~~~~~~~~^ test/include/boost/test/data/test_case.hpp:130:7: error: member initializer 'm_test_cases' does not name a non-static data member or base class , m_test_cases( std::move(gen.m_test_cases) ) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fatal error: too many errors emitted, stopping now [-ferror-limit=] 20 errors generated. </pre> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/12228 Trac 1.4.3 Tony Lewis <tonyelewis@…> Wed, 25 May 2016 18:21:26 GMT <link>https://svn.boost.org/trac10/ticket/12228#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/12228#comment:1</guid> <description> <p> Boost Header policy is here: <a href="http://www.boost.org/development/header.html">http://www.boost.org/development/header.html</a> </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Raffi Enficiaud</dc:creator> <pubDate>Thu, 22 Jun 2017 23:03:38 GMT</pubDate> <title>milestone changed https://svn.boost.org/trac10/ticket/12228#comment:2 https://svn.boost.org/trac10/ticket/12228#comment:2 <ul> <li><strong>milestone</strong> <span class="trac-field-old">To Be Determined</span> → <span class="trac-field-new">Boost 1.65.0</span> </li> </ul> Ticket Raffi Enficiaud Tue, 27 Jun 2017 19:14:34 GMT owner, status changed https://svn.boost.org/trac10/ticket/12228#comment:3 https://svn.boost.org/trac10/ticket/12228#comment:3 <ul> <li><strong>owner</strong> changed from <span class="trac-author">Gennadiy Rozental</span> to <span class="trac-author">Raffi Enficiaud</span> </li> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">assigned</span> </li> </ul> Ticket Raffi Enficiaud Sun, 16 Jul 2017 08:43:21 GMT status changed; resolution set https://svn.boost.org/trac10/ticket/12228#comment:4 https://svn.boost.org/trac10/ticket/12228#comment:4 <ul> <li><strong>status</strong> <span class="trac-field-old">assigned</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">fixed</span> </li> </ul> <p> In master, rev <code>3ddb0e0d29e8ebfe4ba20921a3d366f7b5b837b2 </code> </p> Ticket