Size: a a a

2021 February 16

D

Danya in supapro.cxx
Constantine Drozdov
а то и вот такие шуточки бывают
struct A {};
struct B {
   constexpr B(A& a) : x(1) {}
   constexpr B(B const&) : x(2) {}
   int x;
};
struct C : A, B {
  constexpr C() : A(), B(*this) {}
};

static_assert(C{}.x != 2);
Ужасно
источник

CD

Constantine Drozdov in supapro.cxx
Danya
Ужасно
угу, я полчаса о*евал в отладчике от происходящего
источник

D

Danya in supapro.cxx
Пора уже ломать обратную совместимость, чтобы языку легче стало
источник

CD

Constantine Drozdov in supapro.cxx
ну объективно говоря это баг вижака, по стандарту тут ошибка компиляции
источник

D

Danya in supapro.cxx
А то так программисты задохнутся
источник

D

Danya in supapro.cxx
Constantine Drozdov
ну объективно говоря это баг вижака, по стандарту тут ошибка компиляции
Ambiguous call?
источник

CD

Constantine Drozdov in supapro.cxx
ну по крайней мере непонятно, почему одно преобразование лучше другого, и clang/gcc дают ambiguous
источник

Д

Дима in supapro.cxx
источник

Д

Дима in supapro.cxx
как сравнить 2 стринга?
источник

LA

Liber Azerate in supapro.cxx
Дима
как сравнить 2 стринга?
Напрямую s1 == s2
источник

Д

Дима in supapro.cxx
Liber Azerate
Напрямую s1 == s2
посмотрите скрин, оно не хочет так
источник

LA

Liber Azerate in supapro.cxx
Дима
посмотрите скрин, оно не хочет так
Это уже не напрямую, там c_str()
источник

Д

Дима in supapro.cxx
Liber Azerate
Это уже не напрямую, там c_str()
а, да, спасибо
источник

Д

Дима in supapro.cxx
подскажите как проще сделать
нужно сгенерировать 3 случайных числа от 1 до 1000
новое число должно быть как минимум больше или меньше на 100 каждого сгенерированного числа до этого

правильно 12 563 132
неправильно 1 839 788
источник

CD

Constantine Drozdov in supapro.cxx
Дима
подскажите как проще сделать
нужно сгенерировать 3 случайных числа от 1 до 1000
новое число должно быть как минимум больше или меньше на 100 каждого сгенерированного числа до этого

правильно 12 563 132
неправильно 1 839 788
определить ширину диапазона следующего числа, сгенерировать число меньше ширины диапазона, определить какому значению диапазона сгенерированное число соответствует
источник

Д

Дима in supapro.cxx
👍
источник

CD

Constantine Drozdov in supapro.cxx
ну или со словами "это вообще-то О(1)" повторять наивную генерацию при неудаче
источник

d

d7d1cd in supapro.cxx
jon pedro
День добрый, в чем особенность приведение типов в плюсах (те что с cast) в сравнении с сишным?
Это я к чему, вот не совсем понимаю чем static_cast отличается от классического указания типа в скобочках ? Или же reinterpreted_cast от того же самого. Работает со стороны примерно одинаково, как мне кажется
источник

К

Касиет in supapro.cxx
Дана матрица Н[5,6]. В каждом столбце матрицы найти и вывести минимальный элемент . Если их сумма превышает 10, то все отрицательные элементы матрицы заменить на эту сумму, иначе их заменить на 1.  Вывести полученную матрицу.

#include <iostream>
#include <string>
#include <cmath>
#include <cstdlib>
using namespace std;

int getRandomNumber(int min, int max)
{
    static const double fraction = 1.0 / (static_cast<double>(RAND_MAX) + 1.0); 
    return static_cast<int>(rand() * fraction * (max - min + 1) + min);
}

int main()
{
    int N = 11; 
    int A[N];
    int count = 0;
    cout<<"A[";
    for (int i = 0; i < N; i++){
        A[i] = getRandomNumber(-100, 100);
        cout<<A[i]<<" ";
        if (A[i] < 0){
            count++;
        }
    }
    cout<<"]"<<endl;
    cout<<"A[";
    for (int i = 0; i < N; i++){
        if (count > 5){
            if(A[i] == 0){
                A[i] == 0;
            }
        }else {
            if (A[i] < 0){
                A[i] += 200;
            }
        }
        cout<<A[i]<<" ";
    }
    cout<<"]"<<endl;
    
    
}
источник

C

CodeDetector in supapro.cxx
Касиет
Дана матрица Н[5,6]. В каждом столбце матрицы найти и вывести минимальный элемент . Если их сумма превышает 10, то все отрицательные элементы матрицы заменить на эту сумму, иначе их заменить на 1.  Вывести полученную матрицу.

#include <iostream>
#include <string>
#include <cmath>
#include <cstdlib>
using namespace std;

int getRandomNumber(int min, int max)
{
    static const double fraction = 1.0 / (static_cast<double>(RAND_MAX) + 1.0); 
    return static_cast<int>(rand() * fraction * (max - min + 1) + min);
}

int main()
{
    int N = 11; 
    int A[N];
    int count = 0;
    cout<<"A[";
    for (int i = 0; i < N; i++){
        A[i] = getRandomNumber(-100, 100);
        cout<<A[i]<<" ";
        if (A[i] < 0){
            count++;
        }
    }
    cout<<"]"<<endl;
    cout<<"A[";
    for (int i = 0; i < N; i++){
        if (count > 5){
            if(A[i] == 0){
                A[i] == 0;
            }
        }else {
            if (A[i] < 0){
                A[i] += 200;
            }
        }
        cout<<A[i]<<" ";
    }
    cout<<"]"<<endl;
    
    
}
Оберните код в теги: 3 символа ` до и после кода (в случае одиночной конструкции достаточно 1 ` с обеих сторон). Спасибо!
источник