LINUX.ORG.RU

История изменений

Исправление MOPKOBKA, (текущая версия) :

К чему все эти макросы? Вот так просто выражаются эти твои трейты:

template <typename T>
class Readable {
  virtual bool can_read();
  virtual T read();
};

class SomeClass {};

class ImplReadableSomeClass : public Readable<int> {
  ImplReadableSomeClass(SomeClass &super);
  bool can_read() override;
  int read() override;
};

typename <T>
void read(Readable<T> &obj);
Используя этот подход, потеряется ровно 0 преимуществ трейтов.

Исправление MOPKOBKA, :

К чему все эти макросы? Вот так просто выражаются эти твои трейты:

template <typename T>
class Readable {
  virtual bool can_read();
  virtual T read();
};

class SomeClass {};

class ImplReadableSomeClass : public Readable<int> {
  ImplReadableSomeClass(SomeClass &super);
  bool can_read() override;
  T read() override;
};

typename <T>
void read(Readable<T> &obj);
Используя этот подход, потеряется ровно 0 преимуществ трейтов.

Исходная версия MOPKOBKA, :

К чему все эти макросы? Вот так просто выражаются эти твои трейты:

template <typename T>
class Readable {
  virtual bool can_read();
  virtual T read();
};

class SomeClass {};

class ImplReadableSomeClass : public Readable<int> {
  ImplReadableSomeClass(SomeClass &super);
  bool can_read() override;
  T read() override;
};

typename <T>
void read(Readable<T> &obj);