Pytania otagowane jako c++

C ++ jest językiem programowania ogólnego przeznaczenia. Został pierwotnie zaprojektowany jako rozszerzenie do C i ma podobną składnię, ale teraz jest to zupełnie inny język. Ten znacznik służy do pytań o kod (kompilowany) za pomocą kompilatora C ++. Użyj tagu specyficznego dla wersji w przypadku pytań związanych z określoną wersją standardową [C ++ 11], [C ++ 14], [C ++ 17] lub [C ++ 20] itp.



6
Niewinny zakres oparty na pętli nie działa
Nie można skompilować: #include <iostream> int main() { int a{},b{},c{},d{}; for (auto& s : {a, b, c, d}) { s = 1; } std::cout << a << std::endl; return 0; } Wypróbuj na Godbolt Błąd kompilatora to: error: assignment of read-only reference 's' Teraz w moim przypadku lista składa się …

2
Wezwanie do lambda jest dwuznaczne, pomimo wyraźnego podania typu zwrotu
Przeciążona funkcja powinna przyjmować oba funktory, biorąc pod uwagę, że typ lambda jest rozstrzygalny (można ją wyrzucić std::function(proszę poprawić mnie, jeśli się mylę). Pytanie brzmi: Dlaczego poniżej jest błąd kompilacji, mimo że jawnie jest to typ lambda zdefiniowany? ( [&]() -> Type {}) Pamiętaj, że dla mojego obecnego rozwiązania potrzebuję …


1
Czy szablon zmiennej można przekazać jako argument szablonu szablonu?
Poniższy bezsensowny przykład nie kompiluje się, ale czy istnieje jakiś inny sposób przekazania szablonu zmiennej jako argumentu szablonu szablonu? template<typename T> constexpr auto zero = T{0}; template<typename T, template<typename> auto VariableTemplate> constexpr auto add_one() { return VariableTemplate<T> + T{1}; } int main() { return add_one<int, zero>(); } Wypróbuj Eksplorator kompilatorów


1
Skonfiguruj CMake w Windows, aby używać clang z wiersza poleceń, aby uzyskać nowoczesną obsługę OpenMP
Mam mały projekt testowy , który używa OpenMP do równoległości. Moim celem jest skompilowanie go w taki sposób, aby tworzył .dlli .libdla bibliotek (ponieważ mój prawdziwy projekt łączy się z bibliotekami zewnętrznymi dystrybuowanymi przy użyciu tych typów), ze wsparciem dla OpenMP 4.5 lub nowszego i robię to z wiersza poleceń, …

2
słaby reset zresetować wpływa na share_ptr?
Nie jestem przyzwyczajony do używania weak_ptri mam do czynienia z dość mylącą sytuacją. Używam aktualizacji Intel XE 2019 Composer 5 ( pakiet 2019.5.281 ) w połączeniu z Visual Studio 2019 ver. 16.2.5 . Kompiluję w wersji 64-bitowej. Używam standardowego C ++ 17 . Oto kod mojego rozwiązania szczytowego: #include <memory> …

3
Czy mogę używać std :: transform w miejscu z równoległą polityką wykonywania?
Jeśli się nie mylę, mogę wykonać std::transformdziałanie w miejscu , używając tego samego zakresu co iterator wejściowy i wyjściowy. Załóżmy, że mam jakiś std::vectorprzedmiot vec, a potem napiszę std::transform(vec.cbegin(),vec.cend(),vec.begin(),unary_op) przy użyciu odpowiedniej operacji jednoargumentowej unary_op. Korzystając ze standardu C ++ 17, chciałbym wykonać transformację równolegle, wstawiając std::execution::partam jako pierwszy argument. …

3
Jak uniknąć niejawnej konwersji z liczby całkowitej 0 na wskaźnik, jako elementu wektora
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 <vector> #include <iostream> int func(const std::vector<const …

7
Kasowanie () elementu w wektorze nie działa
Mam wektor. Muszę usunąć ostatnie 3 elementy. Opisał tę logikę. Program ulega awarii. Co może być pomyłką? vector<float>::iterator d = X.end(); for (size_t i = 1; i < 3; i++) { if (i == 1) X.erase(d); else X.erase(d - i); }
10 c++  vector 

2
Odliczenie typów argumentów szablonu szablonu C ++
Mam kod, który wyszukuje i drukuje dopasowania wzorca przechodzące przez kontener ciągów. Drukowanie odbywa się w funkcji foo, która jest szablonowana Kod #include <iostream> #include <algorithm> #include <iterator> #include <vector> #include <string> #include <tuple> #include <utility> template<typename Iterator, template<typename> class Container> void foo(Iterator first, Container<std::pair<Iterator, Iterator>> const &findings) { for …

1
Uzyskaj dostęp do członka w strukturze za pomocą zmiennej w C ++
Mam strukturę z dwoma członkami, na przykład: struct DataSet { int x; int y; }; ... i muszę uzyskać do nich dostęp metodą, ale tylko jedną na raz, na przykład: void foo(StructMember dsm) { // ("StructMember" does not exist) DataSet ds; ds.x = 4; ds.y = 6; std::cout << ds.dsm …
10 c++ 

1
Dlaczego w standardzie std :: span brakuje operatorów porównania?
Czy nie zostało std::spanzaprojektowane jako lekkie odniesienie do podregionów std::vector/ std::array/ plain array i podobnych? Czy nie powinien zawierać operatorów porównania w interfejsie API, aby był z nimi spójny? Jakie było uzasadnienie wyłączenia? Uwaga: przez operatorów porównania, to znaczy albo pełny zestaw ( <, <=...) lub statek kosmiczny<=>
10 c++  std  c++20  std-span 

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.