$darkmode
xmagic.hpp File Reference
#include <type_traits>
#include <fable/fable_fwd.hpp>
#include <fable/schema/confable.hpp>
#include <fable/schema/interface.hpp>
Include dependency graph for xmagic.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

template<typename T , typename S = std::string, std::enable_if_t< std::is_base_of_v< Confable, T >, int > = 0>
auto fable::schema::make_prototype (S &&desc="")
 

Detailed Description

See also
fable/schema.hpp
fable/schema_test.cpp

This file defines the make_prototype functions that can automatically derive the prototype via the make_schema functions. It also contains the definitions of constructors that make use of these functions.

Unfortunately, all make_schema functions need to already be defined at the point of definition of these constructors, which is why they have to be in this file in the first place.

So we declare the constructors in their relative class definitions, and we define them here. This file is then included after all other files. And then it works.