Reference ISO/IEC IS 14882:2011(E)
This document is the Table of Contents for the Library Active Issues List, Library Defect Reports List, and Library Closed Issues List.
Revised 2013-10-14 at 15:10:23 UTC
Issue | Status | Section | Title | Proposed Resolution | Duplicates | Last modified |
1169 | Open | 22.4.2.1.2 [facet.num.get.virtuals] | num_get not fully compatible with strto* | Yes | 2013-05-06 | |
1175 | Open | 23.2.5 [unord.req] | unordered complexity | Yes | 2012-11-14 | |
1213 | Deferred | 24.2 [iterator.requirements] | Meaning of valid and singular iterator underspecified | Yes | 2012-11-14 | |
1450 | Open | 28.5.2 [re.matchflag] | Contradiction in regex_constants | Yes | 2012-11-14 | |
1526 | Open | 17.6.5.9 [res.on.data.races] | C++ should not impose thread safety requirements on C99 library implementations | Yes | 2012-11-14 | |
2003 | Open | 21.4.1 [string.require] | String exception inconsistency in erase. | Yes | 2012-11-14 | |
2016 | Open | 17.6.3.5 [allocator.requirements] | Allocators must be no-throw swappable | Yes | 2012-11-14 | |
2035 | Open | 24.2.4 [output.iterators] | Output iterator requirements are broken | Yes | 2012-11-14 | |
2038 | Open | 24.2.4 [output.iterators] | Missing definition for incrementable iterator | No | 2012-11-14 | |
2051 | Open | 20.4.2 [tuple.tuple] | Explicit tuple constructors for more than one parameter | No | 2012-11-14 | |
2052 | Open | 23.2.4 [associative.reqmts] | Mixup between mapped_type and value_type for associative containers | Yes | 2012-11-14 | |
2059 | Open | 23.4.4 [map] | C++0x ambiguity problem with map::erase | Yes | 2013-05-06 | |
2062 | Open | 20.10.11.2 [func.wrap.func] | Effect contradictions w/o no-throw guarantee of std::function swaps | No | 2012-11-14 | |
2063 | Open | 21.4 [basic.string] | Contradictory requirements for string move assignment | No | 2012-11-14 | |
2070 | Open | 20.9.2.2.6 [util.smartptr.shared.create] | allocate_shared should use allocator_traits<A>::construct | Yes | 2012-11-14 | |
2072 | Open | 20.8.11 [temporary.buffer] | Unclear wording about capacity of temporary buffers | No | 2012-11-14 | |
2075 | Open | 1.10 [intro.multithread] | Progress guarantees, lock-free property, and scheduling assumptions | No | 2012-11-14 | |
2076 | New | 23.4.6.2 [set.cons] | Bad CopyConstructible requirement in set constructors | Yes | 2013-09-25 | |
2077 | Open | 20.11.4.3 [meta.unary.prop] | Further incomplete constraints for type traits | No | 2012-11-14 | |
2079 | New | 26.8 [c.math] | Required pow() overloads | No | 2012-11-14 | |
2088 | Open | 18.8.3 [exception.terminate] | std::terminate problem | No | 2012-11-14 | |
2089 | Open | 20.8.9.1 [allocator.members] | std::allocator::construct should use uniform initialization | Yes | 2012-11-14 | |
2095 | Deferred | 30.6.5 [futures.promise] | promise and packaged_task missing constructors needed for uses-allocator construction | Yes | 2013-09-26 | |
2101 | Open | 20.11.7 [meta.trans] | Some transformation types can produce impossible types | Yes | 2013-09-25 | |
2104 | New | 30.4.2.2 [thread.lock.unique] | unique_lock move-assignment should not be noexcept | Yes | 2012-11-14 | |
2106 | Open | 24.5.3 [move.iterators] | move_iterator wrapping iterators returning prvalues | Yes | 2013-01-15 | |
2108 | Open | 17.6.3.5 [allocator.requirements] | No way to identify allocator types that always compare equal | Yes | 2012-11-14 | |
2111 | Open | 18.8.3.4 [terminate] | Which unexpected/terminate handler is called from the exception handling runtime? | No | 2012-11-14 | |
2112 | Open | 17.6.5 [conforming] | User-defined classes that cannot be derived from | No | 2012-11-14 | |
2114 | Open | 17.6.3.3 [nullablepointer.requirements] | Incorrect "contextually convertible to bool" requirements | Yes | 2012-11-14 | |
2115 | Open | 26.6.8 [template.mask.array] | Undefined behaviour for valarray assignments with mask_array index? | No | 2012-11-14 | |
2116 | Open | 20.11.4.3 [meta.unary.prop] | std::swap noexcept(what?) | No | 2012-11-14 | |
2117 | Open | 22.4.2.2.2 [facet.num.put.virtuals] | ios_base manipulators should have showgrouping/noshowgrouping | Yes | 2012-11-14 | |
2118 | Open | 20.9.1.3 [unique.ptr.runtime] | [CD] unique_ptr for array does not support cv qualification conversion of actual argument | Yes | 2013-09-24 | |
2119 | Open | 20.10.12 [unord.hash] | Missing hash specializations for extended integer types | Yes | 2012-11-14 | |
2121 | New | 27.8.6 [stringstream.cons] | app for string streams | No | 2012-11-14 | |
2127 | Open | 20.8.10 [storage.iterator] | Move-construction with raw_storage_iterator | Yes | 2012-11-14 | |
2129 | Open | 17.6.4.2.1 [namespace.std] | User specializations of std::initializer_list | No | 2012-11-14 | |
2132 | Review | 20.10.11.2.1 [func.wrap.func.con] | std::function ambiguity | Yes | 2012-12-25 | |
2133 | Open | 17.6.5.4 [global.functions] | Attitude to overloaded comma for iterators | No | 2013-05-06 | |
2136 | Open | 17.5.1 [structure] | Postconditions vs. exceptions | No | 2012-11-14 | |
2137 | Open | 28.8.3 [re.regex.assign] | Misleadingly constrained post-condition in the presence of exceptions | Yes | 2012-11-14 | |
2139 | Deferred | 17.6.4.2.1 [namespace.std] | What is a user-defined type? | No | 2012-11-14 | |
2146 | Open | 17.6.3.1 [utility.arg.requirements] | Are reference types Copy/Move-Constructible/Assignable or Destructible? | No | 2013-05-06 | |
2151 | Open | 21.4.1 [string.require] | basic_string<>::swap semantics ignore allocators | No | 2013-05-06 | |
2152 | Open | 17.6.3.2 [swappable.requirements] | Instances of standard container types are not swappable | No | 2012-11-14 | |
2153 | Open | 20.2.2 [utility.swap] | Narrowing of the non-member swap contract | No | 2013-05-06 | |
2154 | New | 26.5.1.3 [rand.req.urng] | What exactly does compile-time complexity imply? | No | 2012-11-14 | |
2155 | Open | 18.10 [support.runtime] | Macro __bool_true_false_are_defined should be removed | No | 2013-05-06 | |
2156 | Open | 23.2.5 [unord.req] | Unordered containers' reserve(n) reserves for n-1 elements | Yes | 2013-05-06 | |
2157 | Open | 23.3.2.8 [array.zero] | How does std::array<T,0> initialization work when T is not default-constructible? | Yes | 2012-11-14 | |
2158 | New | 23.3.7.3 [vector.capacity] | Conditional copy/move in std::vector | No | 2012-11-14 | |
2160 | Open | 23.3.7.3 [vector.capacity] | Unintended destruction ordering-specification of resize | No | 2013-05-06 | |
2161 | New | 23.4 [associative] | const equivalence of std::map | No | 2013-05-06 | |
2164 | New | 23.3.7.5 [vector.modifiers] | What are the semantics of vector.emplace(vector.begin(), vector.back())? | No | 2012-11-14 | |
2165 | Core | 29.5 [atomics.types.generic] | std::atomic<X> requires X to be nothrow default constructible | No | 2012-11-14 | |
2166 | New | 25.4.6 [alg.heap.operations] | Heap property underspecified? | No | 2012-11-14 | |
2168 | New | 26.5.8.2.2 [rand.dist.uni.real] | Inconsistent specification of uniform_real_distribution constructor | No | 2012-11-14 | |
2170 | Review | 17.6.3.1 [utility.arg.requirements] | Aggregates cannot be DefaultConstructible | Yes | 2013-10-11 | |
2173 | New | 25 [algorithms] | The meaning of operator + in the description of the algorithms | No | 2012-11-14 | |
2178 | Open | 17.6.3.5 [allocator.requirements] | Allocator requirement changes not mentioned Annex C | No | 2012-11-14 | |
2179 | Open | 20.9.2.4 [util.smartptr.enab] | enable_shared_from_this and construction from raw pointers | No | 2013-05-20 | |
2181 | Open | 26.5.1.2 [rand.req.seedseq] | Exceptions from seed sequence operations | Yes | 2013-05-21 | |
2182 | Review | 23.2.1 [container.requirements.general] | Container::[const_]reference types are misleadingly specified | Yes | 2013-09-25 | |
2183 | New | 28.10.1 [re.results.const] | Muddled allocator requirements for match_results constructors | No | 2012-11-14 | |
2184 | New | 28.10.1 [re.results.const] | Muddled allocator requirements for match_results assignments | No | 2012-11-14 | |
2186 | Open | 30.6.8 [futures.async] | Incomplete action on async/launch::deferred | Yes | 2012-11-14 | |
2188 | Open | 24.5.1.3.5 [reverse.iter.opref] | Reverse iterator does not fully support targets that overload operator& | Yes | 2013-05-21 | |
2189 | Open | 23.2.5.1 [unord.req.except] | Throwing swap breaks unordered containers' state | No | 2013-05-06 | |
2191 | New | 28.10.1 [re.results.const] | Incorrect specification of match_results(match_results&&) | No | 2012-11-14 | |
2192 | New | 26.8 [c.math] | Validity and return type of std::abs(0u) is unclear | Yes | 2013-05-21 | |
2193 | EWG | 23 [containers] | Default constructors for standard library containers are explicit | Yes | 2013-10-11 | |
2195 | New | 28.10 [re.results] | Missing constructors for match_results | Yes | 2013-05-21 | |
2198 | Open | 23.2.5 [unord.req] | max_load_factor(z) makes no strong guarantees, but bans useful behavior | No | 2013-05-06 | |
2199 | Open | 23.2.5 [unord.req] | unordered containers are required to have an initial max load factor of 1.0 | No | 2013-05-06 | |
2201 | New | C.4 [diff.library] | Missing macro entries from C standard library | No | 2012-11-14 | |
2202 | New | 30.6.8 [futures.async] | Missing allocator support by async | No | 2012-11-14 | |
2205 | New | 28.11.2 [re.alg.match] | Problematic postconditions of regex_match and regex_search | Yes | 2012-11-14 | |
2206 | Open | 23.2.3 [sequence.reqmts] | Inaccuracy in initializer_list constructor requirements | No | 2013-05-06 | |
2208 | New | 24.5.1 [reverse.iterators] | std::reverse_iterator should be a literal type | No | 2012-11-14 | |
2212 | Open | 20.2 [utility] | tuple_size for const pair request <tuple> header | No | 2013-05-06 | |
2213 | New | 28.11.4 [re.alg.replace] | Return value of std::regex_replace | Yes | 2012-11-14 | |
2214 | Open | 27.5.5.2 [basic.ios.cons] | Clarify basic_ios::init call restrictions | Yes | 2013-05-21 | |
2215 | Open | 23.2.4 [associative.reqmts] | (unordered) associative container functors should be CopyConstructible | No | 2013-05-06 | |
2216 | New | 28.11.4 [re.alg.replace] | regex_replace(basic_string) allocator handling | No | 2012-11-29 | |
2217 | New | 28.9.2 [re.submatch.op] | operator==(sub_match, string) slices on embedded '\0's | No | 2012-11-29 | |
2218 | Open | 23.2.1 [container.requirements.general] | Unclear how containers use allocator_traits::construct() | Yes | 2013-09-01 | |
2219 | Open | 20.10.2 [func.require] | INVOKE-ing a pointer to member with a reference_wrapper as the object expression | Yes | 2013-05-06 | |
2220 | New | 28.12.2.2 [re.tokiter.comp] | Under-specification of operator== for regex_token_iterator | No | 2012-12-25 | |
2221 | New | 28.12.2.2 [re.tokiter.comp] | No formatted output operator for nullptr | No | 2012-12-25 | |
2223 | Open | 23.3.7.3 [vector.capacity] | shrink_to_fit effect on iterator validity | Yes | 2013-05-06 | |
2224 | Open | 17.6.4.10 [res.on.objects] | Ambiguous status of access to non-live objects | Yes | 2013-09-01 | |
2227 | Open | 23.2.4 [associative.reqmts] | Stateful comparison objects in associative containers | Yes | 2013-10-11 | |
2228 | Review | 20.9.1.2.3 [unique.ptr.single.asgn] | Missing SFINAE rule in unique_ptr templated assignment | Yes | 2013-05-06 | |
2230 | New | 23.5 [unord] | "see below" for initializer-list constructors of unordered containers | Yes | 2013-01-15 | |
2233 | Open | 20.10.11.1 [func.wrap.badcall] | bad_function_call::what() unhelpful | Yes | 2013-05-06 | |
2234 | Open | 19.3 [assertions] | assert() should allow usage in constant expressions | No | 2013-05-06 | |
2236 | New | 29.2 [atomics.syn] | kill_dependency unconditionally noexcept | No | 2013-05-06 | |
2237 | New | 21.8 [c.strings] | <cuchar> macros | No | 2013-05-06 | |
2238 | New | 21.8 [c.strings] | Problematic iterator-pair constructor of containers | No | 2013-05-06 | |
2239 | New | 25.4.7 [alg.min.max] | min/max/minmax requirements | No | 2013-05-06 | |
2241 | New | 18.10 [support.runtime] | <cstdalign> and #define of alignof | No | 2013-05-06 | |
2242 | New | 25.3.1 [alg.copy] | [uninitialized_]copy_n() defect | No | 2013-05-06 | |
2243 | New | 27.7.2.3 [istream.unformatted] | istream::putback problem | No | 2013-05-06 | |
2244 | New | 27.7.2.3 [istream.unformatted] | Issue on basic_istream::seekg | No | 2013-05-06 | |
2245 | New | 27.7.2.3 [istream.unformatted] | packaged_task::reset() memory allocation | No | 2013-05-06 | |
2248 | New | 18.3.2 [limits] | numeric_limits::is_iec559 misnamed | No | 2013-05-06 | |
2250 | New | 20.7.1 [bitset.cons] | Follow-up On Library Issue 2207 | No | 2013-05-06 | |
2251 | New | 18.2 [support.types] | C++ library should define ssize_t | Yes | 2013-09-29 | |
2253 | Deferred | 23.3.4.1 [dynarray.overview] | dynarray should state which container requirements aren't met | Yes | 2013-09-26 | |
2254 | Deferred | 23.2.1 [container.requirements.general] | Is dynarray an allocator-aware container? | Yes | 2013-09-26 | |
2255 | Deferred | 23.3.4.2 [dynarray.cons] | dynarray constructor ambiguity | Yes | 2013-09-26 | |
2256 | New | 23.3.7.5 [vector.modifiers] | On vector iterator invalidation | No | 2013-05-21 | |
2258 | New | 23.2.4 [associative.reqmts] | a.erase(q1, q2) unable to directly return q2 | Yes | 2013-09-26 | |
2259 | New | 17.6.5.5 [member.functions] | Issues in 17.6.5.5 rules for member functions | No | 2013-09-01 | |
2260 | New | 17.6.3.5 [allocator.requirements] | Missing requirement for Allocator::pointer | Yes | 2013-09-01 | |
2261 | New | 23.2 [container.requirements] | Are containers required to use their 'pointer' type internally? | No | 2013-09-01 | |
2262 | New | 20.9.1.2 [unique.ptr.single] | Requirement for unique_ptr<T>::get_deleter()(p) to be able to destroy the unique_ptr | Yes | 2013-10-14 | |
2263 | New | 17.6.3.5 [allocator.requirements] | Comparing iterators and allocator pointers with different const-character | No | 2013-09-01 | |
2264 | Deferred | 23.3.4 [dynarray] | std::dynarray defines its initializer-list constructor in terms of a non-existent constructor | Yes | 2013-09-26 | |
2265 | New | 29.3 [atomics.order] | 29.3p9 appears to rule out some acceptable executions | No | 2013-09-01 | |
2266 | New | 23.2.3 [sequence.reqmts] | vector and deque have incorrect insert requirements | Yes | 2013-10-14 | |
2267 | New | 25.4.1.4 [partial.sort.copy] | partial_sort_copy underspecified for ranges of two different types | No | 2013-09-01 | |
2268 | New | 21.4 [basic.string] | Setting a default argument in the declaration of a member function assign of std::basic_string | Yes | 2013-09-01 | |
2269 | New | 23.2.1 [container.requirements.general] | Container iterators and argument-dependent lookup | No | 2013-09-01 | |
2271 | New | 28.7 [re.traits] | regex_traits::lookup_classname specification unclear | Yes | 2013-09-01 | |
2273 | New | 28.11.2 [re.alg.match] | regex_match ambiguity | No | 2013-09-01 | |
2274 | New | 23.4.4.3 [map.access] | Does map::operator[] value-initialize or default-insert a missing element? | Yes | 2013-09-01 | |
2276 | New | 30.6 [futures] | Missing requirement on std::promise::set_exception | No | 2013-09-01 | |
2277 | Deferred | 24.7 [iterator.range] | <dynarray> is missing in 24.7/1 | Yes | 2013-09-26 | |
2280 | New | 24.7 [iterator.range] | begin/end for arrays should be constexpr and noexcept | Yes | 2013-09-25 | |
2282 | Deferred | 20.6.4.3 [optional.object.assign] | Incorrect is_assignable constraint in optional::op=(U&&) | Yes | 2013-09-26 | |
2283 | Deferred | 20.6.10 [optional.comp_with_t] | optional declares and then does not define an operator<() | Yes | 2013-09-26 | |
2285 | New | 24.5.1 [reverse.iterators] | make_reverse_iterator | Yes | 2013-09-01 | |
2286 | New | 27.8.2.4 [stringbuf.virtuals] | stringbuf::underflow() underspecified | Yes | 2013-09-01 | |
2287 | Deferred | 20.6.4.3 [optional.object.assign] | Incorrect exception safety for optional copy assignment operator | Yes | 2013-09-26 | |
2288 | New | 30.4.1.4 [thread.sharedmutex.requirements] | Inconsistent requirements for shared mutexes | Yes | 2013-09-23 | |
2289 | New | 20.3.2 [pairs.pair] | constexpr guarantees of defaulted functions still insufficient | Yes | 2013-09-23 | |
2290 | New | 20.11 [meta] | Top-level "SFINAE"-based constraints should get a separate definition in Clause 17 | No | 2013-09-23 | |
2292 | New | 17.5.1.4 [structure.specifications] | Find a better phrasing for "shall not participate in overload resolution" | No | 2013-09-23 | |
2293 | New | 22.4.2.2.2 [facet.num.put.virtuals] | Wrong facet used by num_put::do_put | Yes | 2013-09-23 | |
2294 | New | 26.8 [c.math] | <cstdlib> should declare abs(double) | No | 2013-09-23 | |
2295 | New | 22.3.1.2 [locale.cons] | Locale name when the provided Facet is a nullptr | No | 2013-09-24 | |
2296 | New | 20.8.12.1 [specialized.addressof] | std::addressof should be constexpr | Yes | 2013-09-25 | |
2299 | Review | 23.2.4 [associative.reqmts] | [CD] Effects of inaccessible key_compare::is_transparent type are not clear | Yes | 2013-09-27 | |
2301 | New | 20.4.2.4 [tuple.creation] | Why is std::tie not constexpr? | Yes | 2013-10-11 | |
2302 | New | 18.6.1.3 [new.delete.placement] | Passing null pointer to placement new | Yes | 2013-10-11 | |
2303 | New | 18.6.1.3 [new.delete.placement] | Explicit instantiation of std::vector<UserType> broken? | No | 2013-10-14 | |
2304 | New | 23.2.5 [unord.req] | Complexity of count in unordered associative containers | Yes | 2013-10-11 | |
2305 | Deferred | 20.6.4.1 [optional.object.ctor] | optional forwarding construction/assignment | Yes | 2013-10-11 | |
2306 | New | 28.10 [re.results] | match_results::reference should be value_type&, not const value_type& | Yes | 2013-10-11 | |
2307 | New | 23 [containers] | Should the Standard Library use explicit only when necessary? | No | 2013-10-11 | |
2308 | New | 23.2.1 [container.requirements.general] | Clarify container destructor requirements w.r.t. std::array | Yes | 2013-10-11 | |
2309 | New | 30.4.1.2 [thread.mutex.requirements.mutex] | mutex::lock() should not throw device_or_resource_busy | No | 2013-10-11 | |
2310 | New | 23.3.2.1 [array.overview] | Public exposition only member in std::array | No | 2013-10-11 | |
2311 | New | 17.6.3.5 [allocator.requirements] | Allocator requirements should be further minimized | Yes | 2013-10-11 | |
2312 | New | 20.4.2.1 [tuple.cnstr] | tuple's constructor constraints need to be phrased more precisely | Yes | 2013-10-11 | |
2313 | New | 20.4.2.5 [tuple.helper] | tuple_size should always derive from integral_constant<size_t, N> | Yes | 2013-10-14 | |
2314 | New | 20.5.1 [intseq.general] | apply() should return decltype(auto) and use decay_t before tuple_size | Yes | 2013-10-11 | |
2315 | New | 20.9.2.3 [util.smartptr.weak] | weak_ptr should be movable | Yes | 2013-10-14 | |
2316 | New | 20.9.2.3.5 [util.smartptr.weak.obs] | weak_ptr::lock() should be atomic | Yes | 2013-10-14 | |
2317 | New | 20.11.5 [meta.unary.prop.query] | The type property queries should be UnaryTypeTraits returning size_t | Yes | 2013-10-14 | |
2318 | New | 21.4 [basic.string] | basic_string's wording has confusing relics from the copy-on-write era | No | 2013-10-14 | |
2319 | New | 21.4.2 [string.cons] | basic_string's move constructor should not be noexcept | Yes | 2013-10-14 | |
2320 | New | 23.2.1 [container.requirements.general] | select_on_container_copy_construction() takes allocators, not containers | Yes | 2013-10-14 | |
2321 | New | 23.2.1 [container.requirements.general] | Moving containers should (usually) be required to preserve iterators | Yes | 2013-10-14 | |
2322 | New | 23.2.4 [associative.reqmts] | Associative(initializer_list, stuff) constructors are underspecified | Yes | 2013-10-14 | |
2323 | New | 23.3.7.3 [vector.capacity] | vector::resize(n, t)'s specification should be simplified | Yes | 2013-10-14 | |
2324 | New | 24.5.2.2.1 [back.insert.iter.cons] | Insert iterator constructors should use addressof() | Yes | 2013-10-14 | |
2325 | New | 25.4.7 [alg.min.max] | minmax_element()'s behavior differing from max_element()'s should be noted | Yes | 2013-10-14 | |
2326 | New | 26.5.1.1 [rand.req.genl] | uniform_int_distribution<unsigned char> should be permitted | No | 2013-10-14 | |
2327 | New | 26.5.1.3 [rand.req.urng] | Non-power-of-two URNGs should be forbidden | Yes | 2013-10-14 | |
2328 | New | 27.7.2.6 [istream.rvalue] | Rvalue stream extraction should use perfect forwarding | Yes | 2013-10-14 | |
2329 | New | 28.4 [re.syn] | regex_match()/regex_search() with match_results should forbid temporary strings | Yes | 2013-10-14 | |
2330 | New | 28.5.1 [re.synopt] | regex("meow", regex::icase) is technically forbidden but should be permitted | Yes | 2013-10-14 | |
2331 | New | 28.5.1 [re.synopt] | regex_constants::collate's effects are inaccurately summarized | Yes | 2013-10-14 | |
2332 | New | 28.12 [re.iter] | regex_iterator/regex_token_iterator should forbid temporary regexes | Yes | 2013-10-14 | |
2333 | Deferred | 20.6.12 [optional.hash] | Hashing disengaged optional<T> objects | Yes | 2013-10-14 | |
2334 | New | 29.6.5 [atomics.types.operations.req] | atomic's default constructor requires "uninitialized" state even for types with non-trivial default-constructor | Yes | 2013-10-14 | |
2335 | New | 23.3.2 [array] | array<array<int, 3>, 4> should be layout-compatible with int[4][3] | No | 2013-10-14 | |
2336 | New | 20.11.4.3 [meta.unary.prop] | is_trivially_constructible/is_trivially_assignable traits are always false | Yes | 2013-10-14 | |
2337 | New | 20.9.2.2.5 [util.smartptr.shared.obs] | shared_ptr operator*() should not be noexcept | Yes | 2013-10-14 |