Wie kann ich einen Vorlagenparameter, der nicht für eine Vorlagenspezialisierung verwendet wird, mit einem Alias ​​verseC++

Programme in C++. Entwicklerforum
Guest
 Wie kann ich einen Vorlagenparameter, der nicht für eine Vorlagenspezialisierung verwendet wird, mit einem Alias ​​verse

Post by Guest »

[*]Ich habe eine Vorlagenklasse template struct foo.
[*]Diese Klasse kann wie folgt verschachtelt werden also: foo. Der einzige Parameter, der eine foo-Struktur annimmt, ist der erste Typname T
[*]Ich kann die Reihenfolge der Parameter nicht ändern
< /ul>
Das Problem, das ich habe, ist, dass ich für die verschachtelte Spezialisierungsvorlage struct foo das nicht verwende template-Parameter int I überhaupt.
Ich hätte gerne eine Möglichkeit, diesen Parameter mit einem Alias ​​zu versehen, damit ich diesen nutzlosen Parameter nicht für verschachtelte foo-Variablen schreiben muss. Ich habe zwei Möglichkeiten ausprobiert, aber keine davon funktioniert. Ich bin gespannt, ob es überhaupt eine Möglichkeit gibt, das sauber zu machen. Können Sie mir helfen?
Codebeispiel

Code: Select all

#include 

template  concept foo_base_t = requires { typename T::base_tag; };
template  concept foo_nested_t = requires { typename T::nested_tag; };
template  concept foo_t = foo_base_t or foo_nested_t;

template  concept bar_base_t = requires { typename T::base_tag; };
template  concept bar_nested_t = requires { typename T::nested_tag; };
template  concept bar_t = bar_base_t or bar_nested_t;

// Version 1 doesn't work
//=============================
template 
struct foo
{
using base_tag = void;
};

template 
struct foo
{
using nested_tag = void;
};
//=============================

// Version 2 doesn't work
//=============================
template 
struct bar_impl
{
using base_tag = void;
};

template 
struct bar_impl
{
using nested_tag = void;
};

template 
using bar = bar_impl;

template 
using bar = bar_impl;
//=============================

int main()
{
using T = foo;
foo o;

using U = bar;
bar o;
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post