Domande taggate «language-lawyer»

Per domande sulla complessità di specifiche formali o autorevoli di linguaggi e ambienti di programmazione.


2
Questo codice della sezione 36.3.6 della quarta edizione del "linguaggio di programmazione C ++" ha un comportamento ben definito?
Nella sezione Operazioni simili a STL di Bjarne Stroustrup The C ++ Programming Language 4th edition, il codice seguente viene utilizzato come esempio di concatenamento :36.3.6 void f2() { std::string s = "but I have heard it works even if you don't believe in it" ; s.replace(0, 4, "" ).replace( …

8
Cast efficiente da non firmato a firmato che evita comportamenti definiti dall'implementazione
Voglio definire una funzione che accetta un unsigned intargomento e restituisce un intmodulo congruente UINT_MAX + 1 all'argomento. Un primo tentativo potrebbe essere simile a questo: int unsigned_to_signed(unsigned n) { return static_cast<int>(n); } Ma come sa qualsiasi avvocato linguistico, il casting da non firmato a firmato per valori maggiori di …




3
Quando dovrei usare @classmethod e quando def method (self)?
Durante l'integrazione di un'app Django che non ho usato prima, ho trovato due modi diversi utilizzati per definire le funzioni nelle classi. L'autore sembra usarli entrambi molto intenzionalmente. Il primo è quello che io stesso uso molto: class Dummy(object): def some_function(self,*args,**kwargs): do something here self is the class instance L'altro …





8
I rami con un comportamento indefinito possono essere considerati irraggiungibili e ottimizzati come codice morto?
Considera la seguente dichiarazione: *((char*)NULL) = 0; //undefined behavior Invoca chiaramente un comportamento indefinito. L'esistenza di una tale dichiarazione in un dato programma significa che l'intero programma è indefinito o che il comportamento diventa indefinito solo una volta che il flusso di controllo raggiunge questa affermazione? Il seguente programma sarebbe …

2
Perché in Roslyn sono presenti classi di macchine a stati asincrone (e non strutture)?
Consideriamo questo metodo asincrono molto semplice: static async Task myMethodAsync() { await Task.Delay(500); } Quando lo compilo con VS2013 (compilatore pre Roslyn), la macchina a stati generata è una struttura. private struct <myMethodAsync>d__0 : IAsyncStateMachine { ... void IAsyncStateMachine.MoveNext() { ... } } Quando lo compilo con VS2015 (Roslyn) il …



Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.