Вопросы с тегом «c++-faq»

417
Как работает процесс компиляции / компоновки?

Как работает процесс компиляции и компоновки? (Примечание. Предполагается, что это будет вход в FAQ по C ++ в Stack Overflow . Если вы хотите критиковать идею предоставления FAQ в этой форме, то публикация в meta, с которой все это началось, будет подходящим местом для этого. Этот вопрос...

394
Где я могу найти текущие стандартные документы C или C ++?

Ответы на этот вопрос - работа сообщества . Отредактируйте существующие ответы, чтобы улучшить этот пост. В настоящее время он не принимает новые ответы или взаимодействия. На этот вопрос есть ответы на Переполнение стека на русском : Где взять стандарт C ++? На многие вопросы ответ, кажется,...

377
Что такое оптимизация копирования и возврата значений?

Что такое копирование? Что такое (названная) оптимизация возвращаемого значения? Что они подразумевают? В каких ситуациях они могут возникнуть? Какие ограничения? Если вы получили ссылку на этот вопрос, вы, вероятно, ищете введение . Технический обзор см. В стандартной справке . Смотрите общие...

353
Устранить ошибки сборки из-за циклической зависимости между классами

Я часто нахожусь в ситуации, когда я сталкиваюсь с множественными ошибками компиляции / компоновщика в проекте C ++ из-за некоторых неудачных проектных решений (принятых кем-то еще :)), которые приводят к круговым зависимостям между классами C ++ в разных заголовочных файлах (также может случиться...

344
Какой анализатор XML я должен использовать в C ++? [закрыто]

Закрыто. Этот вопрос не соответствует рекомендациям по переполнению стека . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме переполнения стека. Закрыто 2 года назад . Улучшить этот вопрос У меня есть XML-документы, которые мне...

341
Является ли практика возврата ссылочной переменной C ++ злой?

Это немного субъективно, я думаю; Я не уверен, что мнение будет единодушным (я видел много фрагментов кода, где возвращаются ссылки). В соответствии с комментарием к этому вопросу, который я только что спросил, относительно инициализации ссылок , возврат ссылки может быть злым, потому что,...

331
Как реализовать классические алгоритмы сортировки в современном C ++?

std::sortАлгоритм (и его кузены std::partial_sortи std::nth_element) из стандартной библиотеки C ++ в большинстве реализаций сложный и гибридная объединение более элементарных алгоритмов сортировки , таких как выбор сортировки, вставки сортировка, быстрая сортировка, сортировка слиянием, или кучи...

302
Почему я всегда должен включать предупреждения компилятора?

Я часто слышу, что при компиляции программ на C и C ++ я должен «всегда включать предупреждения компилятора». Почему это необходимо? Как я могу это сделать? Иногда я также слышу, что я должен «воспринимать предупреждения как ошибки». Нужно ли мне? Как я могу это...

267
Почему я не должен включать #include <bits / stdc ++. H>?

Я отправил вопрос со своим кодом, единственной #includeдирективой которого было следующее: #include <bits/stdc++.h> Мой учитель сказал мне сделать это, но в разделе комментариев мне сообщили, что я не должен....

252
Порядок оценки списка инициализации конструктора

У меня есть конструктор, который принимает некоторые аргументы. Я предполагал, что они были построены в указанном порядке, но в одном случае кажется, что они были построены в обратном порядке, что привело к прерыванию. Когда я изменил аргументы, программа перестала прерываться. Это пример...

249
Как передать объекты в функции в C ++?

Я новичок в программировании на C ++, но у меня есть опыт работы с Java. Мне нужно руководство о том, как передавать объекты в функции в C ++. Нужно ли передавать указатели, ссылки или не указатели и не ссылки? Я помню, в Java нет таких проблем, поскольку мы передаем только переменную, которая...

243
Указатель на элемент данных класса «:: *»

Я наткнулся на этот странный фрагмент кода, который прекрасно компилируется: class Car { public: int speed; }; int main() { int Car::*pSpeed = &Car::speed; return 0; } Почему C ++ имеет этот указатель на нестатический член данных класса? Какая польза от этого странного указателя в реальном...

243
Как удалить дублирование кода между похожими константными и неконстантными функциями-членами?

Допустим, у меня есть следующее, class Xгде я хочу вернуть доступ к внутреннему члену: class Z { // details }; class X { std::vector<Z> vecZ; public: Z& Z(size_t index) { // massive amounts of code for validating index Z& ret = vecZ[index]; // even more code for determining that the Z...

243
Когда я использую точку, стрелку или двойное двоеточие для ссылки на члены класса в C ++?

Исходя из других языков C происхождения (например , Java или C #) на C ++, то в первую очень запутанные , что C ++ имеет три способа обратиться к членам класса: a::b, a.b, и a->b. Когда я использую какой из этих операторов? (Примечание. Предполагается, что это будет вход в FAQ по C ++ в Stack...

242
Какова цель std :: launder?

P0137 представляет шаблон функции std::launderи вносит множество изменений в стандарт в разделах, касающихся объединений, времени жизни и указателей. Какую проблему решает эта статья? Какие изменения в языке я должен знать? И что мы думаем...

238
Что такое «промежуток» и когда я должен его использовать?

Недавно я получил предложения использовать span<T>их в своем коде или увидел здесь некоторые ответы на сайте, которые используют span- предположительно, какой-то контейнер. Но - я не могу найти ничего подобного в стандартной библиотеке C ++ 17. Так что же это за таинственное span<T>и...