Как специализировать шаблон метода, используя концепции?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как специализировать шаблон метода, используя концепции?

Сообщение Anonymous »

Моя цель проста: я хочу специализировать шаблон метода для нескольких типов одновременно.
Я гуглил для возможных способов выполнения этой задачи и обнаружил, что для этого можно использовать концепции. < /p >
Я создал упрощенную тестовую программу, которая напоминает мою целевую, чтобы проверить, как работают концепции: < /p>
#include
#include

class A {
public:
std::string getName() const { return "A"; }
};

class B {
public:
std::string getName() const { return "B"; }
};

class C {
public:
std::string getName() const { return "C"; }
};

class D {
public:
std::string getName() const { return "D"; }
};

// Concept for classes C and D
template
concept IsCorD = std::same_as || std::same_as;

// User class with the method template
class User {
public:
// Primary template declaration
template
void doSomething();
};

// Specialization for A
template
void User::doSomething() {
std::cout

Подробнее здесь: https://stackoverflow.com/questions/794 ... g-concepts
Ответить

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

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

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

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

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