Ich habe diese Struktur:Typdeklaration spezifischen Konstruktor mit spezifischen Parametern
struct A {
A(int a, bool b):a(a), b(b) {};
int a;
bool b;
}
Kann ich irgendwie eine Art Erklärung für bestimmte Konstruktoraufruf mit spezifischen Parametern deklariert?
Ich meine, so etwas wie das:
typedef A(2, false) A_2_false;
So konnte ich diese wie folgt verwenden:
const A a_func() { return A_2_false; };
Es
std::bind
erinnert, wo Sie eine Funktion aufrufen und einige Set vorbestellt können die Variablen anstelle vonstd::place_holders
.Ich habe versucht,
std::integral_constant
aber ohne Glück zu verwenden.Ich will nicht
#define
Dank
verwenden --- --- UPDATE
Was zu erreichen Ich versuche:
I‘ m Schreiben einer Rückruffunktion:
typedef std::function<const A()> CbFunc
A Ein einfacher Benutzer sollte CbFunc
verwenden und const A
zurückgeben. Ich wollte die Dinge vereinfachen machen, so dass ein Benutzer Callback-Funktion sein könnte:
const A userCbFunc() {
...
...
// Good thing happend
return A_2_false;
...
...
// Bad thing happend
return A(99, true);
}
ich den Good thing happened
Rückgabetyp weiter vereinfacht, machen wollte, so wäre es A_2_false
statt A(2, false)
sein.
Dann verwende ich die Strukturelemente, wenn die Funktion zurückgibt.
Btw: Top-Ebene const macht nicht viel Sinn auf Rückgabewerte und wird sogar von einigen Compilern gewarnt, denke ich. –
Was möchten Sie erreichen? Vielleicht [Templates] (https://en.wikipedia.org/wiki/Template_%28C%2B%2B%29) sind was Sie suchen? Eine andere Option könnte das [Fabrikmuster] sein (https://en.wikipedia.org/wiki/Factory_method_pattern). – sigy