libstdc++实现c++ 11 deque接口
Do libstdc++ implement C++11 deque interface?
我很少有使用GCC和libstdc++的经验。试图在c++ 11中编译一个非常简单的程序,我发现编译器错误,看起来STL没有实现新的c++ 11 deque接口。
示例程序:#include <deque>
int main() {
std::deque<int> c;
std::deque<int> d;
c.insert(c.cbegin(), d.begin(), d.end()); // unable to match insert(const_iterator, iterator, iterator)
auto it=c.insert(c.begin(), d.begin(), d.end()); // unable to match iterator = insert(iterator, iterator, iterator)
}
运行以下命令行,在注释行中得到编译错误:
g++ -std=c++11 -o test test.cpp
(gcc/libstdc++的安装版本为4.8.1)
看起来STL没有实现:
template< class InputIt > iterator insert( const_iterator pos, InputIt first, InputIt last );
(http://en.cppreference.com/w/cpp/container/deque/insert,或std. C+11 23.3.3.4 deque modifiers)
我知道libstdc++还没有完全实现c++ 11,但是状态页面(http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2011)表明只有分配器和传播需求还没有完成。
我的问题是:
- 实际上在libstdc++中没有一个完整的c++
std::deque
接口实现,还是我错过了什么?(也许我没有使用正确的库版本,或者我在命令行中缺少一些参数;我对gcc/g++没有太多的经验。 - 如果是我的错,我该如何解决?
您的代码是有效的,并且已被GCC 4.9.0的libstdc++接受(并且已被clang的libc++接受了一段时间)。您链接到的状态页对此发出警告:
本页描述了主流GCC SVN中对c++ 11的支持,而不是在任何特定的发行版中。
相关文章:
- C++核心准则 C35 对于接口类"A base class destructor should be either public and virtual, or protected and nonv
- Visual C++GC接口如何启用它以及要包含哪个库
- Windows.h与GLFW.h的接口
- 当字段可以为null时,如何使用C++接口在Avro中写入数据
- 提供与TMP和SFINAE的通用接口
- Capacity of a deque
- 为重写std::exception的库生成swig接口时出错
- 内联如何影响模块接口中的成员函数
- COM 接口 c# 封送数组数组
- 如何在 SCIP C++ 接口中获取 MILP 约束矩阵中的系数值
- 重载 -> shared_ptr 个实例中的箭头运算符<interface>,接口中没有纯虚拟析构函数
- 如何绑定 C++ gRPC 客户端的网络接口
- 模板化接口 - 创建一个泛型模板类以返回任何容器
- 如何从实现接口的模板化类实例访问结构
- 在调试模式下引发C++ "deque iterator not dereferencable"异常
- C++中deque数据结构的大O是什么?
- 带有进度表的 curl 多接口程序
- 如何使用C++为我的容器 Deque 设置最大大小?
- 为什么 gcc 会给我可能未初始化的警告 deque::insert 带有过滤范围
- libstdc++实现c++ 11 deque接口