The Boost preprocessor library is a great library. However, I've found a problem that it does not cover. It cannot deal with a repetition of a file that doesn't either exist in the include path set or relative to that set. This is because the #include BOOST_PP_ITERATE() tries to include the file to iterate over from another file in another directory. Since it is in another directory different from the caller, this requires that the caller is located somewhere off of one of the include directories or it won't be found. Mostly this isn't a problem as you can usually add an additional include path to your compiler's command line. However, I must have found the only IDE on the planet that doesn't allow for adding command line switches to the compiler's command line. :/ Another reason that this could be useful is if you prefer to keep your header file includes relative to each other allowing for easily moving the related header files from one place to another.
Be the first to post a review of Relative Iterate!