C++ STL 的 __is_const(_Tp) 是如何工作的?

问题描述 投票:0回答:1

在研究一些类型特征时,我正在搜索 std::is_const() 的工作原理。根据STL中的定义是

template <class _Tp>
struct _LIBCPP_TEMPLATE_VIS is_const : _BoolConstant<__is_const(_Tp)> { };

我知道它是内置编译器,但想知道它是如何实现的?

c++ c++11 templates std
1个回答
-1
投票

Clang
标头仅使用 SFINAE 来选择它是否是常量(带有
const T
的模板实现)或不是(另一个模板实现),来自 Clang 源代码中的 is_const.h

template <class T> struct is_const : cpp::false_type {};
template <class T> struct is_const<const T> : cpp::true_type {};
© www.soinside.com 2019 - 2024. All rights reserved.