Pytania oznaczone «c++»

16
typ zwracany std :: pair <auto, auto>

Grałem około z autow std::pair. W poniższym kodzie funkcja fpowinna zwracać std::pairtypy zależne od parametru szablonu. Przykład roboczy: PRZYKŁAD 1 template <unsigned S> auto f() { if constexpr (S == 1) return std::pair{1, 2}; // pair of ints else if constexpr (S == 2) return...

16
Niejednoznaczne szablony przeciążenia

Mam następujący kod szablonu #include <vector> #include <array> #include <iostream> template<typename T1> void foo(std::vector<T1> bar) { std::cout << "GENERIC" << std::endl; } template<typename T1> void

16
Optymalizacja funkcji celu R z wolniejszym Rcpp, dlaczego?

Obecnie pracuję nad metodą bayesowską, która wymaga wielu kroków optymalizacji wielomianowego modelu logit dla każdej iteracji. Korzystam z Optim () do przeprowadzania tych optymalizacji, a funkcja celu napisana w R. Profilowanie wykazało, że Optim () jest głównym wąskim gardłem. Po przekopaniu...

15
Jak kompilatory c ++ znajdują zmienną zewnętrzną?

Kompiluję ten program przez g ++ i clang ++. Jest różnica: g ++ drukuje 1, ale clang ++ drukuje 2. Wygląda na to, że g ++: zmienna zewnętrzna jest zdefiniowana w najkrótszym zakresie. clang ++: zmienna zewnętrzna jest zdefiniowana w najkrótszym globalnym zakresie. Czy specyfikacja C ++ ma...

15
Zliczać wiersze pliku źródłowego za pomocą makr?

Czy za pomocą preprocesora C / C ++ można policzyć wiersze w pliku źródłowym do makra lub innej wartości dostępnej w czasie kompilacji? Np. Czy mogę zamienić MAGIC1, MAGIC2i MAGIC3poniżej, i jakoś uzyskać wartość 4 podczas używania MAGIC3? MAGIC1 // can be placed wherever you like before the...

15
Czy dozwolone jest kradzież zasobów z kluczy std :: map?

Czy w C ++ można ukraść zasoby z mapy, której już nie potrzebuję? Mówiąc dokładniej, załóżmy, że mam klucze std::mapz std::stringi chcę z niego zbudować wektor, kradnąc zasoby mapkluczy s za pomocą std::move. Zauważ, że taki dostęp do zapisu do kluczy psuje wewnętrzną strukturę danych...

15
Sposób kompilacji w celu ustalenia najtańszego typu argumentu

Mam szablon, który wygląda tak template <typename T> class Foo { public: Foo(const T& t) : _t(t) {} private: const T _t; }; Czy istnieje sprytny sposób metaprogramowania szablonów, aby uniknąć używania stałej referencji w przypadkach, gdy typ argumentu jest trywialny, jak bool lub...

15
Jak przekazać odwołanie do argumentu nazwa typu szablonu

Czy istnieje sposób na przekazanie odwołania jako argumentu do argumentu o nazwie szablonu? Mam na myśli, że zamiast przekazać int, na przykład przekazać referencję do int. template <typename T> struct Foo { Foo(T arg) : ptr(arg) {} T ptr; }; int main() { int* a = new int(6);...

14
std :: bit_cast z std :: array

W swoim ostatnim przemówieniu „Pisanie czcionek we współczesnym C ++” Timur Doumler powiedział, że std::bit_castnie można go użyć do wrzucenia a floatdo, unsigned char[4]ponieważ tablice w stylu C nie mogą zostać zwrócone z funkcji. Powinniśmy albo użyć, std::memcpyalbo poczekać, aż C ++ 23 (lub...