Errori, bug, domande - pagina 2418

 
Slava:

Passare un parametro per riferimento implica che c'è una variabile allocata in memoria.

Le costanti, d'altra parte, non sono memorizzate da nessuna parte, ma vengono utilizzate direttamente.

e cosa vi impedisce di creare una variabile temporanea?
 
TheXpert:
E cosa vi impedisce di creare una variabile temporanea?

Questo è quello che faccio. Non capisco perché gli sviluppatori dovrebbero farlo per me.

 
fxsaber:

Questo è quello che faccio. Perché gli sviluppatori dovrebbero farlo per me - non capisco.

In modo che la vita diventi più facile e che hello world non diventi un casino? Potete anche non riconoscere l'autogenerazione dei costruttori/operatori=.
 
fxsaber:

Questo è quello che faccio. Perché gli sviluppatori dovrebbero farlo per me - non capisco.

Che bello che i creatori di altre lingue siano meno categorici al riguardo
 
TheXpert:
Che bello che i creatori di altre lingue siano meno categorici al riguardo

Niente di categorico. Non vorrei proprio sprecare risorse per risolvere questo tipo di stronzate, che sono già insufficienti per chiudere anche i bug in modo tempestivo. Per non parlare delle nuove funzionalità. Dagli annunci al rilascio della beta è diventato un tempo molto lungo. E ci vorrà ancora più tempo prima che le versioni beta vengano leccate. E non senza il fastidioso aiuto degli utenti del forum.


È per questo che tali argomenti sono percepiti come un modo per andare al fondo delle stronzate. Quando tante cose più serie non vengono fatte.

 
fxsaber:

Ecco perché argomenti come questo sono percepiti come un modo per andare in fondo alle stronzate. Quando tante cose più serie non vengono fatte.

Ognuno ha le sue priorità.

 

Passare un parametro per riferimento implica che un certo valore sarà messo nella variabile corrispondente per usare quel valore più tardi, dopo che la funzione è stata chiamata.

Come si può usare una variabile temporanea se non è il risultato di un'espressione?

 
Slava:

Passare un parametro per riferimento implica che un certo valore sarà messo nella variabile corrispondente per usare quel valore più tardi, dopo che la funzione è stata chiamata.

Come si può usare una variabile temporanea se non è il risultato di un'espressione?

Beh, sono tutte sottigliezze. I più l'hanno fatto, dopo tutto. Per il prvalore, si verifica una materializzazione temporanea. A proposito, non puoi fare neanche questo

int get();
void fn(const int &);

fn(get()); // error
 
Igor Zakharov:

Questo è molto probabilmente il punto in cui si aggiunge un altro personaggio (perché non tutti e 5 dall'inizio del test?):

Chiedi i dati per tutti gli strumenti in OnInit, saranno caricati immediatamente.

 
Slava:

Passare un parametro per riferimento implica che un certo valore sarà messo nella variabile corrispondente per usare quel valore più tardi, dopo che la funzione è stata chiamata.

Come usare una variabile temporanea se non è il risultato di un'espressione?

Cosa ne pensate di aggiungere al linguaggio la possibilità di passare un argomento come valore r? Questo risolverebbe immediatamente tutti i problemi e permetterebbe di creare contenitori universali per qualsiasi tipo. In particolare, il metodo di cui sopra sarebbe sovraccaricato per r-valore:

void push_back(const T &value);
void push_back(const T&&value);

Questo è esattamente il modo in cui è implementato in tutti i contenitori STL.

E il secondo vantaggio: permetterà di specificare i costruttori di spostamento. Ora questo è anche molto carente, in particolare per l'implementazione di puntatori intelligenti unique_ptr e altre classi, progettate per memorizzare in monopolio qualche risorsa unica al loro interno, cioè i costruttori di copia usuali sono inaccettabili per loro.