Pytania otagowane jako object-lifetime

2
Czy to zamknięcie okresu istnienia obiektu jest błędem kompilatora C #?
Odpowiadałem na pytanie o możliwość domknięć (uzasadnionych) wydłużania czasu życia obiektów, kiedy natknąłem się na jakiś niezwykle ciekawy gen kodu ze strony kompilatora C # (4.0, jeśli to ma znaczenie). Najkrótsza reprodukcja, jaką mogę znaleźć, jest następująca: Utwórz lambdę, która przechwytuje lokalną podczas wywoływania metody statycznej typu zawierającego. Przypisz wygenerowane …

3
Czy można zwracać domyślną wartość argumentu przez stałe odniesienie?
Czy można zwracać domyślną wartość argumentu przez odwołanie do stałej, jak w poniższych przykładach: https://coliru.stacked-crooked.com/a/ff76e060a007723b #include <string> const std::string& foo(const std::string& s = std::string("")) { return s; } int main() { const std::string& s1 = foo(); std::string s2 = foo(); const std::string& s3 = foo("s"); std::string s4 = foo("s"); }


2
Wariacja na temat typowania znaków: trywialna konstrukcja na miejscu
Wiem, że jest to dość powszechny temat, ale ponieważ typowy UB jest łatwy do znalezienia, do tej pory nie znalazłem tego wariantu. Tak więc próbuję formalnie wprowadzić obiekty Pixel, unikając rzeczywistej kopii danych. Czy to jest ważne? struct Pixel { uint8_t red; uint8_t green; uint8_t blue; uint8_t alpha; }; static_assert(std::is_trivial_v<Pixel>); …
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.