Articles of const

Array a variazione variabile nell’ambito del file

Voglio creare un array statico costante da utilizzare nel mio file di implementazione Objective-C simile a qualcosa di simile al livello più alto del mio file “.m”: static const int NUM_TYPES = 4; static int types[NUM_TYPES] = { 1, 2, 3, 4 }; Pianifico di utilizzare NUM_TYPES più avanti nel file, quindi ho voluto inserirlo […]

Differenza tra char * e const char *?

Qual è la differenza tra char* name che punta a una costante stringa letterale, e const char* name

Perché posso cambiare il valore di una costante in javascript

So che ES6 non è ancora standardizzato, ma molti browser supportano attualmente la parola chiave const in JS. Nello spec, è scritto che: Il valore di una costante non può cambiare attraverso la riassegnazione e una costante non può essere dichiarata nuovamente. Per questo motivo, sebbene sia ansible dichiarare una costante senza inizializzarla, sarebbe inutile […]

Membro const non statico, imansible utilizzare l’operatore di assegnazione predefinito

Un programma che sto espandendo usa molto std::pair . C’è un punto nel mio codice in cui il compilatore lancia un piuttosto grande: Il membro const non statico, ‘const Ptr std: pair, const double *> :: first’ non può utilizzare l’operatore di assegnazione predefinito Non sono davvero sicuro di cosa si stia riferendo? Quali metodi […]

C ++ 0x lambda cattura per valore sempre const?

Esiste un modo per acquisire per valore e rendere il valore acquisito non const? Ho un functor di libreria che vorrei catturare e chiamare un metodo che non è const, ma dovrebbe essere. Quanto segue non si compila ma facendo sì che foo :: operator () const lo risolva. struct foo { bool operator () […]

In C, una variabile const può essere modificata tramite un puntatore?

Ho scritto qualcosa di simile a questo nel mio codice const int x=1; int *ptr; ptr = &x; *ptr = 2; Funziona su tutti i compilatori? Perché il compilatore GCC non nota che stiamo modificando una variabile costante?

Perché non è l’operatore const per le mappe STL?

Esempio inventato, nell’interesse della domanda: void MyClass::MyFunction( int x ) const { std::cout << m_map[x] << std::endl } Questo non verrà compilato, poiché l’operatore [] non è const. Questo è un peccato, poiché la syntax [] sembra molto pulita. Invece, devo fare qualcosa di simile a questo: void MyClass::MyFunction( int x ) const { MyMap […]

La dimensione di (enum) == sizeof (int), sempre?

La dimensione di (enum) == sizeof (int), sempre? O dipende dal compilatore? È sbagliato dire che il compilatore è ottimizzato per le lunghezze delle parole (allineamento della memoria), cioè y int è la dimensione della parola su un particolare compilatore? Significa che non c’è penalità di elaborazione se uso le enumerazioni, dato che sarebbero allineate […]

Eliminazione di un puntatore a const (T const *)

Ho una domanda di base riguardante i puntatori const. Non sono autorizzato a chiamare funzioni membro non const tramite un puntatore const. Tuttavia, sono autorizzato a farlo su un puntatore const: delete p; Questo chiamerà il distruttore della class che in sostanza è un “metodo” non const. Perché è permesso? È solo per supportare questo: […]

Che tipo di ottimizzazione offre const in C / C ++? (se presente)

So che, ove ansible, dovresti usare la parola chiave const quando passi parametri per riferimento o per puntatore per ragioni di leggibilità. Esistono ottimizzazioni che il compilatore può fare se si specifica che un argomento è costante? Potrebbero esserci alcuni casi: Parametri di funzione: Riferimento costante: void foo(const SomeClass& obj) Oggetto Constant SomeClass: void foo(const […]