Шаблонный аргумент T, где T имеет метод Parse - PullRequest
0 голосов
/ 23 апреля 2020

Я хотел бы создать класс, который принимает только типы с определенным методом T Parse(string source) в качестве аргумента шаблона. Что я должен написать вместо многоточия?

public class Foo<T> where T: ... {}

Если я определю интерфейс с помощью метода Parse, то только пользовательские типы, реализующие такой интерфейс, будут удовлетворять условию, верно? Но я также хочу, чтобы нативные типы были приняты, потому что у них есть такой метод.

Рассмотрим, например, концепцию C++20's. Это булева функция, вычисляемая во время компиляции, если она оценивается как true, компилятор принимает аргумент, в противном случае возникает ошибка.

Есть ли способ сделать это, желательно во время компиляции?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...