Code duplication between typedefs and explicit instantiations

前端 未结 3 1165
独厮守ぢ
独厮守ぢ 2021-01-03 03:11

tree.h

template
class binary_operation : public node
{
// ... unimportant details ...

    unsigned evaluate() const;
         


        
3条回答
  •  日久生厌
    2021-01-03 03:14

    Use a macro. You could write a header like

    I_HATE_MACROS(binary_operation, '+'>, addition)
    I_HATE_MACROS(binary_operation, '*'>, multiplication)
    

    Then you can do

    #define I_HATE_MACROS(a, b) typedef a b;
    

    Or

    #define I_HATE_MACROS(a, b) template class a;
    

    Then

    #include "DisgustingMacroHackery.h"
    

提交回复
热议问题