【问题标题】:Is there a GSL implementation I can use with GCC 4.9.x?是否有可以与 GCC 4.9.x 一起使用的 GSL 实现?
【发布时间】:2016-03-04 00:06:21
【问题描述】:

Microsoft 的(核心)指南支持库实现据说支持 GCC 5.1 - 但没有指定对其他版本的支持。更高版本似乎没问题(无论如何,我的 Debian Stretch 上是 5.3.1) - 但使用 GCC 4.9.3 构建测试失败。

  • 其他人实施了 GSL 吗?
  • 无论如何我都可以使用 MS GSL 吗?
  • 如果不是,我可以使用它的一些安全子集吗? (可能不会,我知道)
  • 如果不是,那么只有使用较新编译器的人才能拥有指南支持库,这不是一个问题吗?即使他们的旧编译器支持 C++11 甚至 C++14?

【问题讨论】:

  • 谁有问题?如果您认为它在 MS 上,您可以向他们提出功能请求?
  • @ChrisBeck:世界的问题。或者,你知道吗,Stroustrup 教授和 Herb Sutter 教授正在推广核心指南。无论如何,我会提出请求。无论如何,编辑了问题。
  • MS/GSL 需要 C++14,它不适用于 C++11。 gcc5 之前的 gcc 不完全支持 C++14 (source)。

标签: c++ c++11 gcc cpp-core-guidelines guideline-support-library


【解决方案1】:

是的,我知道有一个:gsl-lite

到目前为止,它对我来说效果很好。但是我将编译器更改为更新的版本,不再需要它了。

您还可以使用(相当小的)微软实现的子集。如果您不需要span-classes。它们是gsl_assert.h (Expects, Ensures) 和gsl_utils.h (narrow, final_act, ...)。我想我可能只调整了一些constexpr 相关的东西。

【讨论】:

  • 其实我个人确实想要跨度类,但其他人可能不需要它,所以这也很有用。将尝试 gsl-lite。是不是少了什么东西?
  • 没有跨步视图!但是其中包含一维跨度。我完全理解你。
猜你喜欢
  • 1970-01-01
  • 2011-05-15
  • 1970-01-01
  • 1970-01-01
  • 2017-03-07
  • 1970-01-01
  • 2011-01-03
  • 1970-01-01
  • 2012-07-22
相关资源
最近更新 更多