【问题标题】:Checking the size of a tr1 array at compile time在编译时检查 tr1 数组的大小
【发布时间】:2011-02-07 02:06:16
【问题描述】:

我刚刚发现 boost::array::static_size 不是 tr1::array 的一部分,或者至少它不在我的实现中(GCC 4.2.1),我在任何 tr1 文档中都找不到它.

还有其他方法可以对 tr1 数组中的元素数量执行编译时断言吗?

例如以下适用于 boost 数组,但不适用于 tr1 数组:

template<typename T>
void CheckArray(const T& input) {
  BOOST_STATIC_ASSERT(T::static_size >= 2);
}

我知道我可以只使用 boost 的数组,但我很好奇。

如果没有办法做到这一点,也许有人知道为什么 static_size 没有包含在 tr1 中?是不是只是在创建tr1之后加进boost的一个特性?

【问题讨论】:

    标签: c++ boost tr1


    【解决方案1】:

    TR1 本身表示std::tuple_size&lt;array&lt;T, N&gt; &gt;::value 返回数组的大小N

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-24
      • 2015-07-31
      • 1970-01-01
      • 1970-01-01
      • 2019-07-04
      • 2013-11-15
      相关资源
      最近更新 更多