Comment puis-je faire une autocomplete dans QT Creator Travail pour Par exemple, sur un nouveau projet nouveau, je crée un p> mais pour un Je suis sur Qt Creator 3.3.0, à l'aide de la chaîne de l'outil Visual Studio Compiler (donc la STL vient de VS, pas de GCC si cela fait toute différence). P> std :: vecteur code>? Est-il normal de ne pas fonctionner?
struct foo {int bar; }; code>. Si je crée un QVecteur de FOO, intellisense / autocomplete fonctionne bien: p>
std :: vecteur
v2 [0]. p>
struct bar {
int b;
};
template<class T> struct foo {
T operator [](int a) { return T(); }
};
3 Réponses :
Selon mes commentaires, il n'est tout simplement pas possible de le faire. Vous pouvez déposer un rapport de bogue et espérer qu'ils le récupèrent.
Pour expliquer mieux, il a quelque chose à voir avec std :: La mise en œuvre de vecteur: dans laquelle ... qui est défini directement en termes de t &, et vous pouvez voir pourquoi cela fonctionne pour cela. P> Mise à jour: Regardant dans Page CPPRAGENCE sur Vector , il semble que, après c + +11, il faut que cela devrait être typé comme il suffit de valoriser_type &. J'ai essayé de bâtir avec et une autre mise à jour: réussi à coder un cas de test minimal qui ne fait pas " T Travailler P> référence code> est typé comme
allocator :: Référence . Apparemment, QT Creator a des problèmes en suivant cela à la classe d'origine.
Comparez cela avec qvector ... p>
config + = c ++ 11 code> et il ne fonctionne toujours pas, cependant. P>
template<typename T>
class foo{
public:
typedef T value_type;
typedef value_type& reference;
T a;
reference operator[](int){return a;}
};
struct bar{int b;};
J'ai réussi à simplifier le code d'exemple de @ Cassio pour reproduire le problème: Qu'est-ce qui est intéressant, c'est que A.bar (). code> fonctionne mais
a [1]. Code> ne le fait pas. En outre, ce qui dit le plus, c'est que si vous déclarez l'opérateur [] comme
foo :: value_type opérateur [] (int); code>, automatique fonctionnera. P> p>
Maintenant, le modèle de code Clang est disponible: P>
aller à l'aide-> sur les plugins ... -> Activer CLANGCODEMODEL P>
Redémarrez QT Creator. Vérifiez que cela a été activé; Outils -> C ++ -> Modèle de code P>
Code Voila Autocomplète pour STD: Vector. P>
Pas possible. Malheureusement, le modèle de code de Qt Creator a des problèmes de modèles. Il y avait des travaux de travail pour le faire utiliser de Clang, mais je ne sais pas comment cela s'est retrouvé.
@Cassiorenan BTW, cela se reproduit-il aussi pour vous?
Oui. J'utilise QT Creator 3.3.2 BTW, votre test est défectueux. Essayez de mettre en œuvre un opérateur [] qui renvoie simplement un.
@Cassiorenan merci, j'ai réparé le test (ça marche toujours).
Oui, j'ai testé ici aussi, après avoir commenté. Apparemment STD :: La mise en œuvre du vecteur est le coupable ici. Vérifier la réponse.