【发布时间】:2014-02-13 19:04:39
【问题描述】:
在 libc++ 标头中,<ios>,可在此处查看:
https://github.com/llvm-mirror/libcxx/blob/master/include/ios
class ios_base 有两个声明,“libcpp 版本”有一个clear 方法,ios_base::clear() 而另一个没有。这是一个公开的方法,这里不再赘述:
http://en.cppreference.com/w/cpp/io/ios_base
此外,在上面引用的实现中,basic_ios::clear() 调用了ios_base::clear(),但它似乎没有在任何地方定义。在 libstdc++ 中,它的实现如下所示:
http://repo.or.cz/w/official-gcc.git/blob/HEAD:/libstdc%2B%2B-v3/include/bits/basic_ios.tcc
所以我的问题是:
1) 为什么 libc++ 中有一个公共的ios_base::clear() 方法?
2) 在哪里可以找到 basic_ios::clear() 在 libc++ 中的实现方式?
【问题讨论】:
-
ios_base::clear()的实现在这个文件里:github.com/llvm-mirror/libcxx/blob/master/src/ios.cpp#L265 -
谢谢。我试应该自己发现的。我想将
clear()方法作为ios_base的成员是lib++ 实现者认为方便并且可以做到的事情。