Partage
  • Partager sur Facebook
  • Partager sur Twitter

Visual studio code : string_view

string_view is not a member of 'std'

Sujet résolu
    21 août 2022 à 17:40:43

    Bonjour,

    Je suis nouveau à C++ et je programme sur Visual Studio code.

    Malheureusement je me suis retrouvé dans l'incapacité de définir une variable de type std::string_view !

    -Programme :

    #include <iostream>
    #include <string_view>
    
    int main() {
        std::string_view mot = "Hello world";
    
        return 0;
    }
    -Erreur :
    test.cpp: In function 'int main()':
    test.cpp:5:10: error: 'string_view' is not a member of 'std'
        5 |     std::string_view mot = "Hello world";
          |          ^~~~~~~~~~~
    test.cpp:5:10: note: 'std::string_view' is only available from C++17 onwards
    J'ai déjà modifié la version du standard cpp (c++17, c++20 ou c++23 ne marchent pas).
    Je n'ai trouvé aucune solution à mon problème qui me paraissait compréhensible.
    J'espère que quelqu'un pourra m'aider (et merci d'avance) !
    • Partager sur Facebook
    • Partager sur Twitter
      21 août 2022 à 18:13:46

      Qu'entends-tu par : "ne marchent pas" ? Mettre l'option provoque une erreur? A partir de C++17 tu dois avoir std::string_view, et l'erreur indique bien qu'il faut activer C++17 ou plus. Quel compilateur et quelle version utilises-tu ?
      • Partager sur Facebook
      • Partager sur Twitter

      En recherche d'emploi.

        21 août 2022 à 18:33:17

        Il y a de fortes chances que ton compilateur (gcc semble t'il) prend en charge le C++17, sinon tu aurais une erreur sur l'include <string_view>.

        • Partager sur Facebook
        • Partager sur Twitter
        ...
          21 août 2022 à 19:52:23

          Si c'est gcc, il faut penser à le mettre à jour. Depuis la version 11, C++17 est activé par défaut. La dernière version est gcc-12.

          Pour l'option d'activation de C++17: -std=c++17

          • Partager sur Facebook
          • Partager sur Twitter
            21 août 2022 à 22:16:45

            Bonsoir,

            Déjà merci pour vos réponses !

            Je pense que des précisions auraient été nécessaire en effet, je m'en excuse.

            Alors, quand je dis que c++17,c++20 et c++23 ne marchent pas c'est que peu importe le cpp standard que je choisis, le problème persiste.

            Concernant le compiler, j'ai choisis la solution facile et j'utilise l'extension "Code Runner". Peut être que mon problème vient de là et si oui alors j'irais regarder des tutos pour installer gcc. Si il est possible de régler ce problème tout en gardant cette extension, cela m'arrangerait car je l'utilise aussi pour mes programmes python.

            Merci d'avance pour vos réponses !

            EDIT : Code runner était bien le problème, je pense que le compiler doit être sur c++14. J'ai installé gcc et le problème a été réglé, merci pour vos réponses !

            -
            Edité par NaïmZairi 22 août 2022 à 0:37:35

            • Partager sur Facebook
            • Partager sur Twitter
              25 août 2022 à 22:29:15

              Juste quelques clarifications:

              - L'extension Code Runner (pour VSCode) n'installe pas de compilateur à ma connaissance. Il execute juste par défaut une commande gcc basique (donc il s'attend à ce que gcc soit installé et visible) pour compiler -puis linker en un executable- le fichier ouvert dans l'éditeur. On peut modifier cette commande dans son settings.json ("cpp" dans "code-runner.executorMap"). Ta nouvelle installation d'un gcc récent a peut être fait tomber le bousin en marche s'il s'agit de gcc >=11 (car son standard par défaut est C++17).

              - Code Runner ne doit pas être utilisé pour autre chose que des toy projects (et encore) ou faire un test vite fait dans un fichier autosuffisant: en gros uniquement s'il n'y a qu'une seule unité de compilation par executable, ie un seul .cpp, et pas de dépendances externes. Pour le reste, on passe direct à CMake et l'extension CMake Tools, sinon c'est ingérable.

              -
              Edité par SpaceIn 25 août 2022 à 22:31:59

              • Partager sur Facebook
              • Partager sur Twitter

              Visual studio code : string_view

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown