Domande taggate «language-lawyer»

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

2
Costruisci eccezioni standard con argomento puntatore null e postcondizioni impossibili
Considera il seguente programma: #include<stdexcept> #include<iostream> int main() { try { throw std::range_error(nullptr); } catch(const std::range_error&) { std::cout << "Caught!\n"; } } GCC e Clang con libstdc ++ chiamano std::terminatee interrompono il programma con il messaggio terminate called after throwing an instance of 'std::logic_error' what(): basic_string::_S_construct null not valid Clang …


1
Creazione di oggetti impliciti non specificata
Poiché P0593 è stata accettata la creazione implicita di oggetti per la manipolazione di oggetti di basso livello , ora gli oggetti possono essere creati implicitamente in C ++ 20. In particolare, la formulazione introdotta dalla proposta consente a determinate operazioni (come std::malloc) di creare e avviare automaticamente la durata …



1
incoerenza clang / gcc nella specializzazione di classe
Mi sono imbattuto in questo problema durante il tentativo di specializzarmi tuple_size/ tuple_elementper una classe personalizzata in C ++ 17 per l'associazione strutturata. Il codice seguente viene compilato in GCC, ma non in clang (entrambe le versioni del trunk, vedere il link seguente). #include <type_traits> template<typename T, typename... Ts> using …




1
Cercare di capire i modelli e la ricerca dei nomi
Sto cercando di comprendere i seguenti frammenti di codice Snippet n. 1 template <typename T> struct A { static constexpr int VB = T::VD; }; struct B : A<B> { }; Né gcc9 né clang9 generano un errore qui. D. Perché viene compilato questo codice? Non stiamo istanziando A<B>quando ereditiamo …

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.