Saremo aggiornamento a VS2015 presto, e ho trovato questo nella frazione lista delle modifiche:Visual Studio 2015: è consentita una serie di puntatori const?
elementi const
Il C++ standard ha sempre proibito contenitori di elementi const (come vettore o set) . Visual C++ 2013 e versioni precedenti hanno accettato tali contenitori. Nella versione corrente, tali contenitori non riescono a compilare .
Mi chiedevo se qualcuno sa se questo vale anche per un set. So che una mappa può ancora contenere puntatori const come chiavi, poiché sono comunque costanti.
Un esempio:
std::set<const QObject*>
Posso ancora fare questo? Non penserei, secondo il post sul sito di Microsoft.
'const T *' e 'T * non const' la stessa cosa. –
La citazione dice letteralmente che si applica al set. Tuttavia, il tuo codice non ha molto a che fare con la citazione in modo da essere al sicuro :) –
La confusione è rafforzata dallo stile nobilmente intenzionale ma fuorviante che omette lo spazio prima dell'asterisco (o la e commerciale su un riferimento) . Scrivere 'const QObject *' suggerisce visivamente che '*' si lega a QObject più stretto di 'const'. Spostare il 'const' non aiuta:' QObject const * '. È come scrivere 'return a * x + b * y;'. –