gpt4 book ai didi

c++ - 如何避免这种代码重复?

转载 作者:行者123 更新时间:2023-12-01 12:55:08 25 4
gpt4 key购买 nike

为了避免代码重复,我需要做类似的事情(在我的真实代码中,我有更复杂的类型,类似于T1T2):

template <class T1, class T2>
struct A
{};

template <class T1, class T2>
struct B
{};

template <class X>
struct C
{
using p1 = int;
using p2 = char;

using some = X<p1, p2>;
};

int main()
{
C<A> o1; // must produce C<A<int,char> >
C<B> o2; // must produce C<B<int,char> >
}

最佳答案

您的类C需要使用template template parameter才能接受AB作为自己模板的输入,以便随后可以将参数传递给它们,例如:

template <template<typename T1, typename T2> class X>
struct C
{
using p1 = int;
using p2 = char;

using some = X<p1, p2>;
};
现在您可以执行以下操作:
C<A> o1; // produce C<A<int,char> >
C<B> o2; // produce C<B<int,char> >
See a demo

关于c++ - 如何避免这种代码重复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63236206/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com