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

89
CMake не может определить язык компоновщика с C ++

Я пытаюсь запустить программу cmake hello world в Windows 7 x64 как с Visual Studio 2010, так и с Cygwin, но, похоже, ни одна из них не работает. Моя структура каталогов выглядит следующим образом: HelloWorld -- CMakeLists.txt -- src/ -- -- CMakeLists.txt -- -- main.cpp -- build/ Я делаю cd buildа...

89
Что бы 'std :;' делать в c ++?

Недавно я модифицировал код и обнаружил уже существующую ошибку в одной строке функции: std:;string x = y; Этот код все еще компилируется и работает должным образом. Определение строки работает, потому что этот файл есть using namespace std;, поэтому std::в первую очередь не было необходимости....

89
Обратный вызов C ++ с использованием члена класса

Я знаю, что об этом так много раз спрашивали, и из-за этого трудно покопаться в развалинах и найти простой пример того, что работает. У меня есть такая, она простая и работает на MyClass... #include <iostream> using std::cout; using std::endl; class MyClass { public: MyClass(); static void...

89
Что такое правило «как если бы»?

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

89
Что такое const void?

В описании std::is_voidговорится, что: Предоставляет значение константы члена, равное true, если T является типом void, const void, volatile void или const volatile void. Тогда что могло быть const void, или volatile void? В этом ответе указано, что const voidтип возвращаемого значения будет...

89
Как работает гарантированное копирование?

На собрании стандартов ISO C ++ в Оулу в 2016 году комитет по стандартам проголосовал за предложение под названием « Гарантированное исключение копий с помощью упрощенных категорий значений» . Как именно работает гарантированное копирование? Охватывает ли он некоторые случаи, когда исключение...

89
Является ли определение «изменчивого» таким изменчивым, или у GCC есть некоторые стандартные проблемы совместимости?

Мне нужна функция, которая (например, SecureZeroMemory из WinAPI) всегда обнуляет память и не оптимизируется, даже если компилятор считает, что после этого к памяти больше не будет доступа. Похоже, идеальный кандидат на волатильность. Но у меня возникли проблемы с тем, чтобы заставить это работать...

89
Зачем сравнивать символ «А» с 0x41?

Я просматривал код C ++ и нашел следующую конструкцию: if('A' == 0x41) { // ... } else if('A' == 0xc1) { // ... } else { // ... } Я получаю предупреждение Visual Studio : Предупреждение C4127 Условное выражение является постоянным. Visual Studio явно права - безусловно, A определяется как 0x41....

89
Как исправить ошибку «Windows SDK версии 8.1» не найден?

Я недавно обновил Visual Studio 2015, и теперь, когда я пытаюсь создать любой проект, он всегда терпит неудачу, и я получаю сообщение об ошибке Код серьезности Описание Ошибка состояния подавления строки файла проекта MSB8036 Не найден Windows SDK версии 8.1. Установите требуемую версию Windows...

89
Какова цель использования союза только с одним членом?

Когда я читал исходный код seastar , я заметил, что существует структура объединения, tx_sideкоторая имеет только один член. Это какой-то хак для решения определенной проблемы? К вашему сведению, я вставляю tx_sideструктуру ниже: union tx_side { tx_side() {} ~tx_side() {} void init() { new (&a)...

89
Есть ли причина не использовать глобальные лямбды?

У нас была функция, которая использовала не захватывающую внутреннюю лямбду, например: void foo() { auto bar = [](int a, int b){ return a + b; } // code using bar(x,y) a bunch of times } Теперь функциональность, реализованная лямбда-выражением, стала необходимой в другом месте, поэтому я собираюсь...

88
Преобразование указателя в целое число

Я пытаюсь адаптировать существующий код к 64-битной машине. Основная проблема заключается в том, что в одной функции предыдущий кодировщик использует аргумент void *, который преобразуется в подходящий тип в самой функции. Краткий пример: void function(MESSAGE_ID id, void* param) { if(id == FOO) {...

88
Использование continue в операторе switch

Я хочу перейти от середины switchоператора к оператору цикла в следующем коде: while (something = get_something()) { switch (something) { case A: case B: break; default: // get another something and try again continue; } // do something for a handled something do_something(); } Это действительный...

88
Почему мы не можем объявить std :: vector <AbstractClass>?

Потратив некоторое время на разработку на C #, я заметил, что если вы объявляете абстрактный класс с целью использования его в качестве интерфейса, вы не можете создать экземпляр вектора этого абстрактного класса для хранения экземпляров дочерних классов. #pragma once #include <iostream>...

88
Как работает эта программа?

#include <stdio.h> int main() { float a = 1234.5f; printf("%d\n", a); return 0; } Он отображает 0!! Как такое возможно? В чем причина? Я намеренно поставил %dв printfутверждение, чтобы изучить поведение printf....