我正在使用enum_bitmask<E>
模板类,其中E
是枚举类型,enum_bitmask<E>
只能由默认构造函数公开构造(设置为0)或来自E
,而enum_bitmask<E>
对|
,&
,^
,~
以及相关的复合赋值运算符具有运算符重载。我还喜欢为那些需要一两个E
并且返回enum_bitmask<E>
的运算符定义重载,但仅当enum_bitmask<E>
已经在别处实例化。这可能没有宏吗?显然,我可以DECLARE_BITMASK_OPS(E)
并相应地定义DECLARE_BITMASK_OPS
。