Questions marquées «language-lawyer»

14
Est-ce un bogue dans std :: gcd?

Je suis tombé sur ce comportement std::gcdque j'ai trouvé inattendu: #include <iostream> #include <numeric> int main() { int a = -120; unsigned b = 10; //both a and b are representable in type C using C = std::common_type<decltype(a), decltype(b)>::type; C ca = std::abs(a); C cb =...

11
Pourquoi le compilateur choisit-il cette méthode générique avec un paramètre de type de classe lorsqu'il est appelé avec un type d'interface sans rapport?

Considérez les deux classes et l'interface suivantes: public class Class1 {} public class Class2 {} public interface Interface1 {} Pourquoi le deuxième appel à mandatoryappeler la méthode surchargée avec Class2, si getInterface1et Interface1n'a aucune relation avec Class2? public class Test {...

11
Changement de rupture en C ++ 20 ou régression dans clang-trunk / gcc-trunk lors de la surcharge de comparaison d'égalité avec une valeur de retour non booléenne?

Le code suivant compile correctement avec clang-trunk en mode c ++ 17 mais se casse en mode c ++ 2a (c ++ 20 à venir): // Meta struct describing the result of a comparison struct Meta {}; struct Foo { Meta operator==(const Foo&) {return Meta{};} Meta operator!=(const Foo&) {return Meta{};}...