그래서 어떤 종류의 범위에서 정의 된 구조화 된 데이터를 저장하기위한 파일 형식으로 작업하고 있습니다. 가장 간단한 예제는 시간이 지남에 따라 float 값과 같은 것이지만, 각 포인트에서 여러 차원과 임의의 데이터를 허용하도록 설계하고 있습니다. 파일 헤더에 데이터의 구조를 저장하고 싶습니다. 일부 청초한 기능을 사용할 수 있기 때문입니다.C++에서 구조체 정의를 검사하고 있습니까?
는 처음에 나는 사용자가 클래스의 계층 구조를 사용하여 데이터 구조를 구축 거라고 생각했다, 그래서 당신은 같은 것을 할 수있는 :
pf_type data = record(PF_DOUBLE) (
record("position")(
field("xp") &
field("yp") &
field("zp")) &
record("velocity")(
field("xv") &
field("yv") &
field("zv")) &
record("acceleration")(
field("xa") &
field("ya") &
field("za")));
C에서 이런 일에 해당하는 것 :
struct {
struct position {
double xp,yp,zp;
}
struct velocity {
double xv,yv,zv;
}
struct acceleration {
double xa,ya,za;
}
}
끔찍한 것은 아니지만 사용자가 데이터 읽기/쓰기시 실제로 사용할 구조체를 별도로 정의해야합니다.
필자는 라이브러리에 전달한 일반 C-struct를 정의 할 수 있으면 정보를 파일에 기록하기 위해 introspect하면된다고 생각했습니다. 비록 내가 C + +에서 원격으로 가능할 지 모르겠지만. 내 생각에 그것은 일부 템플릿 메타 프로그래밍 마법을 사용하고있을 수도 있지만 매우 지저분 할 것입니다. 그래서 저는 C++에 대해 더 많이 알고있는 사람들로부터 아이디어를 얻기를 바랍니다.
당신은 본질적으로 DSL을 만들고 더 수반 노력을 이겨내는 없다있어). – wheaties
나는 wheaties에 동의하지만 더 적극적으로 공식화하겠습니다. 당신이하고있는 일은 좋은 생각입니다. 즉, 그것은 건전한 디자인이며, 우리가 당신을 단념하게하지 마십시오. C++은 이런 종류의 작업에 거의 도움이되지 않습니다. –
그게 내가 생각한거야, 난 기본적으로 템플릿을 사용하여 구조 파서를 써야겠다고 생각, ick. –