Leiten Sie den Typ der Mitgliedsvorlage aus der Klassenvorlage ab, verschiedene TypenC++

Programme in C++. Entwicklerforum
Guest
 Leiten Sie den Typ der Mitgliedsvorlage aus der Klassenvorlage ab, verschiedene Typen

Post by Guest »

Ich habe die folgenden Kurse. Ich möchte „class First“ mit einer Vorlage haben und je nach Typ den Typ für „class Second“ festlegen, wie folgt.

Code: Select all

template
class Second
{
public:
T Get(T t)
{
return t;
}
};

template
class First
{
public:
// if T=double --> vector, if T=string --> long
Second second;

};

int main()
{
First first; // compile error, not in list
auto val = first.second.Get(1);

}
Ich kann es so zum Laufen bringen, würde aber Folgendes lieber vermeiden:

Code: Select all

#include 
#include 
#include 

template
class Second
{
public:
T Get(T t)
{
return t;
}
};

template
class First
{
public:
Second second;

};

int main()
{
First a;

First b;
}
Ich habe versucht, etwas mit constexpr zum Laufen zu bringen. Ich glaube, ich könnte std::conditional_t ​​verwenden, aber es sieht nicht sauber aus, da std::conditional eine Verschachtelung im Vorlagenaufruf erfordert.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post