【发布时间】:2021-11-09 20:18:52
【问题描述】:
我有一组模板特化 (C++11),它使用下面的基本模板,其中 tPayLoad 和 tReturnType 都存在:
template <class tDerivedOperation, class tBridgeType, class tPayLoadType = void, class tReturnType = void> class OperationT ...
第一个特殊化是既没有 tPayLoadType 也没有 tReturnType:
template <class tDerivedOperation, class tBridgeType> class OperationT<tDerivedOperation, tBridgeType, void, void> ...
第二个特化是只有tPayLoadType:
template <class tDerivedOperation, class tBridgeType, class tPayLoadType> class OperationT<tDerivedOperation, tBridgeType, tPayLoadType, void> ...
最后,我想要第 3 种情况(第 4 种组合),没有 tPayLoadType 但有一个 tReturnType,这就是问题出现的地方。我不能使用(我认为):
template <class tDerivedOperation, class tBridgeType, class tReturnType> class OperationT<tDerivedOperation, tBridgeType, void, tReturnType> ...
因为这与专业化 2 基本相同。任何人都知道如何做到这一点,如果可能的话???
/否
【问题讨论】:
标签: c++ templates arguments default specialization