Header file class.hpp

#include "sourceinfo.hpp"

namespace cpp
{
    namespace static_reflection
    {
        namespace meta
        {
            template <typename SourceInfo_, typename Class_, typename Methods_, typename Fields_, typename Constructors_, typename Classes_, typename Enums_>
            class Class
            {
            public:
                using class_type = Class_;
                
                using type = class_type;
                
                using SourceInfo = SourceInfo_;
                
                using Methods = Methods_;
                
                using Fields = Fields_;
                
                using Constructors = Constructors_;
                
                using Classes = Classes_;
                
                using Enums = Enums_;
            };
        }
        
        namespace codegen
        {
            template <typename T>
            class Class
            : public static_reflection::meta::Class<static_reflection::meta::EmptySourceInfo<T>, T, ::cpp::meta::list<>, ::cpp::meta::list<>, ::cpp::meta::list<>, ::cpp::meta::list<>, ::cpp::meta::list<> >
            {};
        }
        
        template <typename T>
        class Class;
    }
}

Class template cpp::static_reflection::Class<T>

template <typename T>
class Class
: public codegen::Class<T>
{};

Returns static reflection information of a given class

This template returns (inherits) a cpp::static_reflection::meta::Class instance with the information of the given class type. If there’s no static reflection information of this class in the current translation unit, returns an empty cpp::static_reflection::meta::Class instance (Default “unknown” source info, empty methods, ctors, enums, and classes lists, etc). The behavior is undefined if the given type is not a class type.

See cpp::static_reflection::meta::Class for the returned information.

Parameters: