Domande taggate «c++»

C ++ è un linguaggio di programmazione generico. È stato originariamente progettato come estensione di C e ha una sintassi simile, ma ora è un linguaggio completamente diverso. Utilizzare questo tag per domande sul codice (da compilare) compilato con un compilatore C ++. Utilizzare un tag specifico della versione per domande relative a una revisione standard specifica [C ++ 11], [C ++ 14], [C ++ 17] o [C ++ 20], ecc.


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 …

2
Posso restituire un piping temporaneo a un'operazione di intervallo?
Supponiamo che io abbia una generate_my_rangeclasse che modella un range(in particolare, lo è regular). Quindi il codice seguente è corretto: auto generate_my_range(int some_param) { auto my_transform_op = [](const auto& x){ return do_sth(x); }; return my_custom_rng_gen(some_param) | ranges::views::transform(my_transform_op); } auto cells = generate_my_range(10) | ranges::to<std::vector>; Viene my_custom_rng_gen(some_param)preso in base al valore …
9 c++  range-v3 

2
Quali spazi dei nomi ci sono e quali sono le regole?
Nota: questa domanda riguarda name spaceno namespace. Lo standard C ++ ha alcuni riferimenti a name space, ma non vedo la definizione di questo. Gli standard affermano che le etichette e le macro si trovano in spazi dei nomi diversi. Tutti gli altri riferimenti a name spacesono nella sezione di …
9 c++  namespaces 



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
Conversione a vuoto ** su diversi compilatori
Ho eseguito il seguente codice attraverso diversi compilatori: int main() { float **a; void **b; b = a; } Da quello che sono stato in grado di raccogliere, nonvoid ** è un puntatore generico, il che significa che qualsiasi conversione da un altro puntatore non dovrebbe compilare o almeno lanciare …
9 c++  c  cuda 


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.