C
CrimsonKing
Guest
Jemand der unter Portabilität sich vorstellt seinen Code mit IFDEFS zuzukleistern, sollte (...) was in der QA machen
Genau. Unbedingt. Viele Programme haben viel zu wenig IFDEFs!
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
Jemand der unter Portabilität sich vorstellt seinen Code mit IFDEFS zuzukleistern, sollte (...) was in der QA machen
Ich verstehe nicht was ihr gegen goto habt. Es ist meisterhaft in FreeBSD-Sourcen verwendet worden. Da sieht man auch wieso und warum es viel besser als alle Alternativen sind. Wie auch andere C-Anweisungen, sollte man stets wissen wann es Vorteile hat, sie zu verwenden. goto zugegeben sehr selten, aber es ist da und es will genutzt werden.
Lasst Euch nicht von irgendwelchen Leuten, die selbst nicht programmieren (insbesondere Profs) in die Irre leiten.
if (inputs.empty()) {
[Aktion 0]
return true;
}
while (auto val : inputs) {
if (!val) {
[Aktion 1];
return false;
}
}
[Aktion 0]
return true;
if (inputs.empty()) {
goto exit_success;
}
while (auto val : inputs) {
if (!val) {
[Aktion 1];
return false;
}
}
exit_success:
[Aktion 0]
return true;
void Node::collapse(size_t scale) {
Node * parents[sizeof(voxel) * 8];
parents[scale] = nullptr;
Node * node = this;
while (node && node->touched) {
/*
* Delve deeper, this relies on some conditions:
* - All touched nodes have children
* - An untouched node never has touched descendants
*/
while (Node::getTouchedChild(scale, parents, node));
/*
* Collapse the affected branches.
*/
/* Stop collapsing if non-leaf nodes are encountered. */
for (size_t i = 0; i < 8; ++i) {
if (node->children[i].hasChildren()) {
goto ascent;
}
}
/* Do not collapse if nodes have different solid states. */
node->solid = node->children[0].solid;
for (size_t i = 1; i < 8; ++i) {
if (node->children[i].solid != node->solid) {
goto ascent;
}
}
/* Collapse. */
delete[] node->children;
node->children = nullptr;
ascent:
/* Leave this node behind and return to the parent. */
node->touched = 0;
node = parents[scale++];
}
}
Gerade logind ist ja scheinbar für eine ganze Reihe von Projekten und für typische Desktopsysteme interessant.Nur bei logind dürfte es schwierig werden, die API ist unnötig komplex und packt für meinen Geschmack zu viel Funktionalität mit zu wenig Abstraktion in ein einziges Interface. Vermutlich wird man hier in der Praxis mit einer überschaubaren Untermenge an tatsächlich implementierter Funktionalität auskommen, das wird aber trotzdem eine undankbare Aufgabe.
Die anderen 3 APIs sind gut gemacht und sollten einen Entwickler, der etwas Ahnung in der Domäne hat, vor keine größere Herausforderung stellen.
Wenn ich eine systemd API anbieten muss, um zu bekommen, das ich will, ist es doch sinnvoll, diese Api wie auch immer anzubieten? (oder wie auch immer eine Alternative zu bieten)
Wenn der Kern aus Systemd Funktionalität besteht und dieses Stück Software nicht portabel ist, kann auch ein Produkt welches dieses nutzt, auch nicht sein, qed.
Zumal Gnome gerade die Alternativen zusammenstreicht. Soweit ich das überblicke ist der OpenBSD Ansatz, schau mal da läuft was, was Systemd heißt, drunter machts was komplett anderes. Das komplette OS Verhalten müsste im Daemon implementiert werden, damit Gnome sich dort genauso verhält wie unter Linux.
Linus Torvalds stört sich nicht an der Richtungsänderung, die mit Systemd einhergeht. Vielmehr glaubt er, das "Ein-Werkzeug-eine-Aufgabe"-Prinzip spiegele in vielen Bereichen nicht mehr die Realität wieder.
Zwar würde er von Systemd seine Logfiles lieber im Textformat und nicht als Binärdateien serviert bekommen, das aber seien Details.
Er ist ja auch kein AdminDen Herrn würd' ich nicht an meinen Server lassen.
Wir verwenden essentielle Cookies, damit diese Website funktioniert, und optionale Cookies, um den Komfort bei der Nutzung zu verbessern.
Siehe weitere Informationen und konfiguriere deine Einstellungen