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

C ++ - это язык программирования общего назначения. Первоначально он был разработан как расширение C и имеет аналогичный синтаксис, но теперь это совершенно другой язык. Используйте этот тег для вопросов о коде (который будет скомпилирован с помощью компилятора C ++). Используйте тег, зависящий от версии, для вопросов, связанных с конкретной редакцией стандарта [C ++ 11], [C ++ 14], [C ++ 17] или [C ++ 20] и т. Д.

12
Нахождение пути текущего исполняемого файла без / proc / self / exe
Мне кажется, что в Linux легко с / proc / self / exe. Но я хотел бы знать, есть ли удобный способ найти каталог текущего приложения в C / C ++ с кросс-платформенными интерфейсами. Я видел, как некоторые проекты возились с argv [0], но это не совсем надежно. Если бы …
190 c++  c  linux  macos  executable 


8
Каков наилучший способ объединить два вектора?
Я использую многопоточность и хочу объединить результаты. Например: std::vector<int> A; std::vector<int> B; std::vector<int> AB; Я хочу, чтобы AB содержал содержимое A и содержимое B в указанном порядке. Какой самый эффективный способ сделать что-то подобное?
190 c++  vector 

13
Ты не будешь наследовать от std :: vector
Хорошо, это действительно трудно признаться, но у меня сейчас есть сильное искушение унаследовать std::vector. Мне нужно около 10 индивидуальных алгоритмов для вектора, и я хочу, чтобы они были непосредственно членами вектора. Но, естественно, я хочу иметь и остальную часть std::vectorинтерфейса. Ну, моя первая идея, как законопослушного гражданина, была иметь std::vectorчлена …
189 c++  oop  inheritance  stl  vector 

5
Какой смысл в noreturn?
[dcl.attr.noreturn] предоставляет следующий пример: [[ noreturn ]] void f() { throw "error"; // OK } но я не понимаю в чем смысл [[noreturn]], потому что возвращаемый тип функции уже есть void. Итак, в чем смысл этого noreturnатрибута? Как это должно быть использовано?


4
Зачем использовать вложенные классы в C ++?
Может кто-нибудь указать мне на хорошие ресурсы для понимания и использования вложенных классов? У меня есть некоторые материалы, такие как Принципы программирования и такие вещи, как этот Центр знаний IBM - Вложенные классы Но мне все еще трудно понять их цель. Может ли кто-нибудь помочь мне?

9
Как мне сделать вывод CMake в директорию bin?
Я в настоящее время строю проект со структурой плагина. Я использую CMake для компиляции проекта. Плагины скомпилированы в отдельных каталогах. Моя проблема в том, что CMake компилирует и сохраняет двоичные файлы и плагины, динамические библиотеки, в структуре каталогов исходного кода. Как сделать так, чтобы CMake сохранял файлы в директории ./bin …
188 c++  plugins  cmake 

21
Как использовать перечисления в качестве флагов в C ++?
Обрабатывать enums как флаги хорошо работает в C # с помощью [Flags]атрибута, но как лучше всего это сделать в C ++? Например, я хотел бы написать: enum AnimalFlags { HasClaws = 1, CanFly =2, EatsFish = 4, Endangered = 8 }; seahawk.flags = CanFly | EatsFish | Endangered; Тем не …
188 c++  enums 

10
Каков эффект упорядочения, если ... еще, если утверждения по вероятности?
В частности, если у меня есть ряд if... else ifутверждений, и я каким-то образом заранее знаю относительную вероятность, по которой будет оцениваться каждое утверждение true, насколько сильно различается время выполнения для их сортировки в порядке вероятности? Например, я должен предпочесть это: if (highly_likely) //do something else if (somewhat_likely) //do something …

5
Аргументы шаблона по умолчанию для шаблонов функций
Почему аргументы шаблона по умолчанию разрешены только в шаблонах классов? Почему мы не можем определить тип по умолчанию в шаблоне функции-члена? Например: struct mycclass { template<class T=int> void mymember(T* vec) { // ... } }; Вместо этого C ++ заставляет использовать аргументы шаблона по умолчанию только для шаблона класса.
187 c++  templates 

11
Предупреждение компилятора «Нет новой строки в конце файла»
В чем причина следующего предупреждения в некоторых компиляторах C ++? Нет новой строки в конце файла Почему у меня должна быть пустая строка в конце файла источника / заголовка?

14
Ненужные фигурные скобки в C ++?
Делая сегодня обзор кода для коллеги, я увидел странную вещь. Он окружил свой новый код такими фигурными скобками: Constructor::Constructor() { existing code { New code: do some new fancy stuff here } existing code } Каков результат, если таковые имеются, из этого? Что может быть причиной для этого? Откуда эта …

16
Как мне вызвать :: std :: make_shared в классе только с защищенными или закрытыми конструкторами?
У меня есть этот код, который не работает, но я думаю, что цель ясна: testmakeshared.cpp #include <memory> class A { public: static ::std::shared_ptr<A> create() { return ::std::make_shared<A>(); } protected: A() {} A(const A &) = delete; const A &operator =(const A &) = delete; }; ::std::shared_ptr<A> foo() { return A::create(); …
187 c++  c++11  shared-ptr 

3
fork () веток больше, чем ожидалось?
Рассмотрим следующий фрагмент кода: #include <stdio.h> #include <sys/types.h> #include <unistd.h> int main(void) { int i; for(i = 0; i < 2; i++) { fork(); printf("."); } return 0; } Эта программа выводит 8 точек. Как это может быть возможно? Не должно ли быть 6 точек вместо этого?
186 c++  c  fork 

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.