Dostać void * z funkcji w CI, zrobiłbym coś takiego (bardzo prosty przykład): void *get_ptr(size_t size) { void *ptr = malloc(size); return ptr; } Jak osiągnąć ten sam rezultat podczas używania
Dostać void * z funkcji w CI, zrobiłbym coś takiego (bardzo prosty przykład): void *get_ptr(size_t size) { void *ptr = malloc(size); return ptr; } Jak osiągnąć ten sam rezultat podczas używania
Następujące pytanie związane jest jednak odpowiedzi są stare, i komentarz od użytkownika Marc Glisse sugeruje nowych podejść od C ++ 17 do tego problemu, które nie mogą być należycie rozpatrzone. Próbuję uzyskać wyrównaną pamięć działającą poprawnie dla SIMD, wciąż mając dostęp do wszystkich...
Współpracownik chciał to napisać: std::string_view strip_whitespace(std::string_view sv); std::string line = "hello "; line = strip_whitespace(line); Powiedziałem, że powrót string_viewsprawił, że poczułem niepokój a priori , a ponadto aliasing tutaj wyglądał dla mnie jak UB. Mogę z całą...
Natknąłem się na następujące stwierdzenia: resize(n)- Zmienia rozmiar kontenera, aby zawierał elementy „n”. shrink_to_fit()- Zmniejsza pojemność pojemnika w celu dopasowania do jego rozmiaru i niszczy wszystkie elementy poza pojemnością. Czy istnieje jakaś znacząca różnica między tymi funkcjami?...
Poniższy kod kompiluje się dobrze z clang-trunk w trybie c ++ 17, ale psuje się w trybie c ++ 2a (nadchodzące c ++ 20): // Meta struct describing the result of a comparison struct Meta {}; struct Foo { Meta operator==(const Foo&) {return Meta{};} Meta operator!=(const Foo&) {return...
To pytanie dotyczy dodania P0593 do najnowszej wersji C ++ 20 . Oto mój przykład: #include <cstdlib> #include <cstdio> void foo(void *p) { if ( std::getchar() == 'i' ) { *(int *)p = 2; std::printf("%d\n", *(int *)p); } else { *(float *)p = 2; std::printf("%f\n", *(float...
Jest sytuacja, w której chcę zebrać wszystkie nazwy węzłów ścieżki do klucza w JSON. Zastanów się nad warunkiem, że indeks tablicy „0”, „1” są również dozwolone, ale łatwo jest zapomnieć o cudzysłowach, co doprowadziłoby do awarii, gdy dereferencja. Więc chcę to odrzucić. Przykład: #include...
Ten dokument w sekcji 2.6 „Obliczone obejmuje” zawiera następujący akapit: Jeśli linia zostanie rozwinięta do strumienia tokena rozpoczynającego się od <tokena i zawierającego token>, wówczas tokeny między <a pierwszym> są łączone w celu utworzenia nazwy pliku, która ma zostać...
Mam *.cppplik, który kompiluję za pomocą C ++ (nie kompilatora w języku C). Funkcja zawierająca opiera się na rzutowaniu (patrz ostatni wiersz), który wydaje się być zdefiniowany w C (popraw, jeśli się mylę!), Ale nie w C ++ dla tego specjalnego typu. [...] C++ code [...] struct sockaddr_in sa =...
Rozważ następujący kod: template <typename T> using VoidT = void; class A { public: using TEST = int; }; class C { public: using DIFFERENT = int; }; template <typename T, typename Enable = void> class B { public: B() = delete; }; template <typename T> class B<T,...
int main() { int y; int x{ y = 5 }; //x is 5 } Jak to możliwe, skoro y = 5 nie jest wyrażeniem obliczalnym? Ponadto, dlaczego kompilator lub IDE nie narzeka na to, że main () nie zwraca
Mój cel: Utwórz 3 tablice numpy w Pythonie (2 z nich zostaną zainicjowane konkretnymi wartościami), a następnie wyślij wszystkie trzy z nich poprzez swig do funkcji c ++ jako odwołania do wektorów (ma to na celu uniknięcie kopiowania danych i utraty wydajności). W funkcji c ++ dodaj 2 tablice i...
Myślę, że to dość proste pytanie. Chciałbym konkretnie użyć std::get_time, ale wymaga to pewnego rodzaju strumienia do użycia. Przekazuję dane w string_viewi chcę uniknąć kopiowania tylko w celu przeanalizowania
Pod Windows, kiedy kompiluję kod C / C ++ w projekcie DLL w MSVC, otrzymuję 2 pliki: MyDll.dll MyDll.lib gdzie, o ile rozumiem, MyDll.libzawiera pewnego rodzaju tabelę wskaźników wskazującą lokalizacje funkcji w bibliotece dll. Podczas korzystania z tej biblioteki DLL, powiedzmy w pliku exe,...
Czytałem o usuwaniu odwołania do typu tutaj . Daje następujący przykład: #include <iostream> // std::cout #include <type_traits> // std::is_same template<class T1, class T2> void print_is_same() { std::cout << std::is_same<T1, T2>() << '\n'; } int main() {...
Tworzę klasę typu łańcuchowego, na przykład mały przykład poniżej. Wydaje się, że przy łączeniu funkcji składowych wywoływany jest konstruktor kopiowania. Czy istnieje sposób na pozbycie się wywołania konstruktora kopiowania? W moim poniższym przykładzie z zabawkami oczywiste jest, że mam do...
Chcę dokonać rejestracji wątku w mojej klasie, więc postanawiam dodać opcję dla tej thread_localfunkcji: #include <iostream> #include <thread> class Foo { public: Foo() { std::cout << "Foo()" << std::endl; } ~Foo() { std::cout << "~Foo()" << std::endl;...
W poniższym przykładzie argumenty funkcji są używane do testowania wymaganym wyrażeniem, czy wyrażenie, które ich używa, jest poprawnie utworzone. Wymagane wyrażenie nie przyjmuje żadnych argumentów; wykorzystuje bezpośrednio zmienne w zakresie funkcji: #include <cstddef> #include...
Stworzyłem małą przygodę tekstową. Zbudowałem rozwiązanie z Visual Studio Community 2019 przy użyciu ustawień Release i x64. Spakowałem plik * .exe wraz z innymi wygenerowanymi plikami i wysłałem je do innego komputera, na którym nie ma zainstalowanego VS i pojawił się błąd widoczny na obrazku....
Próbuję więc wdrożyć produkt kropkowy ( https://en.wikipedia.org/wiki/Dot_product ) w jakimś smaku współczesnego C ++ i wymyśliłem następujący kod: #include <iostream> template<class... Args> auto dot(Args... args) { auto a = [args...](Args...) { return [=](auto... brgs) {...