我正在使用 pybind11 为某些 C++ 代码实现 python 绑定。现在我正在尝试为绑定编写单元测试。
class A在 C++ 中有一个像这样的构造函数:
class A
{
A(std::unique_ptr<B> B_ptr);
}
Run Code Online (Sandbox Code Playgroud)
它接受 aunique_ptr到 的对象class B。class B是一个可以派生的抽象基类。我编写了class B可以从 Python 派生的绑定。是否有可能创建unittest.mock用于派生的 Python 模拟,class B以便A在其构造函数中接受模拟?
我有一个struct这样的:
struct A
{
int a;
std::variant<int, float, char> b;
A() = default;
};
Run Code Online (Sandbox Code Playgroud)
我想添加一个构造函数来初始化a和b。看来我必须写一个构造函数中的所有类型b一样A::A(int a1, int b1),A::A(int a1, float b1)等等。
有没有办法避免这种情况?