All streams
Search
Write a publication
Pull to refresh
15
0
Дмитрий Ефименко @Duny

Разработчик

Send message
Особенно круто выглядит, как она проезжает лабиринт по диагонали
Убедитесь сами:

class Integer
{
private:
    int value;
public:
    Integer(int i): value(i) 
    {}
    friend const Integer operator+(const Integer& left, const Integer& right);

    friend Integer& operator+=(Integer& left, const Integer& right);

    Integer operator-(const Integer& i) { value= -value; return *this; }

    friend bool operator==(const Integer& left, const Integer& right);
};

const Integer operator+(const Integer& left, const Integer& right) {
    return Integer(left.value + right.value);
}

Integer& operator+=(Integer& left, const Integer& right) {
    left.value += right.value;
    return left;
}

bool operator==(const Integer& left, const Integer& right) {
    return left.value == right.value;
}

int main ()
{
    Integer i = 0, j = 1;
    i - j = 0;
    i - 1 = 0;
}
Речь идет не о семантике копирования, а о семантике операторов вообще.
К примеру, если существует перегрузка Integer Integer::operator-(const Integer& i), возвращающая неконстантный объект, то становится возможным существование следующего кода:

Integer a = 0, b = 1;
a — b = 2;
// или запись вот таких забавных уравнений:
Integer x = 1;
x — 1 = 0;

Cо встроенным int такое, конечно, не работает.
Нет никаких проблем с тем, чтобы перегрузить оператор «запятая» в виде функции-не-члена класса.

#include <iostream>

class A {};

const A& operator, (const A& a, int i)
{
    cout << i << " ";
    return a;
}

int main()
{
    A a;
    a, 1, 2, 3;
}


Все это верно, если я правильно понял значение «бинарного,».
Запрещена перегрузка оператора возведения в степень (как в Fortran) "**".

В С++ нет оператора возведения в степень
Было интересно прочесть, но, простите, какое это имеет отношение к IT-тематике Хабра?
Про «доказательство на компьютере» говорили часто, но никогда не упоминали метод доказательства. Я не представлял другого способа кроме перебора всего бесконечного множества натуральных чисел, поэтому заявление о доказательстве на компьютере вызывало во мне смутные сомнения.
Он подразумевал нечто попроще монструозного 130 страничного доказательства, разобраться в котором по силам немногим)
У нас препод по матану обещал за доказательство автомат. Такой вот math joke :)
Небольшое дополнение для пользователей Windows.
Консольный клиент (Git Bash) ищет приватный ключ ssh по пути ~/.ssh. Узнать, где находится этот каталог можно выполнив:
cd ~
pwd
Игорь Павлов, разработчик 7-Zip, не принимает в проект сторонний код
Можно, но это действие не принесет результатов. Распакованные коды Хаффмана по сути предсталяют из себя «сырые» PCM-данные. Wav-файлы 7-Zip сжимает сравнительно плохо.
Все верно, любой архиватор поступает аналогичным способом. Было бы удивительно при распаковке архива получить не те файлы, которые в него были упакованы.
Файлы остаются теми же, какими они были до упаковки, бит-в-бит.

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Date of birth
Registered
Activity