我对模板元编程相当陌生,并且一直在研究一些概念 - 但是,我遇到的这个特定片段让我有点难过。
template<class TAG, typename... DATATYPES>
struct Message {
Message (typename std::enable_if<sizeof...(DATATYPES) >= 1>) {
}
... (various other constructor declarations here)
std::tuple<DATATYPES...> m_data;
};
我在阅读它时假设如果有一个或多个 DATATYPES 参数,它会启用默认构造函数,但是经过测试,我得到的只是一个编译错误。
我会感谢任何帮助我理解这个片段的帮助,因为我理解 enable_if 应该做什么,但在这种情况下,我似乎无法理解实际发生的事情。
编辑:我想这不是“我如何实现这种特殊效果?”的问题。以及更多类似“此代码实际生成的内容,它是否符合我所理解的原作者的意图?”