Как получить то же самое в С++?
uint8_t foo[] = {7, 7};
int i = foo[0] + 256 * foo[1];
В js я могу получить это так
…Int8Array
…
invalid abstract return type ‘Axis<unsigned int>’
Почему возникает ошибка?
Axis<unsigned int>
-- абстрактный тип, а ты пытаешься вернуть объект такого типа.Команда сборки:
D:\mingw\mingw64\bin\g++.exe -fdiagnostics-color=always -g D:\running\code\parser.cpp -o D:\running\code\parser.exe
D:\mingw\mingw64\bin\g++.exe -fdiagnostics-color=always \
-g D:\running\code\parser.cpp \
-L<путь куда ты установил libgq> -lgq \
-o D:\running\code\parser.exe
Было бы логично увидеть, что происходит вызов deleting dtor внутри которого происходит вызов base object dtor.
Почему в ассемблерном листинге gcc нет тела деструктора [complete object destructor]?
.globl _ZN6ObjectD1Ev
.set _ZN6ObjectD1Ev,_ZN6ObjectD2Ev
внутри виртуальных деструкторов не используется виртуализация
Имеется код вида
int64_t a = b/c
b и c какие-то произвольные числа
требуется записать 0 в переменную a, если произошел SIGFPE.
Проверять значения b и c не вариант, нужно как-то задавать значение для a в обработчике сигнала.
Что делать, если появляется непонятная ошибка после запуска c++ кода?
это исходный код.
thread my_thread1(&connecter); if(connfd == true)
int connfd
с bool true
, а вторая -- ты делаешь это main
и connecter
. Когда ты эту гонку исправишь, жизнь твоя, скорее всего, наладится. Непонятно, правда, зачем ты вызываешь accept
в параллельном потоке вместо того, чтобы сделать это синхронно, прямо в main
. По какой причине не видятся методы .x .y
sqrt(x<T>()^2 + y<T>()^2);
var_type name (var_type value = 0) { \
<T>
. А когда ты так сделаешь, x
и y
станут независимыми именами, и чтобы компилятор их нашёл в родительском классе надо будет либо добавить перед ними this->
, либо как-нибудь ещё ему подсказать.template<typename T>
float DVector(2)<T>::length()
{
return sqrt(this->x()^2 + this->y()^2);
}
^2
-- это (без дополнительных усилий) не возведение в квадрат. Не понимаю, откуда эта ошибка появляется
template <typename T>
void create_huge_matrix(std::vector<std::vector<T>>& matrix, T lowerLimit);
std::vector<std::vector<double>>
, а второй -- int
:create_huge_matrix(matrix_s, 5);
create_huge_matrix(matrix_p);
перегрузка оператора должна скалярно умножать два массива. Под этим подразумевается, например: массив1 - 3,2; массив2 - 5,1, скалярное умножение: 3*5 + 2*1 = 17
LabArray operator* (const LabArray& other) { double sum = 0; for (int i = 0; i < size; ++i) { sum += Array[i] * other.Array[i]; } return sum; }
isdigit
int count_students;
cin >> count_students;
cin >> count_students;
if (cin.fail()) {
cout << "Неправильные входные данные. Попробуйте еще раз.";
cin.clear();
cin.ignore();
goto Step1;
}
Ne sovsem ponyatno kak ispravit
../deps/source-sdk-2013/mp/src/public/tier0/threadtools.h:1130
А в чем заключаются эти ошибки, я не могу понять
"push edi"
"push esi"
"mov edx,lenS"
...
как их исправить
мне бы не помешали еще примеры хорошие
#include <iostream>
int main()
{
char s1[] = "Hola queridos amigos";
char tmp;
asm ("mov (%[left]), %[tmp]\n\t"
"xchg (%[right]), %[tmp]\n\t"
"mov %[tmp], (%[left])\n\t"
: [tmp] "=&q"(tmp)
: [left] "r"(s1), [right] "r"(s1 + sizeof(s1) - 2)
: "memory");
std::cout<<s1<<std::endl;
return 0;
}