Я пытаюсь вернуть свою структуру C ++ в lua, используя Swig, и я хочу, чтобы два конструктора принимали в качестве аргументов string или double.
struct MyType
{
MyType(const std::string & arg)
{
std::cout << "string constructor\n";
}
MyType(double arg)
{
std::cout << "double constructor\n";
}
}
В Lua работает
MyType("3.14")
> double constructor
strInput = "3.14"
print(type(strInput))
> string
MyType(strInput)
> double constructor
Более того, похоже, что строка анализируется на удвоение.Поэтому, если бы я хотел напечатать аргумент из конструктора double, это было бы 3.14.
Может ли быть какое-то неявное преобразование в double?