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

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

4
Як скопіювати вміст каталогу в каталог побудови після створення за допомогою CMake?
У мене є кілька конфігураційних файлів (xml, ini, ...) у configкаталозі поруч із вихідними файлами. Як я можу скопіювати всі файли з каталогу config в каталог збірки (поруч із виконуваним файлом) кожного разу, коли я створюю проект?
81 c++  cmake 

9
Ініціалізувати статичні змінні в класі C ++?
Я помітив, що деякі мої функції в класі насправді не мають доступу до об'єкта, тому я зробив їх static. Тоді компілятор сказав мені, що всі змінні, до яких вони мають доступ, також повинні бути статичними - ну, цілком зрозумілими поки що. У мене є купа рядкових змінних, таких як string …



3
Що означає P :: ************ у файлі Boost assert.hpp?
У boost / mpl / assert.hpp я побачив щось подібне: template<class Pred> struct eval_assert { typedef typename extract_assert_pred<Pred>::type P; typedef typename P::type p_type; typedef typename ::boost::mpl::if_c<p_type::value, AUX778076_ASSERT_ARG(assert<false>), failed ************ P::************ >::type type; }; Якщо перше ************можна розглядати як вказівники на структуру, що не вдалося, P::************для мене це насправді не має …
80 c++  pointers  boost 

4
Ініціалізація масиву С ++
це така форма ініціалізації масиву для всіх 0 char myarray[ARRAY_SIZE] = {0} підтримується усіма компіляторами? , якщо так, чи є синтаксис подібний до інших типів? наприклад bool myBoolArray[ARRAY_SIZE] = {false}
80 c++  syntax 

3
Чому це викликає конструктор за замовчуванням?
struct X { X() { std::cout << "X()\n"; } X(int) { std::cout << "X(int)\n"; } }; const int answer = 42; int main() { X(answer); } Я б також очікував, що це надрукується X(int), оскільки X(answer);може бути інтерпретована як кидок з intдо X, або нічого взагалі, тому що це X(answer);можна …

5
Чому в багатьох (старих) програмах використовується мінімальний (0,5 + вхід) замість круглого (вхід)?
Я вважаю, що відмінності полягають у поверненому значенні, що дає вхідні дані щодо збитків, таких як цей код : int main() { std::cout.precision(100); double input = std::nextafter(0.05, 0.0) / 0.1; double x1 = floor(0.5 + input); double x2 = round(input); std::cout << x1 << std::endl; std::cout << x2 << std::endl; …
80 c++  rounding  floor 

11
Чому я не можу визначити функцію всередині іншої функції?
Це не питання лямбда-функції, я знаю, що можу призначити лямбда змінній. Який сенс дозволяти нам оголошувати, але не визначати функцію всередині коду? Наприклад: #include <iostream> int main() { // This is illegal // int one(int bar) { return 13 + bar; } // This is legal, but why would I …

2
У чому різниця між порожнім та нульовим std :: shared_ptr у C ++?
Cplusplus.com shared_ptrсторінка волає відмінність між порожнім std::shared_ptr і в нулі shared_ptr . Сторінка cppreference.com явно не називає відмінності, але використовує як "порожній", так і порівняння для nullptrопису std::shared_ptrповедінки. Чи існує різниця між порожнім і нульовим значенням shared_ptr? Чи існує варіант використання таких покажчиків із змішаною поведінкою? Чи shared_ptrмає сенс не …
80 c++  c++11  shared-ptr 

1
більше духовного божевілля - типи парсерів (правила проти int_parser <>) та методи метапрограмування
Питання напівжирним шрифтом внизу, проблема також узагальнена фрагментом коду перегонки до кінця. Я намагаюся об'єднати мою систему типів (система типів робить це і від типу до рядка) в один компонент (як визначено Лакосом). Я використовую boost::array, boost::variantі boost::mpl, для цього. Я хочу, щоб правила синтаксичного аналізу та генератора для моїх …

7
Чому мені потрібно явно писати ключове слово "auto"?
Я переходжу до C ++ 11 з C ++ 98 і ознайомився з autoключовим словом. Мені було цікаво, чому нам потрібно явно оголосити, autoчи компілятор може автоматично вивести тип. Я знаю, що C ++ - це сильно набрана мова, і це правило, але чи не вдалося досягти того самого результату …
80 c++  c++11  auto 

28
Чому винятки слід використовувати консервативно?
Я часто бачу / чую, як люди говорять, що винятки слід використовувати лише рідко, але ніколи не пояснюють, чому. Хоча це може бути правдою, обгрунтування, як правило, є глибоким: "це називається винятком з певної причини", яке, як мені здається, є таким поясненням, яке ніколи не повинно приймати поважний програміст / …
80 c++  exception 

13
Як реалізувати великий int у C ++
Я хотів би реалізувати великий клас int на C ++ як вправу програмування - клас, який може обробляти числа, більші за довгий int. Я знаю, що вже існує кілька реалізацій з відкритим кодом, але я хотів би написати своє. Я намагаюся зрозуміти, що таке правильний підхід. Я розумію, що загальною …

4
Як ця структура може мати sizeof == 0?
Існує стара публікація з проханням про конструкцію, для якої sizeofслід повернутися 0. Є декілька високих балів відповідей від користувачів з високою репутацією, які заявляють, що за стандартом жоден тип або змінна не може мати розмір 0. І я на 100% з цим погоджуюсь. Однак є нова відповідь, яка представляє таке …

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