Boost C++ Libraries: Ticket #9722: Changeset 55698 Problem with "base_unit_info<S>::name());" https://svn.boost.org/trac10/ticket/9722 <p> In the Changeset 55698 in Line 85 the return(Scale::name() + S::name()); was changed to return(Scale::name() + base_unit_info&lt;S&gt;::name()); </p> <p> Now I get the compiler-error /opt/local/include/boost/units/scaled_base_unit.hpp:85:32: Implicit instantiation of undefined template 'boost::units::base_unit_info&lt;boost::units::cgs::gram_base_unit&gt;' </p> <p> when I try to get the name of a scaled unit: </p> <blockquote> <p> boost::units::si::kilogram_base_unit kg; std::string strKg{kg.name()}; </p> </blockquote> <p> When I change line 85 back to the original version, the binding results and the output is correct. </p> <p> The same is valid for line 81 "symbol". </p> <p> Possible solution: go back to the former version. Side effects? </p> <p> or add in gram.hpp in line 36 </p> <blockquote> <p> template&lt;&gt; struct base_unit_info&lt;cgs::gram_base_unit&gt; { </p> <blockquote> <p> static const char* name() { return("gram"); } static const char* symbol() { return("g"); } </p> </blockquote> <p> }; </p> </blockquote> <p> but results in double definitions of name and symbol. The same has to be repeated for the other base_units, e.g. centimeter_base_unit </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/9722 Trac 1.4.3 Steven Watanabe Tue, 11 Mar 2014 00:38:56 GMT <link>https://svn.boost.org/trac10/ticket/9722#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/9722#comment:1</guid> <description> <p> The default definition of base_unit_info is in io.hpp. You can #include this for now, until I get around to refactoring the headers. </p> </description> <category>Ticket</category> </item> </channel> </rss>