是否可以在单个语句中定义(或调整)包含成员Boost Fusion结构的Boost Fusion结构?
例如,我如何调整或定义与此相当的东西:
public class PersistenceUtil {
private static EntityManagerFactory entityManagerFactory;
static {
entityManagerFactory = Persistence.createEntityManagerFactory("testdb");
}
public static EntityManager getEntityManager() {
final EntityManager entityManager = entityManagerFactory.createEntityManager();
return entityManager;
}
public static void closeEntityManagerFactory() {
entityManagerFactory.close();
}
}
public class TestClass {
public static void main(String[] args) {
final EntityManager em = PersistenceUtil.getEntityManager();
final EntityTransaction transaction = em.getTransaction();
transaction.begin();
final TestTable testTable = new TestTable();
testTable.setData("Sample Data");
em.merge(testTable);
transaction.commit();
em.close():
PersistenceUtil.closeEntityManagerFactory()
}
}
struct Outer
{
int i;
float j;
struct Nested
{
int a;
} nested;
};
和Outer
都是可反映的类型。
以内到外的顺序定义所有内部类型非常混乱,并在外部公开内部类型。
答案 0 :(得分:3)
你应该能够定义'内部结构使用其完全限定名称:
BOOST_FUSION_ADAPT_STRUCT(
Outer::Nested,
a
)
BOOST_FUSION_ADAPT_STRUCT(
Outer,
i,
j,
nested
)