Opened 14 years ago
Last modified 9 years ago
#2628 assigned Bugs
Sequence concept incorrectly fails for basic_string
| Reported by: | Owned by: | acharles | |
|---|---|---|---|
| Milestone: | Boost 1.56.0 | Component: | concept_check |
| Version: | Boost 1.37.0 | Severity: | Problem |
| Keywords: | concept_check Sequence basic_string | Cc: |
Description
The Sequence concept fails when tested against basic_string (e.g. BOOST_CONCEPT_ASSERT((Sequence<T>)); ) because an extra constructor test is included. This test is for X a(n) where n is the size of the sequence to be created. However, section 23.1.1 table 67 of the C++ standard does not include this test in the definition of the Sequence concept. Because this test is in place, basic_string is rejected by the current implementation of the Sequence concept, since basic_string does not have this constructor. However, section 21.3 paragraph 2 of the C++ standard states, "The class template basic_string conforms to the requirements of a Sequence, as specified in (23.1.1)."
The fix for this should be as simple as removing the test for a constructor of the form X a(n) in the Sequence concept implementation.
Change History (3)
comment:1 by , 9 years ago
| Owner: | changed from to |
|---|---|
| Status: | new → assigned |
comment:2 by , 9 years ago
comment:3 by , 9 years ago
| Milestone: | Boost 1.38.0 → Boost 1.56.0 |
|---|

Proposed fix: https://github.com/boostorg/concept_check/pull/2