Visual Studio C++17 - Problème compilation sous Ubuntu

"expected unqualified-id before '[' token

a marqué ce sujet comme résolu.

Bonjour à tous, j’ai commencé le cours de C++ et je code sous Visual Studio Code sous Ubuntu.

Dans la 2e partie, section "Reprendrez vous un peu de sucre syntaxique", voici le code qui est proposé:


#include <cassert>
#include <iostream>
#include <string>
#include <tuple>

int main()
{
    using namespace std::literals;
    auto bookmark = std::make_tuple("https://zestedesavoir.com"s, "Zeste de Savoir"s, 30);

    auto&[url, titre, visites] = bookmark;
    ++visites;

    assert(std::get<2>(bookmark) == 31);
    return 0;
}

Malheureusement quand je copie-colle ce code, après avoir paramétré correctement mon compilateur (du moins je pense) j’ai toujours cette erreur qui m’empêche de compiler:

expected unqualified-id before '[' token

Cette erreur se trouve au niveau de la ligne:

auto&[url,nom,visit] = bookmark;

Quelqu’un a une idée ? Je tourne en rond depuis quelques jours.

Merci !

Salut,

comme dit j’ai paramétré le compilateur pour qu’il compile avec c++17 (en utilisant un fichier personnalisé "c_cpp_properties.json" avec les paramètres "cppStandard=c++17" et "cStandard=c17").

Ensuite c’est au moment de compiler (sous Visual Studio en utilisant CTRL+SHIFT+B) le main.cpp que l’erreur apparait et du coup je peux pas exécuter.

Pour gcc/g++ j’ai la version 5.4.0 (Ubuntu 16.04).

Ok bon j’ai installé la version gcc-6, j’ai changé le softlink pour que gcc utilise gcc-6 (update-alternatives) et j’ai mis à jour mes path pour que VSCode trouvent les différents fichiers source.

Malheureusement après tout ça, VSCode m’indique qu’il ne trouve pas les fichiers sources d’entête (vector.h, iostream.h etc…).

Je ne comprends pas car dans mon fichier c_cpp_properties.json j’ai bien ajouté les chemins qui contiennent les fichiers sources.

+0 -0

Je suis sous Ubuntu16.04 et voilà ce que j’ai dans mon fichier c_cpp_properties.json:

{
    "configurations": [
        {
            "browse": {
                "databaseFilename": "",
                "limitSymbolsToIncludedHeaders": true
            },
            "includePath": [
                "/usr/include/**",
                "/home/damien/Vincent-Dynaflock/Learning_C++/Zeste_du_Savoir/**",
                "/usr/lib/gcc/x86_64-linux-gnu/6/include/**",
                "/home/damien/pepper_ws/src/**"
            ],
            "name": "ROS",
            "intelliSenseMode": "gcc-x64",
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "c17",
            "cppStandard": "c++17",
            "compileCommands": "${workspaceFolder}/build/compile_commands.json"
        }
    ],
    "version": 4
}

Est-ce que l’un de vous peut partager son fichier task.json si vous utilisez VisualStudioCode ?

J’ai l’impression que mon c_cpp_properties.json n’est pas du tout pris en compte en fait.

Dans le lien "Getting Started" de Visual Studio ils parlent des 2 possibilités mais ils disent pas clairement faire en sorte de compiler avec le c_cpp_properties.json.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte