通过重用模板template参数来创建类型

时间:2019-02-24 04:30:02

标签: c++ templates alias reusability

我处理模板模板参数,并希望基于在其他位置定义的模板模板参数构造新类型。有时候这行得通,但是我认为我从根本上在概念上错过了一些事情。

在下面的最小(我希望不要太失真)的示例中,我期望try: sample = json.loads(ndjson_line) except json.decoder.JSONDecodeError as e: return None, None Example<GerericTemplate>的类型相同,但并非总是一样。

MakeAnotherX<Example<GenericTemplate>>::type

this example in godbolt

到目前为止,我正在使用gcc和clang(-std = c ++ 17)进行测试(和生产),但总的来说,我只希望拥有符合标准的代码。我真的很希望能够在上面的最小示例中描述的不同上下文和类中重用模板模板参数。

以健壮的方式实现此目标的正确方法是什么?另外:MakeAnother1与GCC一起使用是事实还是GCC的错误(反之亦然)?

“真实代码”要复杂得多,因此我特别希望那些“ Make”帮助程序结构可用于新类型。

更新

这个问题的一个较早的概念上相同的版本是在6年前see old post提出的。消息是,今天可以在gcc版本5及更高版本上使用此功能,但似乎没有其他编译器支持它。不幸的是,关于CWG的讨论似乎在这一点上停滞了,可以从提醒中受益吗?

现阶段:在此更新之后,如果您愿意,我们当然可以立即在此处关闭此报告。感谢所有帮助!

0 个答案:

没有答案