是否可以在类头之外移动odb(c ++ orm like framework)pragma? 例如,我定义了只有id的类basic_object(abstract):
class basic_object {
int _id;
public:
int get_id() const;
void set_id(int _id);
};
然后在另一个文件中为该类创建编译指示
#pragma db object(basic_object) abstract
#pragma db member(basic_object::_id) get(get_id) set(set_id) id auto
答案 0 :(得分:0)
是的,你可以,它被称为名为pragma 。
在你的其他文件中你必须写
#pragma db object(basic_object)
#pragma db member(basic_object::_id) id
然后你必须告诉odb编译器在哪里寻找。您可以通过添加
来执行此操作#ifdef ODB_COMPILER
#include "other_file.hxx"
#endif
到原始文件或 使用
- odb-epilogue' #include" other_file.hxx"'
作为odb编译器的参数。
但是您给出的示例类basic_object
中存在一个问题:您的数据字段_id
是私有的。您可以通过
宣布公开
或
将odb访问类作为您班级中的朋友添加:
private:
friend class odb::access;