微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

这行 stl 源代码integral_constant 部分是干什么用的?

如何解决这行 stl 源代码integral_constant 部分是干什么用的?

  /// integral_constant
  template<typename _Tp,_Tp __v>
    struct integral_constant
    {
      static constexpr _Tp                  value = __v;
      typedef _Tp                           value_type;
      typedef integral_constant<_Tp,__v>   type;
      constexpr operator value_type() const noexcept { return value; }
#if __cplusplus > 201103L

#define __cpp_lib_integral_constant_callable 201304

      constexpr value_type operator()() const noexcept { return value; }
#endif
    };

  template<typename _Tp,_Tp __v>
    constexpr _Tp integral_constant<_Tp,__v>::value;

我看不懂这条线有什么作用

constexpr _Tp integral_constant<_Tp,__v>::value;

为什么在global中声明时没有错误如下:

struct test
{
  static const int a = 1;
};
const int test::a;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。