Сообщение Re: количество аргументов из шаблона от 20.11.2019 19:38
Изменено 20.11.2019 19:52 rg45
Re: количество аргументов из шаблона
Здравствуйте, Dair, Вы писали:
D>Как бы такое написать
Ну, навскидку, как-то так:
http://coliru.stacked-crooked.com/a/24a17eae8da7a765
D>Как бы такое написать
пример | |
D>
D>Чтобы пользоваться этим примерно так: D>
| |
Ну, навскидку, как-то так:
http://coliru.stacked-crooked.com/a/24a17eae8da7a765
template <typename, typename, typename> class Foo_;
template <typename Ret, typename Arg, size_t...I>
class Foo_<Ret, Arg, std::index_sequence<I...>> {
template <size_t> using Param = Arg;
public:
virtual ~Foo_() = default;
virtual Ret bar(Param<I>...) = 0;
};
template <typename Ret, typename Arg, size_t N>
using Foo = Foo_<Ret, Arg, std::make_index_sequence<N>>;
Re: количество аргументов из шаблона
Здравствуйте, Dair, Вы писали:
D>Чтобы пользоваться этим примерно так:
D>
Ну, навскидку, как-то так:
http://coliru.stacked-crooked.com/a/24a17eae8da7a765
D>Как бы такое написать | |
D>
| |
D>Чтобы пользоваться этим примерно так:
D>
D>class S3 : public Foo<void, int, 3> {
D>public:
D> void bar(int a1, int a2, int a3) override {
D> }
D>};
D>class S5 : public Foo<void, int, 5> {
D>public:
D> void bar(int a1, int a2, int a3, int a4, int a5) override {
D> }
D>};
D>
Ну, навскидку, как-то так:
http://coliru.stacked-crooked.com/a/24a17eae8da7a765
template <typename, typename, typename> class Foo_;
template <typename Ret, typename Arg, size_t...I>
class Foo_<Ret, Arg, std::index_sequence<I...>> {
template <size_t> using Param = Arg;
public:
virtual ~Foo_() = default;
virtual Ret bar(Param<I>...) = 0;
};
template <typename Ret, typename Arg, size_t N>
using Foo = Foo_<Ret, Arg, std::make_index_sequence<N>>;