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

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

12
Розміщення зірочки в деклараціях покажчиків
Нещодавно я вирішив, що мені просто потрібно нарешті вивчити C / C ++, і є одна річ, якої я насправді не розумію щодо покажчиків або, точніше, їх визначення. Як щодо цих прикладів: int* test; int *test; int * test; int* test,test2; int *test,test2; int * test,test2; Зараз, наскільки я розумію, …
92 c++  c  pointers  declaration 

5
libstdc ++. so.6: не вдається відкрити спільний об'єктний файл: такого файлу або каталогу немає
Я хочу запустити команду Cilkscreen за допомогою програми cilk ++, але я отримав цю помилку /usr/local/cilk/bin/../lib32/pinbin: помилка під час завантаження спільних бібліотек: libstdc ++. so.6: не вдається відкрити спільний файл об’єкта: такого файлу або каталогу немає Можеш мені допомогти будь ласка
92 c++  cilk  cilk-plus 


3
Коли інформація про тип рухається назад у C ++?
Я щойно спостерігав, як Стефан Т. Лававей виступав на темі CppCon 2018"Відрахування аргументів шаблону класу", де в якийсь момент він випадково каже: У типі C ++ інформація майже ніколи не тече назад ... Мені довелося сказати "майже", тому що є один або два випадки, можливо, більше, але дуже мало . …

2
Ламбда-реалізація C ++ 11 та модель пам'яті
Я хотів би отримати деяку інформацію про те, як правильно думати про закриття C ++ 11, а також std::functionпро те, як вони реалізовані та як обробляється пам’ять. Незважаючи на те, що я не вірю в передчасну оптимізацію, я маю звичку ретельно розглядати вплив мого вибору на продуктивність під час написання …
92 c++  memory  lambda  c++11 

21
Перетворити вектор <int> у рядок
У мене є vector&lt;int&gt;контейнер, який містить цілі числа (наприклад, {1,2,3,4}), і я хотів би перетворити його на рядок форми "1,2,3,4" Який найчистіший спосіб це зробити в С ++? У Python я б це зробив так: &gt;&gt;&gt; array = [1,2,3,4] &gt;&gt;&gt; ",".join(map(str,array)) '1,2,3,4'
92 c++  vector  tostring 

2
як додати об'єкт списку <T> до іншого
в C ++ у мене є два list&lt;T&gt;об'єкти, Aі Bя хочу додати всіх членів Bдо кінця A. Я шукав кілька різних джерел і не знайшов простого рішення (ei A.append(B);), і це мене трохи дивує. Який найкращий спосіб це зробити? Як це трапляється, мені після цього байдуже до B (воно видаляється …
92 c++  list  stl 

4
Чому (лише) деякі компілятори використовують одну і ту ж адресу для однакових рядкових літералів?
https://godbolt.org/z/cyBiWY Я бачу два 'some'літерали в коді асемблера, згенерованому MSVC, але лише один із clang та gcc. Це призводить до абсолютно різних результатів виконання коду. static const char *A = "some"; static const char *B = "some"; void f() { if (A == B) { throw "Hello, string merging!"; } …

7
Як знайти, де було викинуто виняток у C ++?
У мене є програма, яка кидає десь невпійманий виняток. Все, що я отримую, - це повідомлення про кидок винятку і відсутність інформації про те, куди його було кинуто. Виглядає нелогічно, щоб програма, скомпільована, що містить символи налагодження, не повідомляла мене про те, де в моєму коді було створено виняток. Чи …

3
Що викликає сигнал "SIGILL"?
Я переношу деякий код C ++ на Android за допомогою NDK та GCC. Код в основному працює. В один момент, під час налагодження в Eclipse, дзвінок Dabbler::Android::Factory* pFactory = new Dabbler::Android::Factory; спричиняє цю помилку: Thread [1] (Suspended: Signal 'SIGILL' received. Description: Illegal instruction.) 1 &lt;symbol is not available&gt; 0x812feb44 Що …

2
Функція з тим самим іменем, але різним підписом у похідному класі
У мене є функція з тим самим іменем, але з різним підписом у базовому та похідних класах. Коли я намагаюся використовувати функцію базового класу в іншому класі, який успадковується від похідного, я отримую повідомлення про помилку. Дивіться наступний код: class A { public: void foo(string s){}; }; class B : …

9
stdcall та cdecl
Існують (серед інших) два типи конвенцій викликів - stdcall та cdecl . У мене є кілька запитань щодо них: Коли викликається функція cdecl, як абонент знає, чи повинен він звільнити стек? Чи знає виклик на сайті виклику, чи викликана функція є функцією cdecl або stdcall? Як це працює ? Звідки …
92 c++  stdcall  cdecl 

3
Коли приватний конструктор не є приватним конструктором?
Скажімо, у мене є тип, і я хочу зробити його конструктор за замовчуванням приватним. Я пишу наступне: class C { C() = default; }; int main() { C c; // error: C::C() is private within this context (g++) // error: calling a private constructor of class 'C' (clang++) // error …

8
Альтернатива векторному <bool>
Як (сподіваємось) ми всі знаємо, vector&lt;bool&gt;він повністю зламаний і не може розглядатися як масив C. Який найкращий спосіб отримати цю функціональність? Поки що ідеями, про які я думав, є: Використовуйте vector&lt;char&gt;замість цього, або Використовуйте клас обгортки та маєте vector&lt;bool_wrapper&gt; Як ви, хлопці, вирішуєте цю проблему? Мені потрібна c_array()функціональність. Як побічне …
92 c++  stl  vector  boolean 

6
Спеціалізація шаблону одного методу із шаблонованого класу
Завжди враховуючи, що наступний заголовок, що містить мій шаблонний клас, міститься щонайменше у двох .CPPфайлах, цей код правильно компілюється: template &lt;class T&gt; class TClass { public: void doSomething(std::vector&lt;T&gt; * v); }; template &lt;class T&gt; void TClass&lt;T&gt;::doSomething(std::vector&lt;T&gt; * v) { // Do something with a vector of a generic T } …

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