Pagina didattica di G. Servizi
Home >> Linguaggio C++


livello minimale

Le parole elencate in questo documento sono il vocabolario del linguaggio; devono essere scritte così come indicato e non possono essere usate se non nel contesto per cui sono state create. 33 erano presenti già nel C ANSI, prima dell'avvento del C++, 15 sono state aggiunte nel nuovo standard 2011, anche se non tutte e 15 sono definibili esattamente come parole di vocabolario, e 9 saranno contemplate nel futuro standard 2020.

INDICE ANALITICO delle parole del vocabolario del C++ (c++11/20)

Legenda:     C++      modificate in c++11     nuove in c++11     nuove in c++20

alignas

alignof

asm

atomic_cancel

atomic_commit

atomic_noexcept

auto

bool

break

case

catch

char

char16_t

char32_t

class

concept

const

constexpr

const_cast

continue

decltype

default

delete

do

double

dynamic_cast

else

enum

explicit

export

extern

false

final

float

for

friend

goto

if

import

initializer_list

inline

int

long

module

move

mutable

namespace

new

noexcept

nullptr

operator

override

private

protected

public

R

register

reinterpret_cast

requires

return

short

signed

sizeof

static

static_assert

static_cast

struct

switch

synchronized

template

this

thread_local

throw

true

try

typedef

typename

union

unsigned

using

virtual

void

volatile

wchar_t

while

Lo standard 2011 ha altresì promosso al rango di parole di vocabolario talune che diversi compilatori già ammettevano come uso, per così dire, dialettale, e come tale sconsigliabile prima dell'avvento del nuovo standard. Tra queste si citano and, or, not che sono interpretate rispettivamente come gli operatori logici &&, ||, !
Sinceramente se ne può fare tranquillamente a meno, una volta che si sappia che esistono.
Se vi interessa conoscere anche le altre, domandatele a voce.

N.B.:
secondo la giusta opinione dell'autore di queste note, non possono essere considerate parole del vocabolario, come taluno afferma erroneamente, quelle il cui significato diventa noto al compilatore solo in seguito ad inclusione di qualche documento d'intestazione, ossia solo tramite la collaborazione del pre-processore: ad esempio non può essere considerata parola del vocabolario typeid e neppure iterator, in quanto per la prima è necessario includere typeinfo e per la seconda qualcuno dei documenti d'intestazione della standard template library.
Queste affermazioni vanno assunte con un minimo di elasticità; ad esempio il compilatore GNU riconosce la natura di typeid anche senza l'inclusione di typeinfo, segnalando come errore una cosa del tipo int typeid, anche se poi, mancando tale inclusione, segnala come errore anche l'uso appropriato di questa parola.

N.B. ancora:
Nel precedente elenco è stata inserita anche R quantunque forse vada meglio considerata come un segno di punteggiatura o forse, meglio ancora, come una sorta di manipolatore di output. Del resto appare l'unica che usa lettere maiuscole; in definitiva l'importante è che ci sia. Anche move non è, in realtà, una parola del vocabolario, ma una funzione template la cui dichiarazione è stata aggiunta al namespace std. È stata inserita in questa lista perché è l'artefice esplicita della move semantic, una delle più significative novità del nuovo standard. Infine neppure finaloverrideinitializer_list sono autentiche parole del vocabolario.

Torna in cima alla pagina