答案 0 :(得分:2)
C ++ 11标准(第23.3.3.2段)规定:
explicit deque(const Allocator& = Allocator());
1效果:使用指定的分配器构造一个空的双端队列。
2复杂性:常数。
就是这样。没有提到这个构造函数可能抛出或不抛出的条件,第23条(专用于序列容器)也没有指定任何一般的异常安全保证,并且构造函数本身没有标记为(有条件的)noexcept
因此,必须假设它可以抛出。
答案 1 :(得分:0)
std::allocator
的要求使其构造函数noexcept
成为shall not exit via an exception
。但是,deque的构造函数可以抛出,因为它不是noexcept
。