Написание концепции C++ для типа со статической функцией-членом, аргументы которой начинаются с определенного типа.C++

Программы на C++. Форум разработчиков
Anonymous
Написание концепции C++ для типа со статической функцией-членом, аргументы которой начинаются с определенного типа.

Сообщение Anonymous »


В моем коде есть следующий шаблон фабрики:

Базовый класс { // New создает конкретный тип, но возвращает PTR в базу // ... здесь представляет фактическое продолжение параметров (например, int, double), а не переменные параметры static Ptr New(const Dictionary& dict, ...); // База — абстрактный класс виртуальное обновление пустоты () = 0; }; Как мне написать концепцию, которая допускает любые типы (и количество) аргументов после первого словаря для Base::New?

Моя попытка привела к следующему:

шаблон концепция DictionaryRTSModel = требует (словарь d, Args... args) { { T::New(d, args...) }; }; который работает, но требует передачи типов в концепцию (DictionaryRTSModel будет гарантировать, что T::New(dictionary&, int, double) есть.

Есть ли способ пропустить просмотр аргументов T::New после первого? Я нахожусь на ранней стадии разработки, поэтому возможен значительный рефакторинг.

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