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

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

8
Ефективний непідписаний підпис, уникаючи поведінки, визначеної реалізацією
Я хочу визначити функцію, яка приймає unsigned intяк аргумент і повертає до аргументу intконгруентний модуль UINT_MAX + 1. Перша спроба може виглядати так: int unsigned_to_signed(unsigned n) { return static_cast<int>(n); } Але, як відомо будь-якому мовному юристу, приведення з непідписаного на підписане значення, більші за INT_MAX, визначається реалізацією. Я хочу реалізувати …

4
Передача shared_ptr <Derived> як shared_ptr <Base>
Який найкращий метод використовувати передачу shared_ptrпохідного типу функції, яка приймає shared_ptra базового типу? Я зазвичай передаю shared_ptrs за посиланням, щоб уникнути непотрібної копії: int foo(const shared_ptr&lt;bar&gt;&amp; ptr); але це не працює, якщо я намагаюся зробити щось подібне int foo(const shared_ptr&lt;Base&gt;&amp; ptr); ... shared_ptr&lt;Derived&gt; bar = make_shared&lt;Derived&gt;(); foo(bar); Я міг би …

2
Функція для структури C ++
Зазвичай ми можемо визначити змінну для структури C ++, як у struct foo { int bar; }; Чи можемо ми також визначити функції для структури? Як би ми використовували ці функції?
93 c++  function  struct 

2
Що означає «використовувати ОРС»?
Це просто виникло в контексті іншого питання . Очевидно, функції-члени в шаблонах класів створюються лише тоді, коли вони використовуються ODR. Хтось може пояснити, що саме це означає. У статті Вікіпедії про Правило одного визначення (ODR) не згадується " використання ODR ". Однак стандарт визначає це як Змінна, назва якої відображається …



10
Як я можу покращити продуктивність за допомогою високорівневого підходу при впровадженні довгих рівнянь у C ++
Я розробляю кілька інженерних моделювань. Це передбачає впровадження деяких довгих рівнянь, таких як це рівняння, для розрахунку напружень у матеріалі, схожому на гуму: T = ( mu * ( pow(l1 * pow(l1 * l2 * l3, -0.1e1 / 0.3e1), a) * a * ( pow(l1 * l2 * l3, -0.1e1 …

4
Як отримати певний елемент у списку, враховуючи позицію?
Отже, у мене є список: list&lt;Object&gt; myList; myList.push_back(Object myObject); Я не впевнений, але впевнений, що це буде "0-й" елемент у масиві. Чи є якась функція, яку я можу використовувати, яка повертає "myObject"? Object copy = myList.find_element(0); ?
92 c++  list  stl 

9
Чи є ((a + (b & 255)) & 255 те саме, що ((a + b) & 255)?
Я переглядав якийсь код C ++ і знайшов щось подібне: (a + (b &amp; 255)) &amp; 255 Подвійний І дратував мене, тому я подумав: (a + b) &amp; 255 ( aі bє 32-розрядними цілими числами без знака) Я швидко написав тестовий сценарій (JS), щоб підтвердити свою теорію: for (var i …
92 c++  binary  logic 

13
LLVM C ++ IDE для Windows
Чи існує якась IDE C / C ++ для Windows, яка інтегрована з компілятором LLVM (і аналізатором Clang C / C ++), як це робить сучасний Xcode. У мене є Dev-Cpp (він використовує застарілий GCC) і Code :: Blocks (з деякими GCC). Але GCC дає мені дуже загадкові повідомлення про …
92 c++  windows  ide  llvm  clang 

1
Чому вектор libc ++ <bool> :: const_reference не є bool?
Розділ 23.3.7 Клас vector&lt;bool&gt;[vector.bool], пункт 1, говорить: template &lt;class Allocator&gt; class vector&lt;bool, Allocator&gt; { public: // types: typedef bool const_reference; ... Однак ця програма не вдається скомпілювати під час використання libc ++: #include &lt;vector&gt; #include &lt;type_traits&gt; int main() { static_assert(std::is_same&lt;std::vector&lt;bool&gt;::const_reference, bool&gt;{}, "?"); } Крім того, я зазначаю, що стандарт С …

5
Чи є використання assert () у C ++ поганою практикою?
Я схильний додавати багато тверджень до свого коду С ++, щоб полегшити налагодження, не впливаючи на продуктивність збірки випусків. Зараз assertце чистий макрос С, розроблений без урахування механізмів С ++. C ++, з іншого боку, визначає std::logic_error, що призначено для викиду у випадках, коли в логіці програми є помилка (звідси …

7
Чи безпечний const_cast?
Я не можу знайти багато інформації про const_cast. Єдину інформацію, яку я зміг знайти (про переповнення стека), це: const_cast&lt;&gt;()Використовується для додавання / видалення сопзЬ (Ness) (або летючого-ність) змінної. Це мене нервує. Чи може використання const_castпричини несподіваної поведінки? Якщо так, то що? Як варіант, коли це нормально використовувати const_cast?

1
Що означає?
У мене є 2 класи: class base { virtual void foo() {}; }; class derived : public base { void foo() { base::foo(); } }; Я помилився і написав base:foo();замість base::foo();. Код був скомпільований і запущений, але з сегментами. Я не знаю, як я можу це погуглити і не знаю, …
92 c++  syntax 

6
Чому C ++ забороняє анонімні структури?
Деякі компілятори C ++ дозволяють анонімні об'єднання та структури як розширення до стандартного C ++. Це трохи синтаксичного цукру, що іноді дуже корисно. Яке обґрунтування перешкоджає цьому бути частиною стандарту? Чи існує технічна перешкода? Філософський? Або просто недостатньо потреби, щоб це виправдати? Ось зразок того, про що я говорю: struct …
92 c++  struct  unions 

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