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

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


5
Беззнаковое ключевое слово в C ++
Используется ли ключевое слово unsigned по умолчанию для определенного типа данных в C ++? Я пытаюсь написать функцию для класса для прототипа: unsigned Rotate(unsigned object, int count) Но я действительно не понимаю, что unsignedозначает. Разве это не должно быть похоже unsigned intили что-то в этом роде?
87 c++  unsigned 

4
Надежны ли экспериментальные возможности современного C ++ для долгосрочных проектов?
У меня есть проект, который в настоящее время использует C ++ 11/14, но для этого требуется что-то вроде того std::filesystem, что доступно только в C ++ 17, и, следовательно, у меня нет возможности его использовать. Однако я вижу, что в моем текущем компиляторе он доступен как std::experimental::filesystem. Хорошая идея - …

3
Перегрузка конструктора копирования и оператора = в C ++: возможна ли общая функция?
Поскольку конструктор копирования MyClass(const MyClass&); и оператор = перегрузка MyClass& operator = (const MyClass&); имеют практически одинаковый код, одинаковый параметр и отличаются только при возврате, возможно ли иметь общую функцию для них обоих?

1
Что такое руководства по выбору шаблонов и когда их следует использовать?
Стандарт C ++ 17 представляет «руководства по выводам шаблонов». Я так понимаю, они как-то связаны с новым выводом аргументов шаблона для конструкторов, представленным в этой версии стандарта, но я еще не видел простого объяснения в стиле FAQ, что они собой представляют и для чего они нужны. Что такое руководства по …

12
Как настроить googleTest как общую библиотеку в Linux
Debian больше не предоставляет предварительно скомпилированных пакетов для gTest. Они предлагают вам интегрировать фреймворк в make-файл вашего проекта. Но я хочу, чтобы мой make-файл был чистым. Как мне настроить gTest, как предыдущие версии (<1.6.0), чтобы я мог ссылаться на библиотеку?

7
C / C ++: принудительный порядок и выравнивание битовых полей
Я читал, что порядок битовых полей в структуре зависит от платформы. Что если я использую различные параметры упаковки для конкретного компилятора, будут ли эти данные гарантии храниться в правильном порядке по мере их написания? Например: struct Message { unsigned int version : 3; unsigned int type : 1; unsigned int …

14
Как смоделировать «Нажмите любую клавишу, чтобы продолжить?»
Я пытаюсь написать программу на C ++, в которой, когда пользователь вводит любой символ с клавиатуры, он должен переходить к следующей строке кода. Вот мой код: char c; cin>>c; cout<<"Something"<<endl; но это не работает, потому что он переходит к следующей строке только тогда, когда я ввожу какой-либо символ и затем …
87 c++ 

4
Почему шаблон функции не может быть частично специализированным?
Я знаю, что спецификация языка запрещает частичную специализацию шаблона функции. Хотелось бы узнать, почему он это запрещает? Разве они не полезны? template<typename T, typename U> void f() {} //allowed! template<> void f<int, char>() {} //allowed! template<typename T> void f<char, T>() {} //not allowed! template<typename T> void f<T, int>() {} //not …

5
Почему C и C ++ поддерживают поэлементное присваивание массивов внутри структур, но не в целом?
Я понимаю, что поэлементное присваивание массивов не поддерживается, поэтому следующее не будет работать: int num1[3] = {1,2,3}; int num2[3]; num2 = num1; // "error: invalid array assignment" Я просто принял это как факт, полагая, что цель языка - предоставить открытый фреймворк и позволить пользователю решать, как реализовать что-то вроде копирования …

3
long long int против long int против int64_t в C ++
Я испытал странное поведение при использовании черт типа C ++ и сузил свою проблему до этой причудливой маленькой проблемы, для которой я дам множество объяснений, поскольку я не хочу оставлять что-либо открытым для неправильной интерпретации. Допустим, у вас есть такая программа: #include <iostream> #include <cstdint> template <typename T> bool is_int64() …
87 c++  gcc  cstdint 

3
Как использовать glOrtho () в OpenGL?
Я не могу понять, как используется glOrtho. Может кто-нибудь объяснить, для чего он используется? Используется ли он для установки предела диапазона координат xy и z? glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0); Это означает, что диапазон x, y и z составляет от -1 до 1?
87 c++  c  opengl 



6
Как работает диапазон на основе для простых массивов?
В C ++ 11 вы можете использовать диапазон for, который действует как foreachдругие языки. Он работает даже с простыми массивами C: int numbers[] = { 1, 2, 3, 4, 5 }; for (int& n : numbers) { n *= 2; } Как он узнает, когда остановиться? Работает ли он только …
87 c++  arrays  foreach  c++11 

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