У меня есть удобный класс на С++, который можно инициализировать либо с помощью double
, либо с помощью char*
. Все работает как ожидалось, за исключением одного случая, когда аргумент равен нулю.
struct Var {
Var (double src) {}
Var (char *src) {}
};
int main(int argc, char* argv[]) {
Var A = 123;
Var B = "abc";
Var C = 0; <- Error: conversion from 'int' to 'Var' is ambiguous
}
Раньше я использовал int
вместо double
, и по какой-то причине это было нормально.
Как это можно зафиксировать?
PS: Я знаю, что могу использовать (double)0
или просто 0.0
, но есть ли способ разрешить только 0
принимать как double?