簡體   English   中英

如何避免這種代碼重復?

[英]How to avoid this kind of code repetition?

為了避免代碼重復,我需要做這樣的事情(在我的真實代碼中,我有更復雜的類型,類似於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> >
}

您的 class C需要使用模板模板參數才能接受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> >

看演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM