是否有更简单的方法来显示控件中的struct
字段及其对应的值RichEdit
?
这就是我现在正在做的事情:
AnsiString s;
s = IntToStr(wfc.fontColor);
RichEdit1->Lines->Append(s);
Run Code Online (Sandbox Code Playgroud)
等等...
有没有比单独呼叫每个人更简单的方法?我想读取一个二进制文件,然后在RichEdit
我正在构建的小实用程序的控件中显示相应的结构,并且没有找到其他方法.我知道如何读取二进制文件并将值读入struct
已经存在的文件中.
两个stackoverflow 答案建议使用fusion adapt_struct迭代结构字段的方法.这种方法看起来不错.但是,如何迭代到一个本身就是结构的字段?
根据之前的答案,我想出了下面的代码.问题出在代码无法编译的"#if 0"子句中.作为替代解决方案,我创建了"decode()"函数来获取指向目标参数的void指针.这有效,但在编译时丢失了类型信息.有更好的解决方案吗?
struct Foo_s { int i; };
BOOST_FUSION_ADAPT_STRUCT( Foo_s, (int, i) )
struct Bar_s { int v; Foo_s w; };
BOOST_FUSION_ADAPT_STRUCT( Bar_s, (int, v) (Foo_s, w) )
struct AppendToTextBox {
template <typename T> void operator()(T& t) const {
int status = 0;
const char *realname = abi::__cxa_demangle(typeid(t).name(), 0, 0, &status);
printf(" typename: %s value: %s realname: %s\n", typeid(t).name(),
boost::lexical_cast<std::string>(t).c_str(), realname);
std::string rn(realname);
if ( rn.rfind("_s") == rn.size()-2 ) {
#if 0 /* this can …
Run Code Online (Sandbox Code Playgroud) c++ reflection introspection boost-fusion template-meta-programming