function parseCppStandard()

in src/cpptools.ts [66:83]


function parseCppStandard(std: string, can_use_gnu: boolean): StandardVersion {
    const is_gnu = can_use_gnu && std.startsWith('gnu');
    if (std.endsWith('++2a') || std.endsWith('++2b') || std.endsWith('++20') || std.endsWith('++latest')) {
        return is_gnu ? 'gnu++20' : 'c++20';
    } else if (std.endsWith('++17') || std.endsWith('++1z')) {
        return is_gnu ? 'gnu++17' : 'c++17';
    } else if (std.endsWith('++14') || std.endsWith('++1y')) {
        return is_gnu ? 'gnu++14' : 'c++14';
    } else if (std.endsWith('++11') || std.endsWith('++0x')) {
        return is_gnu ? 'gnu++11' : 'c++11';
    } else if (std.endsWith('++03')) {
        return is_gnu ? 'gnu++03' : 'c++03';
    } else if (std.endsWith('++98')) {
        return is_gnu ? 'gnu++98' : 'c++98';
    } else {
        return undefined;
    }
}