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

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

11
Почему я не могу использовать значение с плавающей запятой в качестве параметра шаблона?
Когда я пытаюсь использовать floatв качестве параметра шаблона, компилятор требует этого кода, пока intработает нормально. Это потому, что я не могу использовать floatв качестве параметра шаблона? #include<iostream> using namespace std; template <class T, T defaultValue> class GenericClass { private: T value; public: GenericClass() { value = defaultValue; } T returnVal() …

2
Что значит «навязчивая» структура данных?
Я видел термин навязчивый, используемый для описания структур данных, таких как списки и стеки, но что он означает? Можете ли вы привести пример кода навязчивой структуры данных и чем она отличается от ненавязчивой? Кроме того, зачем делать это навязчивым (или ненавязчивым)? Каковы преимущества? Какие недостатки?

9
C ++ IDE для Mac [закрыто]
В его нынешнем виде этот вопрос не подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, повлечет за собой дебаты, аргументы, опросы или расширенное обсуждение. Если вы считаете, что этот вопрос можно улучшить и, возможно, снова открыть, …
120 c++  macos  ide 

2
Как работает std :: tie?
Я использовал, std::tieне особо задумываясь об этом. Это работает, поэтому я только что принял это: auto test() { int a, b; std::tie(a, b) = std::make_tuple(2, 3); // a is now 2, b is now 3 return a + b; // 5 } Но как работает эта черная магия ? Как …
120 c++  c++11  tuples 

7
Преобразование в int vs floor
Есть ли разница между ними: float foo1 = (int)(bar / 3.0); float foo2 = floor(bar / 3.0); Насколько я понимаю, в обоих случаях результат одинаковый. Есть ли разница в скомпилированном коде?
120 c++  c  floating-point 

8
Почему в заголовке указаны встроенные функции C ++?
NB. Это не вопрос о том, как использовать встроенные функции или как они работают, а скорее о том, почему они сделаны такими, какие есть. Объявление функции-члена класса не требует определения функции, поскольку inlineэто только фактическая реализация функции. Например, в заголовочном файле: struct foo{ void bar(); // no need to define …

4
дополнительная ошибка квалификации в C ++
У меня есть функция-член, которая определяется следующим образом: Value JSONDeserializer::ParseValue(TDR type, const json_string& valueString); Когда я компилирую исходник, я получаю: ошибка: дополнительная квалификация 'JSONDeserializer ::' для члена 'ParseValue' Что это? Как мне удалить эту ошибку?
120 c++  g++  compiler-errors 

13
стек вызовов печати на C или C ++
Есть ли способ сбрасывать стек вызовов в запущенном процессе на C или C ++ каждый раз, когда вызывается определенная функция? Я имею в виду примерно следующее: void foo() { print_stack_trace(); // foo's body return } Где print_stack_traceработает аналогично callerPerl. Или что-то вроде этого: int main (void) { // will print …
120 c++  c  linux  callstack 

1
Каким идиоматическим способом в CMAKE добавить параметр компилятора -fPIC?
Я нашел как минимум 3 способа сделать это, и мне интересно, какой из них идиоматический. Это необходимо сделать почти повсеместно для любой статической библиотеки. Я удивлен, что генератор Makefile в CMake не добавляет это автоматически в статические библиотеки. (если я чего-то не упускаю?) target_compile_options(myLib PRIVATE -fPIC) add_compile_options(-fPIC) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fpic") …
120 c++  c  cmake 

30
Производительность C ++ по сравнению с Java / C #
Заблокировано . Этот вопрос и ответы на него заблокированы, потому что вопрос не по теме, но имеет историческое значение. В настоящее время он не принимает новые ответы или взаимодействия. Насколько я понимаю, C / C ++ создает собственный код для работы на конкретной архитектуре компьютера. И наоборот, такие языки, как …
119 c#  java  c++  performance  bytecode 


3
Имеет ли смысл использовать встроенные ключевые слова в шаблонах?
Поскольку шаблоны определены в заголовках, и компилятор может определить, выгодно ли встраивание функции, имеет ли это смысл? Я слышал, что современные компиляторы лучше знают, когда встраивать функцию, и игнорируют inlineподсказки. изменить: я хотел бы принять оба ответа, но это невозможно. Чтобы закрыть вопрос, я принимаю ответ Френеля , потому что …
119 c++  templates  inline 

5
Почему тернарный оператор с запятыми оценивает только одно выражение в истинном случае?
В настоящее время я изучаю C ++ с помощью книги C ++ Primer, и одно из упражнений в книге: Объясните, что делает следующее выражение: someValue ? ++x, ++y : --x, --y Что мы знаем? Мы знаем, что тернарный оператор имеет более высокий приоритет, чем оператор запятой. С бинарными операторами это …



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