title: How to add your own base unit and conversions using boost::units
body: <p>I am currently using boost::units to represent torque in si units, however I am given the torque in pound feet. I am attempting thus to create a pound_foot unit of torque and a conversion to support this.  My lazy attempt was to simply define:</p>
  
  <pre><code>BOOST_STATIC_CONST(boost::si::torque, pound_feet = 1.3558179483314 * si::newton_meters);
  </code></pre>
  
  <p>And then do:</p>
  
  <pre><code>boost::si::torque torque = some_value * pound_feet;
  </code></pre>
  
  <p>But this feels unsatisfactory.  My second attempt was to attempt to define a new base unit called a pound_foot (see below).  But when I attempt to use it in a way similar to the above (with a cast to the si unit) I get a page full of errors.  Any suggestions on the correct approach?</p>
  
  <pre><code>namespace us {
    struct pound_foot_base_unit : base_unit&lt;pound_foot_base_unit, torque_dimension&gt; { };
      typedef units::make_system&lt;
              pound_foot_base_unit&gt;::type us_system;
      typedef unit&lt;torque_dimension, us_system&gt; torque;
      BOOST_UNITS_STATIC_CONSTANT(pound_foot, torque);
      BOOST_UNITS_STATIC_CONSTANT(pound_feet, torque);        
  }
  BOOST_UNITS_DEFINE_CONVERSION_FACTOR(us::torque, 
                                       boost::units::si::torque, 
                                       double, 1.3558179483314);
  </code></pre>