Jak w C ++ 17 zadeklarować i zainicjować wektor par (lub krotek) za pomocą opcjonalnego elementu? std::vector<std::pair<int, optional<bool> > > vec1 = { {1, true}, {2, false}, {3, nullptr}}; Mam parę, w której drugi element może być zerowy /
Jak w C ++ 17 zadeklarować i zainicjować wektor par (lub krotek) za pomocą opcjonalnego elementu? std::vector<std::pair<int, optional<bool> > > vec1 = { {1, true}, {2, false}, {3, nullptr}}; Mam parę, w której drugi element może być zerowy /
Mam następujący kod: namespace A { struct Foo { int a; }; } struct Foo { int b; }; struct Bar : public A::Foo { Bar(Foo foo) { c = foo.b; } int c; }; Kompilatory C ++ narzekają na „c = foo.b”, ponieważ A :: Foo nie ma członka o nazwie b. Jeśli zmienię typ parametru Bar za pomocą :: Foo...
W K&R (The C Programming Language 2nd Edition) rozdział 5 czytam: Po pierwsze, wskaźniki mogą być porównywane w pewnych okolicznościach. Jeśli pi qpunkt do członków tej samej tablicy, stosunki wówczas jak ==, !=, <, >=, itd pracę prawidłowo. Co wydaje się sugerować, że można...
Próbowałem zainstalować Docker na Kubuntu 19.10. Wykonałem te kroki, aby zainstalować: https://docs.docker.com/install/linux/docker-ce/ubuntu/ Podczas kroku 2, po dodaniu repozytorium i klucza dostałem tę wiadomość Package containerd.io is not available, but is referred to by another...
Zrobiłem pod Xcode 11 i iOS 13, utworzyłem UIScrollview i ustawiłem tam swoją zawartość. Podczas instalowania starszego głównego projektu ten komunikat ostrzegawczy pokazuje: Przewodniki po treści i układzie ramek przed iOS 11.0 Widzę wspomniane przewodniki po układzie w Konstruktorze...
Temat był wcześniej omawiany , ale to nie jest duplikat. Kiedy ktoś pyta o różnicę między decltype(a)i decltype((a)), jak zwykle odpowiedź brzmi - ajest to zmienna, (a)jest wyrazem. Uważam tę odpowiedź za niezadowalającą. Po pierwsze, ajest to także wyrażenie. Opcje wyrażenia podstawowego...
Chcę napisać kod zliczający i sumujący każdą dodatnią i ujemną serię liczb. Liczby są albo dodatnie, albo ujemne (bez zera). Napisałem kody z forpętlami. Czy jest jakaś kreatywna alternatywa? Dane R set.seed(100) x <- round(rnorm(20, sd = 0.02), 3) pyton x = [-0.01, 0.003, -0.002, 0.018,...
Znalazłem bardzo dziwne zachowanie (na clang i GCC) w następującej sytuacji. Mam wektor, nodesz jednym elementem, instancją klasy Node. Następnie wywołuję funkcję, nodes[0]która dodaje nową wartość Nodedo wektora. Po dodaniu nowego węzła pola obiektu wywołującego są resetowane! Wydają się jednak...
W tej odpowiedzi , Zwol wykonane tego twierdzenia: Prawidłowym sposobem konwersji dwóch bajtów danych ze źródła zewnętrznego na 16-bitową liczbę całkowitą ze znakiem jest użycie funkcji pomocniczych takich jak to: #include <stdint.h> int16_t be16_to_cpu_signed(const uint8_t data[static...
Załóżmy, że masz następujący kod: #include <iostream> #include <string> #include <vector> int main() { std::vector<std::string> First{"example", "second" , "C++" , "Hello world" }; std::vector<std::string> Second{"Hello"}; First.swap(Second); for(auto a :...
Mam generator, generatora także wygodną metodę - generate_all. def generator(some_list): for i in some_list: yield do_something(i) def generate_all(): some_list = get_the_list() return generator(some_list) # <-- Is this supposed to be return or yield? Czy generate_all returnlub yield?...
Czy można skopiować strukturę, której niektórzy członkowie nie są zainicjowani? Podejrzewam, że jest to zachowanie nieokreślone, ale jeśli tak, sprawia, że pozostawienie niezainicjowanych członków w strukturze (nawet jeśli ci członkowie nigdy nie są bezpośrednio wykorzystywani) jest dość...
Oto mój kod: #include <string.h> #include <stdio.h> typedef char BUF[8]; typedef struct { BUF b[23]; } S; S s; int main() { int n; memcpy(&s, "1234567812345678", 17); n = strlen((char *)&s.b) / sizeof(BUF); printf("%d\n", n); n = strlen((char *)&s) /...
Ten kod nie kompiluje się w Clang (6,7,8,9, trunk), ale dobrze się kompiluje w GCC (7.1, 8.1, 9.1): template<class T> struct TypeHolder { using type = T; }; template<int i> class Outer { private: template<class T> static constexpr auto compute_type() { if constexpr (i == 42)...
TL; DR Zanim spróbujesz przeczytać cały ten post, wiedz, że: znalazłem rozwiązanie dla przedstawionego problemu , ale wciąż chętnie wiem, czy analiza jest poprawna; Spakowałem rozwiązanie do fameta::counterklasy, która rozwiązuje kilka pozostałych dziwactw. Możesz go znaleźć na github ; widać to...
Odtąd używamy N4140 (C ++ 14 Standard). Zgodnie z § 17.6.3.4 Wymagania mieszania , Zwrócona wartość zależy tylko od argumentu k dotyczącego czasu trwania programu . [Uwaga: Tak więc wszystkie oceny wyrażenia h(k)o tej samej wartości kdają ten sam wynik dla danego wykonania programu . -...
Przeglądając gramatykę BNF języka C, pomyślałem, że to dziwne, że reguła produkcyjna deklaracji wygląda tak (zgodnie z https://cs.wmich.edu/~gupta/teaching/cs4850/sumII06/The%20syntax%20of% 20C% 20in% 20 Backus-Naur% 20form.htm ): <declaration> ::= {<declaration-specifier>}+...
Przykłady, które znalazłem, że chwytanie thisw lambda używa tego wprost; na przykład: capturecomplete = [this](){this->calstage1done();}; Ale wydaje się, że możliwe jest również użycie go w sposób dorozumiany; na przykład: capturecomplete = [this](){calstage1done();}; Przetestowałem to w g...
Rozważ następujący kod . struct any { template <typename T> operator T &&() const; template <typename T> operator T &() const; }; int main() { int a = any{}; } Tutaj drugi operator konwersji jest wybierany przez rozdzielczość przeciążenia. Dlaczego? O ile rozumiem,...
Słyszałem o nowej funkcji bezpiecznego języka Dart null, która jest obecnie „eksperymentem bez możliwości zerowania ”. Ma domyślnie wprowadzać wartość inną niż zerowa . Specyfikację funkcji można znaleźć tutaj, a problem języka GitHub tutaj . Jak to działa i gdzie mogę go...