История изменений
Исправление 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'
}