【发布时间】:2020-04-04 15:30:49
【问题描述】:
在java中,我有一个方法:
Set<? extends Entry<? extends ClassA, ? extends ClassB>> getEntries();
我已经阅读了关于C++ equivalent of using <T extends Class> for a java parameter/return type的问题,
我尝试如下:
template<typename K, typename std::enable_if<std::is_base_of<ClassA, K>::value>::type* = nullptr, typename V, typename std::enable_if<std::is_base_of<ClassB, V>::value>::type* = nullptr> set<pair<K,V>> getEntries()
它编译得很好,但我认为它很长而且可能是错误的。我想知道是否有更好的解决方案。
【问题讨论】:
-
为什么不止一个模板参数会有所不同?您是否尝试过调整链接帖子中的解决方案以满足您的需求?
-
对不起。我尝试如下:
template<typename K, typename std::enable_if<std::is_base_of<ClassA, K>::value>::type* = nullptr, typename V, typename std::enable_if<std::is_base_of<ClassB, V>::value>::type* = nullptr> set<pair<K,V>> getEntries();但我认为它很长而且可能是错误的 -
请编辑问题以包含您尝试的内容。试图在 cmets 中读取它并不容易。
-
感谢您的指导。其实这是我在stackoverflow中的第一个问题