Swig c ++ для конструктора пользовательских типов lua распознает строку как двойную - PullRequest
1 голос
/ 17 апреля 2019

Я пытаюсь вернуть свою структуру 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?

...