now the debug print is working
This commit is contained in:
parent
bc3b93b942
commit
1e275de79b
1 changed files with 23 additions and 28 deletions
51
print.hpp
51
print.hpp
|
@ -520,39 +520,34 @@ REFL_END
|
||||||
REFL_TYPE(llama_data_file_context)
|
REFL_TYPE(llama_data_file_context)
|
||||||
REFL_FIELD(file)
|
REFL_FIELD(file)
|
||||||
REFL_END
|
REFL_END
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
constexpr auto get_value_type_name(const T t) noexcept
|
||||||
|
{
|
||||||
|
return t.value_type;
|
||||||
|
}
|
||||||
|
|
||||||
// // A generic function to print out the fields of any object
|
// // A generic function to print out the fields of any object
|
||||||
template<typename T>
|
template<typename T>
|
||||||
void print_fields(const T& ) {
|
void print_fields(const T& t) {
|
||||||
//return;
|
refl::runtime::debug(std::cout, t);
|
||||||
// // Get the type descriptor of the object
|
|
||||||
constexpr auto type = refl::reflect<T>();
|
constexpr auto type = refl::reflect<T>();
|
||||||
|
|
||||||
// // Print the type name
|
constexpr auto membertype = refl::member_list<T>();
|
||||||
// std::cout << "DEBUG:" << TypeName<T>.fullname_intern() << "\n";
|
|
||||||
|
constexpr auto members = get_members(type);
|
||||||
std::cout << "DEBUG Type: " << type.name.c_str() << "\n";
|
std::cout << "DEBUG Type: " << type.name.c_str() << "\n";
|
||||||
|
std::cout << "DEBUG Type2: " << typeid(membertype).name() << "\n";
|
||||||
// T instance{};
|
std::cout << "DEBUG Type3: " << typeid(members).name() << "\n";
|
||||||
//for_each(refl::reflect<T>().members, [&](auto member) {
|
refl::util::for_each(members, [&](auto member) {
|
||||||
|
//using member_t = decltype(member::value_type);
|
||||||
//std::cout << "MEMBER:" << member.name.str() << "\n";
|
//typename type3 = member::value_type;
|
||||||
|
//typename trait::remove_qualifiers_t<member_t>::value_type>;
|
||||||
//});
|
//constexpr auto type2 = refl::reflect(type3);
|
||||||
|
//std::cout << "Auto:" << foo <<"\n";
|
||||||
refl::util::for_each(type.members, [&](auto member) {
|
std::cout << "Auto:" << member.name <<"\n";
|
||||||
|
//std::cout << "DEBUG Type2: " << typeid(member_t).name() << "\n";
|
||||||
//auto member1 = member(t);
|
//std::cout << "DEBUG Type2: " << type2.name.c_str() << "\n";
|
||||||
//if(member1){
|
|
||||||
std::cout << "Auto:" << member.name <<"\n";
|
|
||||||
//if(member1){
|
|
||||||
//print_fields(member1);
|
|
||||||
//}
|
|
||||||
//}
|
|
||||||
//else {
|
|
||||||
//std::cout << "NULL:" << member.name <<"\n";
|
|
||||||
//}
|
|
||||||
});
|
});
|
||||||
std::cout << "\n";
|
std::cout << "\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue