LINUX.ORG.RU

История изменений

Исправление MOPKOBKA, (текущая версия) :

И что мне мешает передать цельсии в конструктор для фаренгейта?

Компилятор

// Цельсий
struct C { double value; };
// Фаренгейт
struct F { double value; };

C operator ""_C(long double);
F operator ""_F(long double);

// Цельсии в фаренгейты
F c2f(C x) {
    return { x.value * 123 };
}

int main() {
    // Температура в фаренгетах
    auto temp = 10.0_F;
    auto temp_in_f = c2f(temp); // gcc error: could not convert 'temp' from 'F' to 'C'
}

Исправление MOPKOBKA, :

И что мне мешает передать цельсии в конструктор для фаренгейта?

// Цельсий
struct C { double value; };
// Фаренгейт
struct F { double value; };

C operator ""_C(long double);
F operator ""_F(long double);

// Цельсии в фаренгейты
F c2f(C x) {
    return { x.value * 123 };
}

int main() {
    // Температура в фаренгетах
    auto temp = 10.0_F;
    auto temp_in_f = c2f(temp); // gcc error: could not convert 'temp' from 'F' to 'C'
}

Исправление MOPKOBKA, :

И что мне мешает передать цельсии в конструктор для фаренгейта?

// Цельсий
struct C { double value; };
// Фаренгейт
struct F { double value; };

C operator ""_C(long double);
F operator ""_F(long double);

// Цельсии в фаренгейты
F c2f(C x) {
    return { x.value * 123 };
}

int main() {
    // Температура в фаренгетах
    auto temp = 10.0_F;
    auto temp_in_f = c2f(temp); //could not convert 'temp' from 'F' to 'C'
}

Исправление MOPKOBKA, :

И что мне мешает передать цельсии в конструктор для фаренгейта?

// Цельсий
struct C { double value; };
// Фаренгейт
struct F { double value; };

C operator ""_C(long double);
F operator ""_F(long double);

// Цельсии в фаренгейты
F c2f(C x) {
    return { x.value * 123 };
}

int main() {
    // Температура в фаренгетах
    auto temp = 10.0_F;
    auto r = c2f(temp); //could not convert 'temp' from 'F' to 'C'
}

Исправление MOPKOBKA, :

// Цельсий
struct C { double value; };
// Фаренгейт
struct F { double value; };

C operator ""_C(long double);
F operator ""_F(long double);

// Цельсии в фаренгейты
F c2f(C x) {
    return { x.value * 123 };
}

int main() {
    // Температура в фаренгетах
    auto temp = 10.0_F;
    auto r = c2f(temp); //could not convert 'temp' from 'F' to 'C'
}

Исходная версия MOPKOBKA, :

struct C {
    double value;
};

struct F {
    double value;
};

C operator ""_C(long double);
F operator ""_F(long double);

F c2f(C x) {
    return { x.value * 123 };
}

int main() {
    auto temp = 10.0_F;
    auto r = c2f(temp); //could not convert 'temp' from 'F' to 'C'
}