Aggregate initialization для классов с виртуальными методами

waka.packmaca
waka.packmaca

В связи с имеющимся ограничением следующий код невалиден:

struct Serializer {
  virtual ~Serializer() = default;
  virtual void write(std::int64_t) = 0;
};

struct Serializable {
  virtual ~Serializable() = default;
  virtual void serialize(Serializer &s) const = 0;
};

struct Object : Serializable {
  std::int64_t value;

  void serialize(Serializer &s) const override {
    s.write(value);
  }
};

// ...

Object {.value = 16};

 

2
рейтинг
Нет комментариев
Другие идеи
Группа создана, чтобы собирать предложения к стандарту C++, организовывать их внутренние обсуждения, помогать готовить их для отправки в комитет и защищать на общих собраниях в рабочей группе по С++ Международной организации по стандартизации (ISO).
Все предложения