Запитання з тегом «c++»

C ++ - мова програмування загального призначення. Спочатку він був розроблений як розширення до C і має подібний синтаксис, але зараз це зовсім інша мова. Використовуйте цей тег для запитань про код (який потрібно) зібрати за допомогою компілятора C ++. Використовуйте тег, що стосується версії, для питань, пов’язаних із конкретною стандартною редакцією [C ++ 11], [C ++ 14], [C ++ 17] або [C ++ 20] тощо.


1
Що означають ^ () {} і ^ {} в C ++?
Нещодавно я прочитав такий код C ++, як це: setData(total, &user, ^() { struct dst_t to = {ip, port}; sendData(to, data); }); getData(total, ^{ recvData(data, NULL); }); Я ніколи не бачив ^() {}ні ^{}. Що вони означають? Якась анонімна функція?
10 c++ 

5
Чому я не можу отримати індекс варіанту і використовувати його для отримання його вмісту?
Я намагаюся отримати доступ до вмісту варіанту. Я не знаю, що там, але, на щастя, варіант є. Тому я подумав, що просто запитаю варіант, на якому індексі він знаходиться, а потім використаю цей індекс для std::getйого вмісту. Але це не складається: #include <variant> int main() { std::variant<int, float, char> var …
10 c++  c++17  variant 

2
Коли вам потрібен нульовий завершений рядок у сценарії лише для читання?
Я граю з std::string_viewбібліотекою, і роздумував над зміною кодової бази, над якою працюю, щоб std::string_viewякомога більше використовувати . Однак у багатьох темах, які я прочитав на тему, коли і де використовувати std::string_viewзамість цього const std::string &. Я бачив багато відповідей, які говорять: "Коли вам не потрібна нульова завершена рядок". Отож, …

1
Чи можна обмежити кількість потоків для C ++ 17 паралельних `for_each`?
Я використовую std::for_eachз std::execution::parдля виконання складних обчислень на величезному вході представлений в вигляді вектора структур. Для обчислення не потрібні затримки, пов'язані з обладнанням (наприклад, мережевий або дисковий IO), це "просто CPU". Для мене виглядає логічним, що немає сенсу створювати більше потоків ОС, у яких є апаратні; однак Visual C ++ …

2
VCRUNTIME140_1.dll відсутній після побудови рішення з c ++
Я створив невелику текстову пригоду. Я створив рішення з Visual Studio Community 2019 за допомогою налаштувань Release та x64. Я застебнув файл * .exe разом з іншими створеними файлами та надіслав їх на інший ПК, на якому не встановлено VS, і з’явилася помилка, яку ви бачите на зображенні. Я шукав …
10 c++  dll 

2
Невідповідне виведення авто типів між різними компіляторами c ++
Отже, я намагаюся реалізувати крапковий продукт ( https://en.wikipedia.org/wiki/Dot_product ) в якомусь ароматі сучасного C ++ і придумав наступний код: #include <iostream> template<class... Args> auto dot(Args... args) { auto a = [args...](Args...) { return [=](auto... brgs) { static_assert(sizeof...(args) == sizeof...(brgs)); auto v1 = {args...}, i1 = v1.begin(); auto v2 = {brgs...}, …

1
Чи дозволено виразів, щоб "захоплювати" змінні змістовної області?
У наступному прикладі аргументи функції використовуються для тестування з необхідним вираженням, чи добре сформований вираз з їх допомогою. Вираз, що вимагає, не має аргументів; він безпосередньо використовує змінні в області функцій: #include <cstddef> #include <vector> template<typename T> void Resize(T &v, std::size_t const n) { if constexpr (requires { v.resize(n); }) …

2
Чи проігнорував мій компілятор мого невикористаного статичного учасника класу thread_local?
Я хочу зробити деяку реєстрацію потоків у своєму класі, тому я вирішую додати чек на цю thread_localфункцію: #include <iostream> #include <thread> class Foo { public: Foo() { std::cout << "Foo()" << std::endl; } ~Foo() { std::cout << "~Foo()" << std::endl; } }; class Bar { public: Bar() { std::cout << …

2
Як схилити копію при ланцюжку?
Я створюю клас ланцюгового типу, наприклад маленький приклад нижче. Здається, що при ланцюжку функцій-членів викликається конструктор копій. Чи є спосіб позбутися виклику конструктора копій? У моєму прикладі іграшок нижче, очевидно, що я маю справу лише з тимчасовими, і тому "повинен" (можливо, не за стандартами, але логічно) бути елісією. Другим кращим …
10 c++  c++14  c++17 

3
Чому в наступному випадку не потрібно використовувати назви типу для залежних типів?
Я читав про видалення посилання на тип тут . Він наводить такий приклад: #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() { std::cout << std::boolalpha; print_is_same<int, int>(); print_is_same<int, int &>(); print_is_same<int, int &&>(); print_is_same<int, …

5
Динамічне посилання - Linux Vs. Windows
Під Windows, коли я компілюю код C / C ++ у проекті DLL в MSVC, я отримую 2 файли: MyDll.dll MyDll.lib де, наскільки я розумію, MyDll.libміститься якась таблиця вказівників, що вказує на розташування функцій у dll. При використанні цього dll, скажімо, у файлі exe, MyDll.libвін вбудовується у файл exe під …

2
Чи існує спосіб створити потоковий рядок з string_view без копіювання даних?
Я думаю, що це досить пряме питання. Я спеціально хотів би використовувати std::get_time, але для цього потрібен якийсь потік. Я передаю дані у "А" string_viewі хотів би уникати їх копіювання просто для розбору дати.

2
Як перетворити нумерові масиви у вектор <int> & (посилання) за допомогою SWIG
Моя мета: Створіть 3 numpy масиви в python (2 з них буде ініціалізовано з певними значеннями), а потім надішліть усі три через swig у функцію c ++ у вигляді векторних посилань (це для того, щоб уникнути копіювання даних та втрати ефективності). Отримавши функцію c ++, додайте 2 масиви і покладіть …
10 python  c++  numpy  vector  swig 


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.