Skip to content

check whether args were passed to AuxFunBase prior to using them in toCpp

Gerhard Raven requested to merge verify-auxfun-tocpp into master

Given that AuxFunBase is a virtual base class, the 'most derived' class is responsible for calling its constructor, otherwise its default constructor (which is valid) is invoked. As the constructor argument is used in toCpp to print the C++ representation of itself, it is important to distinguish between not notifying AuxFunBase of any arguments, or of not having any arguments. The latter can be done by explicitly supplying an 'empty' tuple to the AuxFunBase constructor.

This commit allows to distinguish between passing 'no arguments' to AuxFunBase -- by invoking AuxFunBase{ std::tie() } -- and invoking the default AuxFunBase constructor (implicitly). In case the latter is called, any subsequent call to toCpp will generate invalid code which will signal which code needs to be fixed to explicitly initialize AuxFunBase.

Edited by Gerhard Raven

Merge request reports