Notes et découvertes faites lors de mes voyages informatiques
Vérifier si deux énoncés parmi N (N >= 2) sont vrais, en Python
sum(map(bool, l)) > 1
Je n'ai pas trouvé de one-liner satisfaisant qui s'arrête dès que la condition est vérifiée :-/
Spécialiser une fonction C(11) pour un type donné
Pour vérifier qu'on n'a pas un niveau de pointeur en trop :
void dump_ptr(void* ptr) { printf("%p", ptr); }
void dump_iptr(int* iptr) { printf("%p: %d", iptr, *iptr); }
#define dump_ptr(p) _Generic((p), int* : dump_iptr(p), default: dump_ptr(p))
Aliasing de fonctions avec des conventions d'appel différentes
L'appel ci-après a un comportement indéfini
extern "C" void foo(int);
void (*ptr)(int) = foo;
ptr(1); // bad
extern "C" void (*ptr2)(int) = foo;
ptr2(1); // good
La commande tar
permet de renommer les fichiers à l'intérieur de l'archive
D'après tar(3)
:
--transform=EXPRESSION, --xform=EXPRESSION
use sed replace EXPRESSION to transform file names
Un joli warning de GCC
https://godbolt.org/z/7BXTbT warning sur une variable non initialisée qui apparait durant l'optimisation (d'où le <anonymous>
) car on copie l'octet minimal requis pour toute classe, et que cet octet n'est pas initialisé :-)
Avoir une fonction avec état sans écrire de classe en Python
Encore un one-liner stupide, mais il m'a bien amusé celui là
l = lambda x, self=[]: (self.append(x), self)[1]
à suivre…
# Vérifier si deux énoncés parmi N (N >= 2) sont vrais, en Python
Posté par Guillaum (site web personnel) . Évalué à 7.
Si tu veux vraiment faire dans le oneliner, et que tu veux un early exit, que penser de :
Cela demande l'import de
itertools
, mais aucun développeur qui se respecte ne travaillerait sans importer celui-ci.[^] # Re: Vérifier si deux énoncés parmi N (N >= 2) sont vrais, en Python
Posté par serge_sans_paille (site web personnel) . Évalué à 3.
Sexy :-) par contre dans le pire des cas tu es en
O(n^2)
non ?[^] # Re: Vérifier si deux énoncés parmi N (N >= 2) sont vrais, en Python
Posté par Guillaum (site web personnel) . Évalué à 2.
Non, pas que je sache.
accumulate
,map
etany
sontO(n)
dans le pire des cas.[^] # Re: Vérifier si deux énoncés parmi N (N >= 2) sont vrais, en Python
Posté par serge_sans_paille (site web personnel) . Évalué à 2.
Exact, merci !
[^] # Re: Vérifier si deux énoncés parmi N (N >= 2) sont vrais, en Python
Posté par wolowizard . Évalué à 2.
Salut,
Sympa comme exercice.
Peut-être, celui-là sans itertools et seulement les builts-in…
Peut probablement faire mieux mais sur le coup je ne vois pas.
# memcpy en C++...
Posté par David Demelier (site web personnel) . Évalué à 3.
Le optional (si tu essaies de réimplémenter
std::optional
) ça se fait avec les placement new. Faire ça avec du memcpy c'est scandaleux.git is great because linus did it, mercurial is better because he didn't
[^] # Re: memcpy en C++...
Posté par serge_sans_paille (site web personnel) . Évalué à 3.
J'étudiais https://github.com/llvm-mirror/llvm/commit/f724c01683a66e2916b0f5ce26b98b59fd5df59d
Si le types est trivialement copiable alors un
std::memcpy
est valide.Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.