recherche

Maison  >  Questions et réponses  >  le corps du texte

java - C++ 编译器选择问题

平时用codeblocks,编译时出现这些问题,上网查结果很少,要么跳转要英文网站,请问这是因为这款软件默认GCC编译而提示这样的错误(gcc的特定语法?)还是英文导致搜索结果少(我用百度)

处理这些问题老是半天都找不到解决方法。如果前者,我应该改大众一些的IDE,如vc++;如果后者,我应该改为中文?

应该是前者吧,因为搜索结果老是看到gcc字眼,如果在cb里设置为vc++编程是否错误显示就是vc类型了呢?

附图_原错误代码

PHP中文网PHP中文网2803 Il y a quelques jours600

répondre à tous(3)je répondrai

  • 高洛峰

    高洛峰2017-04-18 10:53:30

    n n'est pas déclaré dans le scope

    répondre
    0
  • 迷茫

    迷茫2017-04-18 10:53:30

    Il existe trois structures de déclaration courantes liées aux modèles de fonctions : déclarer les modèles de fonctions, déclarer les spécialisations et déclarer les instances.

    template <class T, ...>
    void foo();
    
    template <>
    void foo<T1, T2, ...>(); // 除非是特化含参数包的模板,否则参数列表不能为空
    
    template void foo<T1, T2 ...>(); // 同上
    

    Il en va de même pour la surcharge des opérateurs

    template <class T>
    std::ostream &operator<<(std::ostream &, Seqlist<T> &);
    
    template <>
    std::ostream &operator<<<int>(std::ostream &, Seqlist<int> &);
    
    template
    std::ostream &operator<<<int>(std::ostream &, Seqlist<int> &);
    

    Je pense que vous n'êtes pas spécialisé ici, vous voulez juste déclarer le modèle. Parce que vous avez utilisé des paramètres de modèle dans la liste des paramètres de fonction. Référez-vous à la première façon d’écrire.

    Si vous ne faites pas trop de développement de modèles, la surcharge du << du flux est en fait cette routine, mémorisez-la simplement. Une autre forme courante est

    template <class CharT, class Traits>
    std::basic_ostream<CharT, Traits> &operator<<(std::basic_ostream<CharT, Traits> &, ??);
    

    Je ne pense pas qu'il soit nécessaire de changer le compilateur, je peux apprendre la syntaxe du livre. Si vous souhaitez effectuer une recherche, vous devez rechercher « méthode d'écriture de surcharge ostream », puis comparer les codes. S'il s'agit d'une utilisation très approfondie du modèle, la recherche des invites d'erreur de syntaxe de copie ne pourra pas en découvrir la raison.

    répondre
    0
  • 阿神

    阿神2017-04-18 10:53:30

    Le message d'erreur que le compilateur vous donne est très clair. Peut-être que vous ne savez pas lire l'anglais. Ne vous inquiétez pas du compilateur choisir, le compilateur est innocent, gcc est plutôt bon

    répondre
    0
  • Annulerrépondre