如何确定 boost.preprocessor 元组中的元素计数?

发布于 2024-09-25 10:19:23 字数 154 浏览 8 评论 0原文

如何确定 boost.preprocessor 元组?

How to determine elements count in boost.preprocessor tuple`s ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

吃→可爱长大的 2024-10-02 10:19:23

Boost 1.49 已经有了 BOOST_PP_TUPLE_SIZE 宏

Boost 1.49 already has BOOST_PP_TUPLE_SIZE macro

刘备忘录 2024-10-02 10:19:23

你不知道。这就是为什么每个使用元组的宏都要求您指定元组的大小。您可以尝试基于 2 元组执行某些操作,其中第一个值是第二个值的大小:

#define MyTuple (2,(a,tuple))
#define MyTupleSize( S_ ) BOOST_PP_TUPLE_ELEM( 2, 0, S_ )
#define GetMyTuple( S_, I_ ) BOOST_PP_TUPLE_ELEM( MyTupleSize(S_), I_, BOOST_PP_TUPLE_ELEM(2, 1, S_ ) )
MyTupleSize( MyTuple ) // this is '2'
GetMyTuple( MyTuple, 1 )// this is 'tuple'

不幸的是,除了了解元组或将其存储在已知大小的元组或列表中之外,没有其他方法可以确定元组的大小ETC。

You don't. That's why every macro that uses tuples requires you to specify the size of the tuple. You could try doing something based on a 2 tuple where the first value is the size of the second:

#define MyTuple (2,(a,tuple))
#define MyTupleSize( S_ ) BOOST_PP_TUPLE_ELEM( 2, 0, S_ )
#define GetMyTuple( S_, I_ ) BOOST_PP_TUPLE_ELEM( MyTupleSize(S_), I_, BOOST_PP_TUPLE_ELEM(2, 1, S_ ) )
MyTupleSize( MyTuple ) // this is '2'
GetMyTuple( MyTuple, 1 )// this is 'tuple'

Unfortunately there is no way to determine the size of a tuple other than to know it or store it in a known sized tuple or in a list etc.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文