std :: ignore的可能实现

时间:2015-09-28 11:40:07

标签: c++ c++11

我尝试搜索std :: ignore的可能实现,但未能找到明确的答案。

http://mail-archives.apache.org/mod_mbox/stdcxx-dev/200807.mbox/%3C4872AA41.7040005@roguewave.com%3E引用c ++规范的问题,并提供和说明性实现

namespace std {

struct _Ignore
{
    template <class _Type>
    _Ignore& operator= (const _Type& value) { return *this; }
};

const _Ignore ignore = _Ignore ();

} // namespace std

还有关于这些问题的进一步讨论。那么,当前的实现如何?为什么?

1 个答案:

答案 0 :(得分:1)

在GCC中,它看起来像您发布的内容,但ignore不是const。这就克服了你所链接的主题中的主要异议。

在Clang中,赋值运算符是const,并且还返回const,整个类本身就是一个模板(除了赋值运算符是模板)。无论出于何种原因,模板实例化都使用unsigned char