Code: Select all
template
concept specific_constructors = requires {
T(int{}, char{});
T(int{});
T(char{});
};
struct test {
test(int a_, char b_): a{a_}, b{b_} {}
explicit test(int a_): a{a_}, b{} {}
//explicit test(char b_): a{}, b{b_} {}
private:
int a;
char b;
};
auto main() -> int {
specific_constructors auto const v1 {test{1,'a'}};
}
BEARBEITEN:
Nur zur Klarheit lautet die Frage, wie ich das Konzept „specific_constructors“ so schreibe, dass es für die Klasse fehlschlägt test, da es keinen speziellen char-Konstruktor gibt.
Mobile version