InstanceCreator::Invoke#
-
template<typename ...Args>
inline NamedInstance<GetClassOfWorker<Creator>> YR::internal::InstanceCreator::Invoke(Args&&... args)# 执行实例的创建并构建类的对象。
// 示例:创建一个实例并调用其成员函数 int main(void) { YR::Config conf; YR::Init(conf); auto ins = YR::Instance(SimpleCaculator::Constructor).Invoke(); // 创建实例 auto r3 = ins.Function(&SimpleCaculator::Plus).Invoke(1, 1); // 调用成员函数 int res = *(YR::Get(r3)); // 获取结果 return 0; }
Warning
确保提供的参数与构造函数预期的类型和数量完全匹配,以避免编译错误。通过此方法创建的实例仅设计用于与类的成员函数配合使用。
Note
此方法构建类的一个实例,并确保该实例只能执行属于该类的成员函数请求。返回的命名实例允许你调用该类的成员函数。
- 模板参数:
Creator - 用于构建实例的工作函数的类型。
Args - 工作函数的构造函数所需参数的类型。
- 参数:
args - 工作函数的构造函数所需的参数。参数的类型和数量需与构造函数的定义完全匹配。确保传递的参数类型精确符合预期,以避免因隐式类型转换导致的问题。
- 返回:
NamedInstance<GetClassOfWorker<Creator>>:一个命名实例,可以通过 Function 方法调用类的成员函数,适用于面向对象编程场景。