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

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

5
Сколько накладных расходов на интеллектуальные указатели по сравнению с обычными указателями в C ++?
Сколько накладных расходов на интеллектуальные указатели по сравнению с обычными указателями в C ++ 11? Другими словами, будет ли мой код медленнее, если я использую интеллектуальные указатели, и если да, то насколько медленнее? В частности, я спрашиваю о C ++ 11 std::shared_ptrи std::unique_ptr. Очевидно, что материал, помещенный в стек, будет …

8
Является ли «argv [0] = имя исполняемого файла» принятым стандартом или просто общепринятым соглашением?
При передаче аргумента main()в приложение C или C ++ argv[0]всегда будет имя исполняемого файла? Или это просто обычное соглашение и не гарантируется, что оно будет верным в 100% случаев?
102 c++  c  standards  argv 

6
Передача в функцию std :: array неизвестного размера
В C ++ 11, как мне написать функцию (или метод), которая принимает std :: array известного типа, но неизвестного размера? // made up example void mulArray(std::array<int, ?>& arr, const int multiplier) { for(auto& e : arr) { e *= multiplier; } } // lets imagine these being full of numbers …
102 c++  c++11  stdarray 

8
Компиляция простой программы Hello World в OS X через командную строку
У меня есть простой пример hello world, который я пытаюсь скомпилировать на OS X, с именем hw.cpp: #include <iostream> #include <string> using namespace std; int main() { cout << "Hello world!" << endl; return 0; } Я хотел бы скомпилировать его с помощью gcc, но безуспешно. Я также хотел бы …
102 c++  xcode  macos 

16
Функция таймера для отображения времени в наносекундах с использованием C ++
Я хочу рассчитать время, необходимое API для возврата значения. Время, необходимое для такого действия, составляет наносекунды. Поскольку API - это класс / функция C ++, я использую timer.h, чтобы вычислить то же самое: #include <ctime> #include <cstdio> using namespace std; int main(int argc, char** argv) { clock_t start; double diff; …
101 c++  c  timer 

3
Есть ли ошибки в регулярных выражениях в gcc 4.8 или более ранней версии?
Я пытаюсь использовать std :: regex в фрагменте кода C ++ 11, но похоже, что поддержка немного глючна. Пример: #include <regex> #include <iostream> int main (int argc, const char * argv[]) { std::regex r("st|mt|tr"); std::cerr << "st|mt|tr" << " matches st? " << std::regex_match("st", r) << std::endl; std::cerr << "st|mt|tr" …
101 c++  regex  gcc  c++11  libstdc++ 

3
Почему простая программа в стиле «Hello World» не компилируется с Turbo C ++?
Я начал изучать C ++ для своего класса программирования. Я скачал эту программу "Hello World": #include <iostream> using namespace std; int main() { cout << "Hello, World!"; return 0; } но Turbo C ++ жалуется: Error D:\HELLO.CPP 1: Unable to open include file 'IOSTREAM' Error D:\HELLO.CPP 2: Declaration syntax error …
101 c++  turbo-c++  c++-faq 

8
Есть ли класс диапазона в С ++ 11 для использования с циклами на основе диапазона?
Я обнаружил, что пишу это совсем недавно: template <long int T_begin, long int T_end> class range_class { public: class iterator { friend class range_class; public: long int operator *() const { return i_; } const iterator &operator ++() { ++i_; return *this; } iterator operator ++(int) { iterator copy(*this); ++i_; …
101 c++  c++11  std 

2
Ошибка компилятора: memset не был объявлен в этой области
Я пытаюсь скомпилировать свою программу на C в Ubuntu 9.10 (gcc 4.4.1). Я получаю эту ошибку: Rect.cpp:344: error: ‘memset’ was not declared in this scope Но проблема в том, что я уже включил в свой файл cpp: #include <stdio.h> #include <stdlib.h> И эта же программа отлично компилируется под Ubuntu 8.04 …
101 c++  gcc 

6
Использование {} в операторе case. Зачем?
Какой смысл в использовании {и }в caseзаявлении? Обычно, независимо от того, сколько строк в caseоператоре, выполняются все строки. Это просто правило относительно старых / новых компиляторов или за этим стоит что-то? int a = 0; switch (a) { case 0:{ std::cout << "line1\n"; std::cout << "line2\n"; break; } } и …

13
Могу ли я реализовать на C ++ автономный тип члена self?
В C ++ отсутствует эквивалент ключевого слова PHPself , которое оценивает тип включающего класса. Достаточно легко подделать это для каждого класса: struct Foo { typedef Foo self; }; но мне пришлось писать Fooснова. Возможно, однажды я сделаю это неправильно и вызову тихую ошибку. Могу ли я использовать комбинацию из decltypeи …
101 c++  c++11 

11
Хеширование строки времени компиляции
Я читал в нескольких разных местах, что, используя новые строковые литералы C ++ 11, можно было бы вычислить хэш строки во время компиляции. Однако, похоже, никто не готов выступить и сказать, что это будет возможно или как это будет сделано. Это возможно? Как бы выглядел оператор? Меня особенно интересуют подобные …

3
Как специализировать std :: hash <Key> :: operator () для пользовательского типа в неупорядоченных контейнерах?
Для поддержки ключевых типов , определяемых пользователем в std::unordered_set&lt;Key&gt;и std::unordered_map&lt;Key, Value&gt; один должен обеспечивать operator==(Key, Key)и хэш - функтор: struct X { int id; /* ... */ }; bool operator==(X a, X b) { return a.id == b.id; } struct MyHash { size_t operator()(const X&amp; x) const { return std::hash&lt;int&gt;()(x.id); …

4
Что означает термин «арена» применительно к памяти?
Я читаю книгу о памяти как концепции программирования. В одной из последующих глав автор широко использует слово « арена» , но никогда не дает ему определения. Я искал значение этого слова и его отношение к памяти, но ничего не нашел. Вот несколько контекстов, в которых автор использует этот термин: «Следующий …

3
Как создать статическую библиотеку с g ++?
Может кто-нибудь сказать мне, как создать статическую библиотеку из файлов .cpp и .hpp? Нужно ли мне создавать .o и .a? Я также хотел бы знать, как я могу скомпилировать статическую библиотеку и использовать ее в другом коде .cpp. Есть header.cpp, header.hpp .хочу творить header.a. Протестируйте header.a в test.cpp. Я использую …

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