gen_tags.inl
来自「机器人开源项目orocos的源代码」· INL 代码 · 共 373 行 · 第 1/2 页
INL
373 行
| BOOST_PP_SEQ_ELEM( BOOST_PP_TUPLE_ELEM(6,0,tt) \ , BOOST_FT_BASE_FLAGS ) \ | BOOST_PP_TUPLE_ELEM(6,1,tt)# define t1 BOOST_PP_CAT(BOOST_FT_TYPE_FUNCTION_,BOOST_PP_TUPLE_ELEM(6,0,tt))// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// Add top-level type decoration to type function// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# if BOOST_PP_TUPLE_ELEM(6,2,tt) # define t2(n,o_name,o_cc,o_ell) \ t1( n \ , BOOST_PP_IDENTITY((o_cc() BOOST_PP_TUPLE_ELEM(6,3,tt) o_name())) \ , BOOST_PP_EMPTY \ , o_ell )# else# define t2(n,o_name,o_cc,o_ell) t1(n,o_name,o_cc,o_ell)# endif// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// Append cv qualifiers to type function result// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# if BOOST_PP_TUPLE_ELEM(6,4,tt) # define t3(n,o_name,o_cc,o_ell) \ t2(n,o_name,o_cc,o_ell) BOOST_PP_TUPLE_ELEM(6,5,tt)# else# define t3(n,o_name,o_cc,o_ell) t2(n,o_name,o_cc,o_ell)# endif// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// Iterate calling conventions// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# if BOOST_FT_FIRST_UNROLL_DIM == 1# define BOOST_PP_FILENAME_2 BOOST_FT_FRAGMENT(tags, CCs)# else# define BOOST_PP_FILENAME_3 BOOST_FT_FRAGMENT(tags, CCs)# endif# define BOOST_PP_ITERATION_LIMITS (0,BOOST_PP_SEQ_SIZE(tc)-1)# include BOOST_PP_ITERATE()// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# undef t3# undef t2# undef t1# undef f1# undef n1// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# undef tc# undef tn# undef tt# undef ti //------------------------------------------------------------------------------#elif BOOST_PP_ITERATION_DEPTH() == BOOST_FT_FIRST_UNROLL_DIM + 1 // CCs//------------------------------------------------------------------------------# if !defined(fi)# define fi BOOST_PP_FRAME_ITERATION(BOOST_PP_ITERATION_DEPTH())# define fc BOOST_PP_SEQ_ELEM(fi,tc)// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// Include name of cc in identifier name, encode cc id along with the flags// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# define n2 BOOST_PP_SEQ_CAT( (BOOST_PP_TUPLE_ELEM(3,0,fc))(_)(n1) )# define f2 f1 | (1 << ( BOOST_FT_N_FLAGS + fi ))// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --// Default cc // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --# if fi == 0 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// Curry type function with empty cc specifier// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# define t4(n,o_name,o_ell) t3(n,o_name,BOOST_PP_EMPTY,o_ell)// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// Abstract cc (no explicit identifier / no cc flags)// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# if defined(BOOST_FT_GEN_ABSTRACT)# define f3 f1# define n3 n1# define fv 1# include BOOST_FT_FRAGMENT(tags, vary variadic)# undef fv# undef n3# undef f3# endif// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// Non abstract cc (explicit identifier name ('defaultcall')// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# define f3 f2# define n3 n2// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// Create variadic version if default cc allowed for default cc or forced// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# define fv BOOST_PP_TUPLE_ELEM(3,2,fc)// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// Only continue if no custom CCs or forced// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# if BOOST_PP_SEQ_SIZE(tc) == 1 || defined(BOOST_FT_FORCE_DEF_CC)# include BOOST_FT_FRAGMENT(tags, vary variadic)# endif// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --// Custom cc// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --# else// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// Curry type function with cc specifier, name and flag are ok, for now// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# define t4(n,o_name,o_ell) \ t3(n,o_name,BOOST_PP_IDENTITY(BOOST_PP_TUPLE_ELEM(3,1,fc)),o_ell)# define n3 n2# define f3 f2// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# define fv BOOST_PP_TUPLE_ELEM(3,2,fc) # include BOOST_FT_FRAGMENT(tags, vary variadic)# endif// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# undef fv// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# undef t4# undef f3# undef f2# undef n3# undef n2// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# undef fc# undef fi//------------------------------------------------------------------------------# elif !defined(f) // vary variadic//------------------------------------------------------------------------------// Non-variadic function types// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --# define t(n,o_name) t4(n,o_name,BOOST_PP_EMPTY)// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// Abstract/implicit non-variadic variant, if requested// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# ifdef BOOST_FT_GEN_ABSTRACT# define f f3# define n4 n3# include BOOST_FT_FRAGMENT(tags, invoke client)# undef n4# undef f# endif// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// Explicit non-variadic variant (with identifier annotation and flag)// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# define f f3 | BOOST_FT_NON_VARIADIC_FLAG# define n4 BOOST_PP_SEQ_CAT((BOOST_FT_NON_VARIADIC_PREFIX)(_)(n3))# include BOOST_FT_FRAGMENT(tags, invoke client)# undef n4# undef f# undef t// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --// Variadic function types, if allowed/forced// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --# if fv# define f f3 | BOOST_FT_VARIADIC_FLAG# define n4 BOOST_PP_SEQ_CAT((BOOST_FT_VARIADIC_PREFIX)(_)(n3))# define t(n,o_name) t4(n,o_name,BOOST_PP_IDENTITY(...))# include BOOST_FT_FRAGMENT(tags, invoke client)# undef t# undef n4# undef f# endif// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# undef t# undef f# undef n4//------------------------------------------------------------------------------# elif !defined(n) // invoke client//------------------------------------------------------------------------------// Prepend pending identifier prefix/suffix, if any and invoke the client// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# if BOOST_PP_TUPLE_ELEM(4,0,tn)# define n5 BOOST_PP_SEQ_CAT((BOOST_PP_TUPLE_ELEM(4,1,tn))(_)(n4))# else# define n5 n4# endif// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# if BOOST_PP_TUPLE_ELEM(4,2,tn) == 1# define n BOOST_PP_SEQ_CAT((n5)(_)(BOOST_PP_TUPLE_ELEM(4,3,tn)))# else# define n n5# endif// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# include BOOST_FT_CLIENT// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# undef n# undef n5# endif//------------------------------------------------------------------------------#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?