Podczas integracji aplikacji Django, której wcześniej nie używałem, znalazłem dwa różne sposoby definiowania funkcji w klasach. Autor wydaje się używać ich obu bardzo celowo. Pierwszy to ten, którego sam często używam: class Dummy(object): def some_function(self,*args,**kwargs): do something here self is the class instance Drugi to taki, którego nie używam, głównie …
Rozważmy tę bardzo prostą metodę asynchroniczną: static async Task myMethodAsync() { await Task.Delay(500); } Kiedy kompiluję to za pomocą VS2013 (kompilator sprzed Roslyn), wygenerowana maszyna stanu jest strukturą. private struct <myMethodAsync>d__0 : IAsyncStateMachine { ... void IAsyncStateMachine.MoveNext() { ... } } Kiedy kompiluję go z VS2015 (Roslyn), wygenerowany kod wygląda …
Preludium: std::tuple<int, int, int> f(); std::tuple<int, int, float, int> g(); C ++ 1z wprowadzi składnię powiązań strukturalnych, która umożliwi pisanie zamiast int a, b, c; std::tie(a, b, c) = f(); coś jak auto [a, b, c] = f(); Jednak można std::tierównież określić std::ignoreignorowanie niektórych komponentów, np .: std::tie(a, b, std::ignore, …
Dzisiaj mam problem. Potrzebuję staticfunkcji członka, constnie jest to konieczne, ale lepsze. Ale nie udało mi się. Czy ktoś może powiedzieć, dlaczego lub jak?
Wiemy, że „zmienna stała” oznacza, że raz przypisana nie można zmienić zmiennej, na przykład: int const i = 1; i = 2; Powyższy program nie skompiluje się; gcc wyświetla komunikat z błędem: assignment of read-only variable 'i' Nie ma problemu, rozumiem to, ale następujący przykład jest poza moim zrozumieniem: #include<iostream> …
(int) + 4*5; Dlaczego jest to możliwe (dodanie typu z wartością) ? (próbowano z g ++ i gcc.) Wiem, że to nie ma sensu (i nie ma wpływu), ale chcę wiedzieć, dlaczego jest to możliwe.
Powiedzmy, że zamierzam skompilować słabo napisany kod źródłowy w C ++, który wywołuje niezdefiniowane zachowanie, a zatem (jak mówią) „wszystko może się zdarzyć”. Z punktu widzenia tego, co specyfikacja języka C ++ uważa za dopuszczalne w kompilatorze zgodnym z wymaganiami, robi „cokolwiek” w tym scenariuszu, w tym awarię kompilatora (lub …
Dwa warunki definiujące funkcję puresą następujące: Brak skutków ubocznych (tj. Dozwolone są tylko zmiany w zakresie lokalnym) Zawsze zwracaj to samo wyjście, mając te same dane wejściowe Jeśli pierwszy warunek jest zawsze prawdziwy, czy zdarza się, że drugi warunek nie jest prawdziwy? Czy naprawdę jest to konieczne tylko w przypadku …
(W nawiązaniu do tego pytania i odpowiedzi .) Przed standardem C ++ 17 w [basic.compound] / 3 znajdowało się następujące zdanie : Jeśli obiekt typu T znajduje się pod adresem A, wskaźnik typu cv T *, którego wartością jest adres A, wskazuje na ten obiekt, niezależnie od tego, w jaki …
W c++03nim jest całkiem jasne, że usuwając wskaźnik NULL nie ma żadnego wpływu. Rzeczywiście, jest wyraźnie stwierdzone, §5.3.5/2że: W obu przypadkach, jeśli wartość operandu delete jest pustym wskaźnikiem, operacja nie ma żadnego efektu. Jednak w obecnym projekcie dla c++0xtego zdania wydaje się być brakuje. W pozostałej części szkicu mogłem znaleźć …
To (zwróć uwagę na operator przecinka ): #include <iostream> int main() { int x; x = 2, 3; std::cout << x << "\n"; return 0; } wyjścia 2 . Jeśli jednak używasz returnz operatorem przecinka, to: #include <iostream> int f() { return 2, 3; } int main() { int x; …
Kod, który wywołuje niezdefiniowane zachowanie (w tym przykładzie dzielenie przez zero) nigdy nie zostanie wykonany, czy program jest nadal niezdefiniowanym zachowaniem? int main(void) { int i; if(0) { i = 1/0; } return 0; } Myślę, że nadal jest to niezdefiniowane zachowanie, ale nie mogę znaleźć w standardzie żadnych dowodów, …
Nie jestem dobrze zorientowany w standardzie C, więc proszę o wyrozumiałość. Chciałbym wiedzieć, czy standard gwarantuje, że memcpy(0,0,0)jest to bezpieczne. Jedynym ograniczeniem, jakie mogłem znaleźć, jest to, że jeśli regiony pamięci nakładają się, to zachowanie jest niezdefiniowane ... Ale czy możemy wziąć pod uwagę, że obszary pamięci nakładają się tutaj?
Jest stary post z prośbą o konstrukcję, dla której sizeofwróci 0. Istnieje kilka odpowiedzi z wysokimi wynikami od użytkowników o wysokiej reputacji, którzy twierdzą, że standardowo żaden typ ani zmienna nie może mieć rozmiaru 0. I zgadzam się z tym w 100%. Jest jednak nowa odpowiedź, która przedstawia to rozwiązanie: …
Rozważmy następujący krótki program w C ++: #include <iostream> class B { public: operator bool() const { return false; } }; class B2 : public B { public: operator int() { return 5; } }; int main() { B2 b; std::cout << std::boolalpha << (bool)b << std::endl; } Jeśli skompiluję …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.