language-lawyer ×7
Создан 09.01.2025
0
голоса
0
ответов
39
просмотров
Почему вызывается деструктор для объекта, который не был удален?

Вопрос на StackOverflow: Проблема с компиляцией из-за удаленного деструктора

У меня есть следующий код на C++:

struct A
{
    ~A() = delete;
};

int main()
{
    new A{};
}

При компиляции я получаю сообщение об ошибке:

error: use of deleted function 'A::~A()'
            new...
0
голоса
1
ответов
16
просмотров
Является ли ++*ptr++ некорректным поведением в C++?

Я столкнулся с вопросом на тесте (не хотел его придумывать сам, но тест это задал. Я понимаю, что код плохой) о том, как оценить выражение ++*ptr++.

int Ar[] = { 6, 3, 8, 10, 4, 6, 7 };
int *Ptr = Ar;
cout << ++*Ptr++;

Однако у меня есть подозрение, что это может привести к...

0
голоса
4
ответов
17
просмотров
Доступ к атрибутам на литералах работает для всех типов, кроме `int`; почему?

Проблема с вызовом метода __str__ у целых чисел в Python

Я прочитал, что в Python все является объектом, поэтому решил поэкспериментировать с различными типами данных и вызвать метод __str__ у них. Сначала это меня очень вдохновило, но затем возникло недоумение.

Вот что я попытался...

0
голоса
5
ответов
16
просмотров
Каков смысл фразы "зарезервировано для любого использования"?

Описание проблемы:

Я столкнулся с некоторыми несоответствиями в стандарте C и C++, касающимися зарезервированных идентификаторов. В спецификации стандартной библиотеки C, в разделе C17 7.1.3 «Зарезервированные идентификаторы», указано, что:

  • Все идентификаторы, которые начинаются с...
0
голоса
0
ответов
24
просмотров
Удален конструктор по умолчанию. Объекты все еще могут быть созданы... иногда

Наивное, оптимистичное и... совершенно ошибочное представление о синтаксисе унифицированной инициализации в C++11

Я думал, что с введением C++11 объекты пользовательских типов должны создаваться с помощью нового синтаксиса , вместо старого (...) (за исключением конструкторов, перегруженных на...

7
голоса
5
ответов
40
просмотров
Что говорит стандарт C++ о размерах типов int и long?

Я ищу детальную информацию о размерах базовых типов C++. Я понимаю, что это зависит от архитектуры (16 бит, 32 бит, 64 бита) и компилятора.

Но существуют ли какие-либо стандарты для C++?

Я использую Visual Studio 2008 на 32-битной архитектуре. Вот что я получил:

char  : 1 byte
short : 2...
10
голоса
2
ответов
49
просмотров
Правила использования символа подчеркивания в идентификаторах C++

В C++ распространено именовать переменные-члены с использованием префикса, чтобы обозначить, что это переменные класса, а не локальные переменные или параметры. Если вы работали с MFC, вы, вероятно, используете m_foo. Я также иногда видел использование myFoo.

В C# (или, возможно, только в .NET)...