0403 (연구 필요) 동적으로 메서드 부르기

(연구 필요) 동적으로 메서드 부르기

밑에거 외에도
Variant는 물론이고  (이거 구현은 via인터프리터 참고)

class Function:
    std::vector<VariantType> args_format;
    bool returns_value;
    VariantType return_format;
    ...


class Test {
public:
    void Wrapped_set_position(const std::vector<Variant>& args) {
        auto v = args[0].as<Vector2>();

        this->set_position(v);

        switch (args[0].type) {
        case VariantType::Vector2: {
            std::cout << "position changed : " << v << "\n";
        }
        }
    }
public:
    void call(const std::string& name, const std::vector<Variant>& args) {
        auto fn = m_fn_table[name];
        fn(args);
    }
};

애초에 이렇게 하는 게 국룰이고
고도도 이런 식으로 되어있음