›› Tag : c++   [ Next page ]

un oggetto atomico è pericoloso in qualsiasi contesto in cui un oggetto normale è sicuro?

la mia domanda è semplice: esiste un algoritmo parallelo in cui l'uso di un oggetto di tipo banale T è legale e sicuro (ben definito, garantito per funzionare) e l'uso di un oggetto std::atomic>T porta ad un comportamento non specificato o indefinito? in altre parole, è possibile che un tipo non atomico fornisca garan

  Read more »

c ++ mappa [] = ramificazioni della memoria

diciamo che avete una mappa non ordinata della variabile di istanza che mappa un intero ad un oggetto (come un oggetto di tempo). se si sovrascrive quella mappa e si utilizza la sovrascrittura standard come map _ [5] = time.now () in una funzione di classe, dove è creato quell'oggetto time.now? è nella pila dove la fu

  Read more »

Catch2 mi costringe ad aggiungere un cast a std:: string alle mie eccezioni, può questo creare altri problemi?

sto usando Catch2 per scrivere i miei test di unità. una cosa che voglio fare è assicurarsi che sto prendendo la corretta eccezione. tiro le stesse eccezioni in molte circostanze, quindi solo sapendo che sto cattura un std::logic_error non dimostra che un caso specifico dell'eccezione è stato effettivamente catturato.

  Read more »

impossibile ottenere l'indirizzo dell'elemento nella lista per variante

stavo cercando di loop una lista e ottenere l'indirizzo dell'elemento. ma tutto l'indirizzo dell'elemento è lo stesso quando si utilizza la classe variante. int main() {std::list>std::variant>std::list>int , std::list>std::string list_of_lists;std::list>int int_list = {1, 2, 3};std::list>std::string string_list

  Read more »

piegare le espressioni numero massimo di elementi nel pacchetto di espansione

si prega di prendere in considerazione il seguente programma: #include >iostream #include >algorithm template>typename T, std::size_t N, std::size_t... I T sum_impl(T (I... ) {return (a[I] + ...); }template>typename T, std::size_t N T sum(T (N {}); }int main() {int a[512] = {[0 ... 511] = 1};std::cout >> "Sum =" >>

  Read more »

perché un [j] è uguale a j [a] per ogni array e numero intero j?

sto leggendo attraverso la sezione su puntatori e array da "Il linguaggio di programmazione c + +", e mi sono imbattuto in qualcosa che mi inciampa. For every built-in array a and integer j within the range of a, wehave:a[j] == *(

  Read more »

difficoltà a capire i tipi dipendenti C ++, vs cosa c'è sull'istantiazione corrente

il codice qui sotto è adattato dalla risposta qui: https://stackoverflow.com/a/17579889/352552 il mio scopo nel porre questa domanda è cercare di capire meglio come C + + gestisce la risoluzione del tipo intorno a tipi dipendenti, rispetto a quello che è considerato di essere sul momento attuale, e quindi non ha bisog

  Read more »

come salvare un valore bool in una posizione di memoria indicata da un vuoto *?

ho un void* lhs_value che indica una regione di memoria di dimensioni sufficientemente mallocate. voglio salvare un rvalue di tipo bool in esso. non chiedetemi perché lo volevo. penso che questo sia semplice come casting che puntatore a bool* e de riferimento esso. comunque il compilatore si lamenta. apparentemente sto

  Read more »

perché non possiamo usare 'std:: MultiSet' con lambda personalizzato come valore di un 'std:: Map'?

questa è una domanda di follow-up chiesto comparatore personalizzato per set senza operatore sovraccarico (), std:: less, std:: maggiore e ho cercato di risolvere nel modo seguente. base di base si può fornire una funzione lambda personalizzata (dal c + + 11) alla std::multiset di un membro di una classe come segue: #i

  Read more »

definire (sovraccarico) un operatore C ++ personalizzato

sto imparando C + + e mi sono chiesto se sarebbe possibile avere un operatore come - = o .=. questo tipo di operatore funziona come quelli aritmetici (+= e così via), tuttavia controllerebbe se entrambi i puntatori agli oggetti sono dello stesso tipo. ora so che in C + + si possono sovraccaricare gli operatori, ma a q

  Read more »