type-erasure

Итак, я читалэту статью о стирании типов . Но код в этой статье кажется частично неверным, например: template <typename T> class AnimalWrapper : public MyAnimal { const T &m_animal; public: AnimalWrapper(const T &animal) : m_animal(animal) { } const char *see() const ...

Рассмотрим следующий класс, который обертывает контейнер и type-erase s его тип: class C final { struct B { virtual bool empty() const noexcept = 0; }; template<class T, class A> struct D: public B { // several constructors aimed to // correctly initialize the...

Рассмотрим обобщенную функцию: def genericFn[T](fn: T => Boolean): Unit = { // do something involves T } Можно ли ограничить T (во время компиляции) простым типом, а не таким, как List[Int]? Проблема подчиненных, которую я хочу решить, выглядит примерно так: var actorReceive: Receive = PartialFun...

Вопрос 1: JVM не знает о генераторах, поэтому параметры типа в Scala (и Java) существуют только во время компиляции. Они не существуют во время выполнения. Поскольку Akka-это платформа Scala (и Java), она также страдает от этого недостатка. Он страдает от этого, в частности, потому, что в Akka сообщения меж...

Я точно знаю, что в Haskell типы всегда стираются до времени выполнения. Что происходит в случае Агда? Передается ли информация зависимого типа во время выполнения ? ...

Согласно документации SafeVarargs, аннотацию @SafeVarargs можно применять только к конструкторам или методам переменной арности, которые являются либо static, либо final. Это, я прочитал , чтобы устранить проблемы с наследованием аннотаций; то есть, аннотации к методам допускаются только в том случае, если ме...

Я реализую класс, который выполняет стирание типов для небольших объектов и столкнулся с ошибкой сегментации, которую я не понимаю. Следующая программа: #include <iostream> #include <type_traits> struct small_object { public: template<class T> small_object(const T& value) ...

Это печальный факт жизни на Scala, что если вы создаете экземпляр List[Int], вы можете проверить, что ваш экземпляр является списком, и вы можете проверить, что любой отдельный элемент его является Int, но не то, что это список[Int], как можно легко проверить: scala> List(1,2,3) match { | case l : Li...

у меня есть следующий класс (из простого весеннего урока) public class CarValidator implements Validator { public boolean supports(Class aClass) { return Car.class.equals(aClass); } public void validate(Object obj, Errors errors) { Car car = (Car) obj; ValidationUtils.r...

The std::unique_ptr шаблон имеет два параметра: тип указателя и тип делетера. Этот второй параметр имеет значение по умолчанию, поэтому обычно просто пишут что-то вроде std::unique_ptr<int>. The std::shared_ptr шаблон имеет только один параметр, хотя: тип указателя. Но вы также можете использовать поль...