GIC'23 Best programming talk!McPixel 3 was written from scratch in C and has so far been ported to Windows, Mac, Linux, iOS, Android, Nintendo Switch, Xbox, ...
W tym tygodniu komitet C++ zatwierdził mechanizm reflection w następnej wersji języka.
Teraz można użyć jeszcze bardziej skomplikowanej składni, żeby zaimplementować rozwiązanie Sosa. :-D
structS { unsigned i:2, j:6; };
constevalautomember_number(int n){
if (n == 0) return ^^S::i;
elseif (n == 1) return ^^S::j;
}
intmain(){
S s{0, 0};
s.[:member_number(1):] = 42; // Same as: s.j = 42;
s.[:member_number(5):] = 0; // Error (member_number(5) is not a constant).
}
Zabawne jest też to, że najnowsze propozycje rozszerzeń w C++ dosłownie odtwarzają w przykładach popularne biblioteki rustowe i pythonowe. Widać, kto obecnie wyznacza trendy w tej dziedzinie, a kto próbuje gonić resztę świata.
W tym tygodniu komitet C++ zatwierdził mechanizm reflection w następnej wersji języka.
Teraz można użyć jeszcze bardziej skomplikowanej składni, żeby zaimplementować rozwiązanie Sosa. :-D
struct S { unsigned i:2, j:6; }; consteval auto member_number(int n) { if (n == 0) return ^^S::i; else if (n == 1) return ^^S::j; } int main() { S s{0, 0}; s.[:member_number(1):] = 42; // Same as: s.j = 42; s.[:member_number(5):] = 0; // Error (member_number(5) is not a constant). }
Zabawne jest też to, że najnowsze propozycje rozszerzeń w C++ dosłownie odtwarzają w przykładach popularne biblioteki rustowe i pythonowe. Widać, kto obecnie wyznacza trendy w tej dziedzinie, a kto próbuje gonić resztę świata.