c++ ×204
Создан 03.01.2025
0
голоса
0
ответов
87
просмотров
Что означает && в конце сигнатуры функции (после закрывающей скобки)?

Суть вопроса заключается в следующем:

Я столкнулся с непонятной мне конструкцией в C++ и хотел бы прояснить некоторые моменты. Вопрос касается перегрузки операторов, и я вижу следующий код, который вызывает у меня затруднения:

template
struct A
{
    operator T&&() && // <== Что означает...
0
голоса
2
ответов
13
просмотров
Как инициализировать вектор векторов в структуре?

Я столкнулся с проблемой и не могу разобраться, как инициализировать матрицу NxN в C++ с использованием векторов векторов. Я пытаюсь создать матрицу, объявив ее следующим образом:

vector> A;

Но как правильно инициализировать её размер? Я пробовал разные варианты, но неудачно. Например,...

0
голоса
1
ответов
44
просмотров
Расширение setuptools для использования CMake в setup.py?

Я разрабатываю расширение для Python, которое связывает библиотеку на C++. Для этого я использую CMake, чтобы упростить процесс сборки. В текущей реализации, чтобы упаковать расширение, мне нужно сначала скомпилировать его с помощью CMake, а затем запускать setup.py bdist_wheel. Я уверен, что...

0
голоса
0
ответов
30
просмотров
Почему вызывается деструктор для объекта, который не был удален?

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

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

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

int main()
{
    new A{};
}

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

error: use of deleted function 'A::~A()'
            new...
0
голоса
3
ответов
11
просмотров
GCC: Разница между -O3 и -Os

Я достаточно знаком с флагом компилятора GCC -O3, но хотел бы узнать, чем он отличается от флага -Os. В каких ситуациях следует предпочесть один флаг другому?

0
голоса
3
ответов
38
просмотров
Как удалить конструктор по умолчанию?

Вопрос: Как предотвратить неявное предоставление конструктора по умолчанию в C++ до версии 11?

Иногда мне не нужно предоставлять конструктор по умолчанию, и при этом я не хочу, чтобы компилятор создавал стандартный конструктор для моего класса. В C++11 я мог сделать следующее:

class...
0
голоса
4
ответов
19
просмотров
Почему T не может быть выведен из Template<T>::Type?

Вопрос: Что не так с этим кодом?

У меня есть следующий код на C++, но компилятор выдает ошибку "could not deduce template argument for T". Я не понимаю, что именно вызывает эту ошибку. Вот сам код:

#include 

template
struct TMap
{
    typedef std::map Type;
};

template
T...
0
голоса
5
ответов
25
просмотров
Простой способ найти неинициализированные переменные-члены

Я ищу простой способ обнаружить неинициализированные переменные-члены класса.

Нахождение таких переменных как во время выполнения, так и на этапе компиляции подходит.

На данный момент я ставлю точку останова в конструкторе класса и проверяю переменные по одной.

0
голоса
5
ответов
9
просмотров
Функция, принимающая как lvalue, так и rvalue аргументы

Есть ли способ написать функцию на C++, которая принимает как lvalue, так и rvalue аргументы, не используя шаблоны?

Например, предположим, что я пишу функцию print_stream, которая считывает данные из istream и выводит их на экран или что-то в этом роде.

Я считаю вполне разумным вызывать...

0
голоса
5
ответов
14
просмотров
Может ли XOR двух целых чисел выйти за пределы диапазона?

Я изучал алгоритм нахождения «одиноких» целых чисел в массиве и вот его реализация:

int arr[] = {10, 20, 30, 5, 20, 10, 30};
int LonelyInteger = 0;
for(int i = 0; i < 7; i++)
{
    LonelyInteger = LonelyInteger ^ arr[i];
}

В результате получается 5.

У меня возник вопрос:...

0
голоса
5
ответов
10
просмотров
Что нужно знать при погружении в многопоточное программирование на C++

Я сейчас разрабатываю приложение для беспроводных сетей на C++, и встал перед задачей, когда мне нужно будет многопоточно организовать работу программы в одном процессе, а не иметь их в отдельных процессах. В теории я понимаю, что такое многопоточность, но пока не погружался в практическую...

0
голоса
2
ответов
10
просмотров
Эквивалент unique_ptr в Boost?

Проблема: Есть ли эквивалент класса std::unique_ptr из C++11 в библиотеке Boost?

Я ищу поведение, позволяющее создать безопасную для исключений фабричную функцию, вот так:

std::unique_ptr create_base()
{
    return std::unique_ptr(new Derived);
}

void some_other_function()
{
   ...
0
голоса
5
ответов
8
просмотров
Избежание неявного преобразования в конструкторе: ключевое слово 'explicit' здесь не помогает

Задача заключается в том, чтобы запретить создание объекта класса A при передаче параметра типа double, даже если конструктор помечен как explicit. Я хочу, чтобы объекты класса A могли создаваться только при передаче целочисленного параметра, например, A a1 = A(10);.

Вот мой...

0
голоса
3
ответов
9
просмотров
Как преобразовать код C++ в C [закрыто]

Проблема с преобразованием C++ кода в C

У меня есть код на C++, в котором определено множество классов, их методы, конструкторы и деструкторы, а также несколько шаблонных классов и много других элементов C++. Теперь мне нужно преобразовать этот исходный код в обычный C.

У меня возникли...

0
голоса
5
ответов
8
просмотров
C++ вылетает в 'for' цикле с отрицательным выражением

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


Я столкнулся с проблемой в моем коде на C++, которая вызывает сбой с ошибкой выполнения. Вот код, который вызывает сбой:

#include 

using namespace std;

int main() {
    string s = "aa";
    for (int i = 0; i < s.length() - 3; i++) {

   ...
0
голоса
1
ответов
10
просмотров
Является ли ++*ptr++ некорректным поведением в C++?

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

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

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

0
голоса
3
ответов
10
просмотров
Что такое бес блокировочное многопоточное программирование?

Я заметил, что многие люди, статьи и посты на Stack Overflow утверждают, что разработали свои собственные "безлоковые" контейнеры для многопоточного использования. Предполагая, что они не использовали прием с модулем, который может негативно сказаться на производительности (то есть каждый поток...

0
голоса
0
ответов
8
просмотров
Использование futures в C++11: Вложенные вызовы std::async приводят к сбоям - ошибка компилятора или стандартной библиотеки?

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

После того как я столкнулся с падениями программы при использовании вложенных вызовов std::async, я смог воспроизвести проблему в следующем минимальном примере. Ошибки происходят часто, но не всегда. Видите ли вы что-то, что может быть причиной проблемы, или это ошибка...

0
голоса
5
ответов
9
просмотров
Копирование не нуль-терминированного массива unsigned char в std::string

У меня возникла проблема с копированием массива unsigned char, который не заканчивается на нулевой символ, в объект std::string. Если бы массив был с нулевым окончанием, задача была бы довольно простой:

unsigned char u_array[4] = { 'a', 's', 'd', '\0' };
std::string str =...
0
голоса
4
ответов
12
просмотров
Инициализация std::string из char* без копирования

У меня возникла ситуация, в которой необходимо обрабатывать большие объемы данных (многие гигабайты) следующим образом:

  1. Создание большой строки путём подключения множества меньших (C char*) строк.
  2. Обрезка строки.
  3. Преобразование строки в неизменяемую C++ std::string для дальнейшей...