Есть ли способ определить класс Foo в C++ так чтоC++ предотвращения алмаза
- Я могу наследовать от него
- я не может «алмаз унаследует» от него
Т.е.
class Cat: public Foo{} // okay
class Dog: public Foo{} // okay
class Weird: public Cat, public Dog {} // I want this to throw a compiler error
@vava: приятное редактирование, не реализовано 1. 2. auto itemizes – anon
Вы * не * хотите использовать виртуальное наследование или вы не знаете об этом? – Duck
Я не знал об этом. Тем не менее, я также хотел бы получить ошибку компилятора. Базовый класс «Foo», наследуемый мной, является инвазивным указателем, пересчитанным по рефлектограмме. Я не должен иметь два экземпляра этого объекта. – anon