Domande taggate «language-lawyer»

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

2
La freccia (->) la precedenza / priorità dell'operatore è più bassa o la priorità di assegnazione / assegnazione combinata è più bassa?
JLS : L' operatore con precedenza più bassa è la freccia di un'espressione lambda (->) , seguita dagli operatori di assegnazione. Seguito in quale direzione (priorità crescente, priorità decrescente)? - "seguito" significa che l'assegnazione ha priorità o priorità inferiore (rispetto all'operatore freccia)? Immagino, in aumento, perché "più basso" (per freccia) …



1
Clang ha ragione a rifiutare il codice in cui la classe nidificata di un modello di classe è definita solo tramite specializzazioni?
Dato il seguente modello di classe: template<typename T> struct Outer { struct Inner; auto f(Inner) -> void; }; definiamo Innerseparatamente per ogni specializzazione di Outer: template<> struct Outer<int>::Inner {}; template<> struct Outer<double>::Inner {}; e quindi definire funa volta la funzione membro per tutte le specializzazioni di Outer: auto Outer<T>::f(Inner) -> …

1
Sizeof (enum) può differire da sizeof (std :: Sottostante_tipo <Enum> :: tipo)?
Recentemente è venuto fuori in una revisione del codice che nel seguente esempio: enum class A : uint8_t { VAL1, VAL2 }; ... std::vector&lt;A&gt; vOfA; // Assume this is sized and full of some stuff. std::memcpy(wire_buffer, vOfA.data(), vOfA.size() * sizeof(A)); Dovremmo usare sizeof(std::underlying_type&lt;A&gt;::type)invece di sizeof(A). È possibile che questi possano …



2
Perché `std :: basic_ios` ha un costruttore pubblico?
std::basic_iosha un costruttore pubblico : explicit basic_ios (std::basic_streambuf&lt;CharT,Traits&gt;* sb); IMO, l'unica ragione per cui una classe ha un costruttore pubblico è usare un'istanza autonoma di quella classe in un programma. Se una classe esiste solo per far discendere altre classi da essa (come sembra essere il caso basic_ios), dovrebbero essere …




1
È un bug in std :: gcd?
Mi sono imbattuto in questo comportamento std::gcdche ho trovato inaspettato: #include &lt;iostream&gt; #include &lt;numeric&gt; int main() { int a = -120; unsigned b = 10; //both a and b are representable in type C using C = std::common_type&lt;decltype(a), decltype(b)&gt;::type; C ca = std::abs(a); C cb = b; std::cout &lt;&lt; a …

2
Perché non possiamo creare oggetti banalmente costruibili usando malloc se il banale costruttore predefinito non esegue alcuna azione?
Ho difficoltà a comprendere il seguente paragrafo citato da cppreference su un banale costruttore predefinito. Ho cercato StackOverflow ma non ho ancora ricevuto una risposta chiara. Quindi per favore aiutatemi. Un banale costruttore predefinito è un costruttore che non esegue alcuna azione. Tutti i tipi di dati compatibili con il …


4
La spiegazione dell'ordinamento rilassato è errata in cppreference?
Nella documentazione di std::memory_ordersu cppreference.com c'è un esempio di ordinamento semplificato : Ordinazione rilassata Le operazioni atomiche contrassegnate memory_order_relaxednon sono operazioni di sincronizzazione; non impongono un ordine tra gli accessi simultanei alla memoria. Garantiscono solo atomicità e coerenza dell'ordine di modifica. Ad esempio, con xey inizialmente zero, // Thread 1: …

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.