Hi there,
is it possible to find all type vectors in a type matrix ( 2D type
vector ) that match a predicate? In the end I would like to have them
in another type matrix.
Can somebody point out how I would put together such a metafunction?
I'm not sure if the mpl lib supports my feature request.
Consider the following code:
#include "boost/mpl/vector.hpp"
#include
#include
using namespace std;
using namespace boost;
namespace fields
{
struct id {};
struct name {};
struct address {};
struct birthday {};
}
namespace tags
{
struct primary {};
struct foreign {};
struct no_key {};
}
typedef mpl::vector id_field_t;
typedef mpl::vector name_field_t;
typedef mpl::vector address_field_t;
typedef mpl::vector birthday_field_t;
typedef mpl::vector< id_field_t
, name_field_t
, address_field_t
, birthday_field_t
> table;
// aggregate all foreign keys in the following vector
typedef mpl::vector0<> foreign_keys;
/// ??? metafunction for aggregating all foreign keys ???
int main()
{
return 0;
}
BTW, I'm not particular interested in a certain order of the
aggregated type vectors.
Reagrds,
Christian