Domande taggate «language-lawyer»

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






4
Rottura del cambiamento in C ++ 20 o regressione in clang-trunk / gcc-trunk quando si sovraccarica il confronto di uguaglianza con un valore di ritorno non booleano?
Il codice seguente viene compilato correttamente con clang-trunk in modalità c ++ 17 ma si interrompe in modalità c ++ 2a (imminente c ++ 20): // Meta struct describing the result of a comparison struct Meta {}; struct Foo { Meta operator==(const Foo&) {return Meta{};} Meta operator!=(const Foo&) {return Meta{};} …


1
Perché il compilatore sceglie questo metodo generico con un parametro di tipo classe quando viene invocato con un tipo di interfaccia non correlato?
Considera le seguenti due classi e interfacce: public class Class1 {} public class Class2 {} public interface Interface1 {} Perché la seconda chiamata per mandatoryinvocare il metodo sovraccaricato con Class2, se getInterface1e Interface1non ha alcuna relazione Class2? public class Test { public static void main(String[] args) { Class1 class1 = …

2
T deve essere un tipo completo da usare in `std :: declval <T>`?
Considera questo esempio (proveniente da qui ): #include &lt;type_traits&gt; #include &lt;iostream&gt; template &lt;typename U&gt; struct A { }; struct B { template &lt;typename F = int&gt; A&lt;F&gt; f() { return A&lt;F&gt;{}; } using default_return_type = decltype(std::declval&lt;B&gt;().f()); }; int main() { B::default_return_type x{}; std::cout &lt;&lt; std::is_same&lt; B::default_return_type, A&lt;int&gt;&gt;::value; } Si compila …

2
Deduzione dei tipi di argomenti del modello di modello C ++
Ho un codice che trova e stampa le corrispondenze di uno schema mentre passa sopra il contenitore di stringhe. La stampa viene eseguita nella funzione foo che è modellata Il codice #include &lt;iostream&gt; #include &lt;algorithm&gt; #include &lt;iterator&gt; #include &lt;vector&gt; #include &lt;string&gt; #include &lt;tuple&gt; #include &lt;utility&gt; template&lt;typename Iterator, template&lt;typename&gt; class Container&gt; …


1
Un valore char impostato su CHAR_MAX è garantito per essere impostato su CHAR_MIN?
Il mio codice: #include &lt;stdio.h&gt; #include &lt;limits.h&gt; int main() { char c = CHAR_MAX; c += 1; printf("CHAR_MIN=%d CHAR_MAX=%d c=%d (%c)\n", CHAR_MIN, CHAR_MAX, c, c); } Produzione: CHAR_MIN=-128 CHAR_MAX=127 c=-128 () Vediamo che quando incrementiamo una charvariabile impostata su CHAR_MAX, si avvolge intorno a CHAR_MIN. Questo comportamento è garantito? O …

1
InvalidOperationException imprevisto durante il tentativo di modificare la relazione tramite il valore predefinito della proprietà
Nel seguente codice di esempio ottengo la seguente eccezione db.Entry(a).Collection(x =&gt; x.S).IsModified = true: System.InvalidOperationException: 'Impossibile rilevare l'istanza del tipo di entità' B 'perché è già stata tracciata un'altra istanza con il valore chiave' {Id: 0} '. Quando si collegano entità esistenti, assicurarsi che sia allegata solo un'istanza di entità …



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.