
QString source = ui->ComboSource->currentText(); QGridLayout* glayout = static_cast<QGridLayout*>(ui->BoxDestinations->layout()); int column = 0; int row = 0; for (int i = 0; i < this->destcount; i++, column++) { QBoxLayout* blayout = static_cast<QBoxLayout*>(glayout->itemAtPosition(row, column)); QString dest = static_cast<QLabel*>(blayout->itemAt(1)->widget())->text(); if (source == dest) { QCheckBox* checkbox = static_cast<QCheckBox*>(blayout->itemAt(0)->widget());Ce qui est lamentable, quand on écrit des horreurs, c'est que ça marche quand même. Il serait normal que le programme s'auto-kill, ou que ça brique le PC.
Folco (./4322) :C'est un peu le principe du C et du C++. Ces langage ne sont pas du tout prévu pour empêcher les erreurs.
Ce qui est lamentable, quand on écrit des horreurs, c'est que ça marche quand même. Il serait normal que le programme s'auto-kill, ou que ça brique le PC.
Bon, ne vous inquiétez pas, je vais revoir un peu mes structures de données, sinon je n'en dormirai pas de la nuit.
1 JavaScriptFlan va être content
2 Python
2 Java
4 PHP
5 C#
6 C++
7 Ruby
7 CSS
9 TypeScript
9 C
11 Swift
12 Objective-C
13 Scala
13 R
15 Go
15 Shell
17 PowerShell
18 Perl
19 Kotlin
20 Haskell
Zerosquare (./4324) :Brunni encore plus
Flan va être content
Folco (./4329) :C'est là où le Rust est aussi intéressant (et emmerdant), car il ne te laisse pas faire ce que tu veux avec les thread.
Les threads, ça a l'air d'être la solution magique à plus d'un problème.
Sur le papier.
Parce qu'en fait, ça vient avec son lot d'emmerdements que j'avais pas forcément prévu au design et en lisant de la doc
Calling this function multiple times on the same mutex from the same thread is allowed if this mutex is a recursive mutex. If this mutex is a non-recursive mutex, this function will dead-lock when the mutex is locked recursively.Donc un deadlock, c'est quand un même thread essaye d'obtenir un mutex qu'il a lui-même locké. Evidemment c'est pas malin de s'auto-attendre.
Folco (./4322) :
Question bonus, dans la déclaration d'un constructeur je veux faire ça : truc::truc() : a(new A), b(new B(a))C'est garanti que a soit alloué avant b ? J'ai besoin de a pour construire b...