Skip to content
  • Kenneth Moreland's avatar
    Replace Boost preprocessor iteration with macro expansion tool · 5fb7f638
    Kenneth Moreland authored
    This commit removes the usage of the boost preprocessor library to
    iteratively generate templates with a variable number of parameters. It
    is replaced with a template that is expanded by running it through the
    pyexpander macro processing tool (http://pyexpander.sourceforge.net).
    
    One reason for this change is to make the code easier to read. In
    particular, it is difficult to understand compiler errors when they
    occur deep within an iterating macro. Another reason for this change is
    that the Intel compiler currently has a bug that breaks with the boost
    preprocessor library.
    
    One issue with this approach is that the macro expansion is not part of
    the build process. Although open, pyexpander is not a tool most
    developers will have readily installed on their system. Thus, if you
    want to make changes to any of the macro code, you have to make sure
    pyexpander is installed, then make changes to the input files, then
    manually run pyexpander from the command line.
    5fb7f638