
I also cannot build the tests. There are at least two problems:
1) The #include directives inside the test code assume that the directory "units" is inside a directory called "mcs". So I created the directory "mcs" and moved "units" into it.
Right - believe it or not, this is included in the main page of the documentation, in the "Installation" section...
I didn't see that. But wouldn't it make sense for you to just distribute everything with units already inside a directory called "mcs"?
OK, this is done in the new mcs_units archive.
2) There is at least one #include directive that refers to the directory "mcs/utility", and it tries to include a header file called "type_traits.hpp", which is a file that I do not see in the distribution.
This is fixed by the two files I attached in the previous message - in any case, I believe the only dependency on <mcs/utility/type_traits.hpp> is in unit_test_1.cpp, so the other four tests should work...
Not. unit_test_4.cpp and unit_test_5.cpp have the same dependency.
These files didn't actually depend on the header anyway, but it has been fixed.
Other observations: 1) unit_test_1.cpp depends on the boost.regex library. (Some of us have never built the boost.regex library. My solution is just to skip unit_test_1.cpp for now.)
If you don't #define MCS_USE_DEMANGLING, this should not happen now. Code outputting typename information will then just output the mangled name instead (typeid(var).name()), which is not super helpful, generally speaking...
2) The unit tests appear to build using gcc 3.4.4, but not with VC8.0. I get the following:
unit_example_2.cpp C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\iterator(589) : error C2872: 'size_t' : ambiguous symbol could be 'predefined C++ types (compiler internal)(19) : unsigned int size_t' or '..\..\..\..\boost\boost/mpl/aux_/integral_wrapper.hpp (81) : boost::mpl::size_t'
This looks like a symbol collision caused because I had a "using namespace boost::mpl;" at the top of the dimension.hpp file. I moved this inside the boost::units scope - maybe that will help. I'd rather not have to explicitly specify the namespace for every MPL call as that will make the code hard to read, but if this problem is not easy to work around on VC++, I may have to do it anyway... Thanks for the input - M