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