#include #include "test.hpp" #define MATRIX(M, N) \ CHECK((metal::is_invocable, VALUE(M)>), (TRUE)); \ CHECK((metal::is_invocable, NUMBER(M)>), (TRUE)); \ CHECK((metal::is_invocable, PAIR(M)>), (TRUE)); \ CHECK((metal::is_invocable, LIST(M)>), (TRUE)); \ CHECK((metal::is_invocable, MAP(M)>), (TRUE)); \ CHECK((metal::is_invocable, LAMBDA(M)>), (TRUE)); \ CHECK((metal::is_invocable, LAMBDA(_)>), (TRUE)); \ CHECK((metal::invoke COMMA(N) VALUES(N)>), (VALUE(M))); \ CHECK((metal::invoke COMMA(N) VALUES(N)>), (NUMBER(M))); \ CHECK((metal::invoke COMMA(N) VALUES(N)>), (PAIR(M))); \ CHECK((metal::invoke COMMA(N) VALUES(N)>), (LIST(M))); \ CHECK((metal::invoke COMMA(N) VALUES(N)>), (MAP(M))); \ CHECK((metal::invoke COMMA(N) VALUES(N)>), (LAMBDA(M))); \ CHECK((metal::invoke COMMA(N) VALUES(N)>), (LAMBDA(_))); \ /**/ GEN(MATRIX)