int может быть преобразован в tiscript::value
при этом компилятор молчит
Если передать скриптовой функции int вместо tiscript::value она его с радостью примет, после чего получаем undefined behaviour.
Когда проект приближается по объему к "среднему", то уже достаточно сложно выявлять такие ошибки, а происходят они увы механически
.
Идея в том чтобы такие ошибки отлавливались на стадии компиляции, т.е. определить tiscript::value в external API аналогично тому как определен HWND
т.е. как то так:
struct HWND__
{
int unused;
};
typedef struct HWND__ *HWND;