Есть ли какой -нибудь обходной путь для шаблона виртуальной функции с ограничением типа в этом случае?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Есть ли какой -нибудь обходной путь для шаблона виртуальной функции с ограничением типа в этом случае?

Сообщение Anonymous »

Если у вас есть концепция и шаблон функции члена класса, например: < /p>

Код: Выделить всё

template
concept Vector2 = requires (T t) { t.x; t.y; };

struct Shape
{
bool contains(const Vector2 auto&) { ... }
};
Есть ли в каком -то обходном пути, чтобы содержать быть чисто виртуальной функцией? Таким образом, дети дочерних классов (например, Circle , Polygon и т. Д.) могут наследовать, как SO:

Код: Выделить всё

struct Circle : public Shape
{
bool contains(const Vector2 auto&) const override;
};
Очевидно, что приведенное выше не работает, поскольку шаблоны виртуальной функции не допускаются.
Причина концепции Vector2 заключается в том, что я использую 2D-функциональность из разных библиотек, и я хочу, чтобы все их соответствующие Vector2 -class могли передавать мои функции. Является ли этот шаблон дизайна, как правило, хорошей идеей или нет, не является тем, о чем мой вопрос, а просто если что -то, напоминающее то, что я хочу достичь, возможно. возможно?

Подробнее здесь: https://stackoverflow.com/questions/772 ... nstraint-i
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»