type-erasure

    0热度

    1回答

    我有以下继承结构类型橡皮擦: Holder / | \ | | | Holder_A_1 Holder_B_1 Holder_C_1 | | ... Holder_A_2 Holder_B_2 ... ... | | Holder_A_base Holder_B_base

    3热度

    3回答

    我有一组非常不同的类型,我希望将实例存储在单个集合中,特别是地图。为此,我使用类型擦除成语,即。我从该模板,类型特定类继承的非模板基类: struct concept { virtual std::unique_ptr<concept> copy() = 0; // example member function }; template <typename T> struct

    6热度

    2回答

    为什么在这个通用接口中需要不安全的cast (T)?如果T媲美本身,即实现ExtendedComparable<super of T>这意味着还ExtendedComparable<T>,那么为什么类型擦除需要ExtendedComparable<T>定投至T? /* @param <T> T must be comparable to itself or any of its superclas

    1热度

    2回答

    我有这样的接口: public interface Inflatable { Pump<? extends Inflatable> getPump(); } 该接口: public Pump<T extends Inflatable> { int readPressure(T thingToInflate); } 现在这个类: public class Prepar

    -2热度

    1回答

    假设我有两种: 甲boost::any或 一种std::any(我使用C++ 17) 其中我不知道的类型。我是否可以打印或以字符串形式获取any所保存类型的名称? 注:即使是错位式的名字 - 你typeid(TR).name()得到的那种 - 就足够了,我可以把它从那里用abi::__cxa_demangle。

    1热度

    1回答

    我使用数据仓库是这样的: interface HerbadgeRepository extends JpaRepository<Herbadge, Integer> { } 甲骨文they say: 要实现泛型,Java编译器适用类型擦除... 我很困惑,字节码必须是这样的: interface HerbadgeRepository extends JpaRepository<?, ?> {

    4热度

    1回答

    我想要一些可以接受任何可调用对象的代码,并且我不想在头文件中公开实现。 我不想在堆或免费存储上冒险分配内存(投掷的风险和性能受到影响,或者我在代码中无法访问堆)。 没有价值语义可能已经足够了:通常在当前范围结束之前完成调用。但是价值语义可能是有用的,如果不是太昂贵的话。 我该怎么办? 现有的解决方案有问题。 std::function分配并具有值语义,并且原始函数指针缺乏传输状态的能力。传递一个C

    1热度

    1回答

    我想知道这是可能使符合性状像这样的擦除类型: template<class T> using read_t = std::conditional_t<true, decltype(std::declval<T>().Read(uint16_t{})), std::integral_constant<uint8_t (T::*)(uint16_t), &T::Read>>;

    0热度

    2回答

    下面是一个例子 def maybeeq[A <: String](x: A):A = x match { case z:A => x } 它编译过程中产生的以下错误消息 Error:(27, 12) scrutinee is incompatible with pattern type; found : A required: String case z:A => x 我可以把任何

    -1热度

    1回答

    我使用javap反编译Map类。类定义仍然显示泛型类型K和V的存在。 这应该通过类型擦除的概念来消除。为什么没有发生? ./javap -verbose java.util.Map Classfile jar:file:/opt/jdk1.8.0_101/jre/lib/rt.jar!/java/util/Map.class Last modified 22 Jun, 2016; siz