Как специализировать шаблон метода, используя концепции?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

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