Вопросы
Что означает && в конце сигнатуры функции (после закрывающей скобки)?
Суть вопроса заключается в следующем:
Я столкнулся с непонятной мне конструкцией в C++ и хотел бы прояснить некоторые моменты. Вопрос касается перегрузки операторов, и я вижу следующий код, который вызывает у меня затруднения:
template
struct A
{
operator T&&() && // <== Что означает...
Как инициализировать вектор векторов в структуре?
Я столкнулся с проблемой и не могу разобраться, как инициализировать матрицу NxN в C++ с использованием векторов векторов. Я пытаюсь создать матрицу, объявив ее следующим образом:
vector> A;
Но как правильно инициализировать её размер? Я пробовал разные варианты, но неудачно. Например,...
Расширение setuptools для использования CMake в setup.py?
Я разрабатываю расширение для Python, которое связывает библиотеку на C++. Для этого я использую CMake, чтобы упростить процесс сборки. В текущей реализации, чтобы упаковать расширение, мне нужно сначала скомпилировать его с помощью CMake, а затем запускать setup.py bdist_wheel
. Я уверен, что...
Почему вызывается деструктор для объекта, который не был удален?
Вопрос на StackOverflow: Проблема с компиляцией из-за удаленного деструктора
У меня есть следующий код на C++:
struct A
{
~A() = delete;
};
int main()
{
new A{};
}
При компиляции я получаю сообщение об ошибке:
error: use of deleted function 'A::~A()'
new...
GCC: Разница между -O3 и -Os
Я достаточно знаком с флагом компилятора GCC -O3, но хотел бы узнать, чем он отличается от флага -Os. В каких ситуациях следует предпочесть один флаг другому?
Как удалить конструктор по умолчанию?
Вопрос: Как предотвратить неявное предоставление конструктора по умолчанию в C++ до версии 11?
Иногда мне не нужно предоставлять конструктор по умолчанию, и при этом я не хочу, чтобы компилятор создавал стандартный конструктор для моего класса. В C++11 я мог сделать следующее:
class...
Почему T не может быть выведен из Template<T>::Type?
Вопрос: Что не так с этим кодом?
У меня есть следующий код на C++, но компилятор выдает ошибку "could not deduce template argument for T". Я не понимаю, что именно вызывает эту ошибку. Вот сам код:
#include
template
struct TMap
{
typedef std::map Type;
};
template
T...
Простой способ найти неинициализированные переменные-члены
Я ищу простой способ обнаружить неинициализированные переменные-члены класса.
Нахождение таких переменных как во время выполнения, так и на этапе компиляции подходит.
На данный момент я ставлю точку останова в конструкторе класса и проверяю переменные по одной.
Функция, принимающая как lvalue, так и rvalue аргументы
Есть ли способ написать функцию на C++, которая принимает как lvalue, так и rvalue аргументы, не используя шаблоны?
Например, предположим, что я пишу функцию print_stream
, которая считывает данные из istream
и выводит их на экран или что-то в этом роде.
Я считаю вполне разумным вызывать...
Может ли 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
.
У меня возник вопрос:...
Что нужно знать при погружении в многопоточное программирование на C++
Я сейчас разрабатываю приложение для беспроводных сетей на C++, и встал перед задачей, когда мне нужно будет многопоточно организовать работу программы в одном процессе, а не иметь их в отдельных процессах. В теории я понимаю, что такое многопоточность, но пока не погружался в практическую...
Эквивалент unique_ptr в Boost?
Проблема: Есть ли эквивалент класса std::unique_ptr из C++11 в библиотеке Boost?
Я ищу поведение, позволяющее создать безопасную для исключений фабричную функцию, вот так:
std::unique_ptr create_base()
{
return std::unique_ptr(new Derived);
}
void some_other_function()
{
...
Избежание неявного преобразования в конструкторе: ключевое слово 'explicit' здесь не помогает
Задача заключается в том, чтобы запретить создание объекта класса A
при передаче параметра типа double
, даже если конструктор помечен как explicit
. Я хочу, чтобы объекты класса A
могли создаваться только при передаче целочисленного параметра, например, A a1 = A(10);
.
Вот мой...
Как преобразовать код C++ в C [закрыто]
Проблема с преобразованием C++ кода в C
У меня есть код на C++, в котором определено множество классов, их методы, конструкторы и деструкторы, а также несколько шаблонных классов и много других элементов C++. Теперь мне нужно преобразовать этот исходный код в обычный C.
У меня возникли...
C++ вылетает в 'for' цикле с отрицательным выражением
Описание проблемы для StackOverflow:
Я столкнулся с проблемой в моем коде на C++, которая вызывает сбой с ошибкой выполнения. Вот код, который вызывает сбой:
#include
using namespace std;
int main() {
string s = "aa";
for (int i = 0; i < s.length() - 3; i++) {
...
Является ли ++*ptr++ некорректным поведением в C++?
Я столкнулся с вопросом на тесте (не хотел его придумывать сам, но тест это задал. Я понимаю, что код плохой) о том, как оценить выражение ++*ptr++
.
int Ar[] = { 6, 3, 8, 10, 4, 6, 7 };
int *Ptr = Ar;
cout << ++*Ptr++;
Однако у меня есть подозрение, что это может привести к...
Что такое бес блокировочное многопоточное программирование?
Я заметил, что многие люди, статьи и посты на Stack Overflow утверждают, что разработали свои собственные "безлоковые" контейнеры для многопоточного использования. Предполагая, что они не использовали прием с модулем, который может негативно сказаться на производительности (то есть каждый поток...
Использование futures в C++11: Вложенные вызовы std::async приводят к сбоям - ошибка компилятора или стандартной библиотеки?
Описание проблемы
После того как я столкнулся с падениями программы при использовании вложенных вызовов std::async
, я смог воспроизвести проблему в следующем минимальном примере. Ошибки происходят часто, но не всегда. Видите ли вы что-то, что может быть причиной проблемы, или это ошибка...
Копирование не нуль-терминированного массива unsigned char в std::string
У меня возникла проблема с копированием массива unsigned char
, который не заканчивается на нулевой символ, в объект std::string
. Если бы массив был с нулевым окончанием, задача была бы довольно простой:
unsigned char u_array[4] = { 'a', 's', 'd', '\0' };
std::string str =...
Инициализация std::string из char* без копирования
У меня возникла ситуация, в которой необходимо обрабатывать большие объемы данных (многие гигабайты) следующим образом:
- Создание большой строки путём подключения множества меньших (C char*) строк.
- Обрезка строки.
- Преобразование строки в неизменяемую C++ std::string для дальнейшей...