Question

Cela ressemble à une question triviale pour moi, peut-être que je n'ai pas trouvé la bonne documentation.

J'ai une structure A, et je veux définir le paramètre B pour être de retour du type de fonction A:

struct A{
    int operator[](int);
};

Et puis à un moment donné

decltype(A::operator[]) b = 0;

Je pourrais faire ceci: mais c'est moche.

A a;
decltype(a[0]) b = 0;

(Il peut être double / int, etc.), je ne veux pas utiliser de modèles.

Merci,

Était-ce utile?

La solution

Je ne comprends pas très bien le besoin, à part jouer avec la syntaxe. C'est précisément ce auto a été conçu pour, et auto est pris en charge par la même norme qui a ajouté decltype...

En tout cas, vous devez simuler l'appel de fonction:

decltype(std::declval<A>()[0]) b = 0;   // equivalent to `int b = 0;`
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top