Created on 2008-02-24.00:00:00 last changed 171 months ago
Proposed resolution:
Resolution of part A:
Change [syserr.errcode.overview] Class error_code overview synopsis as indicated:
private: int val_; // exposition only const error_category&* cat_; // exposition onlyChange [syserr.errcode.constructors] Class error_code constructors as indicated:
error_code();Effects: Constructs an object of type error_code.
Postconditions: val_ == 0 and cat_ == &system_category.
Throws: Nothing.
error_code(int val, const error_category& cat);Effects: Constructs an object of type error_code.
Postconditions: val_ == val and cat_ == &cat.
Throws: Nothing.
Change [syserr.errcode.modifiers] Class error_code modifiers as indicated:
void assign(int val, const error_category& cat);Postconditions: val_ == val and cat_ == &cat.
Throws: Nothing.
Change [syserr.errcode.observers] Class error_code observers as indicated:
const error_category& category() const;Returns: *cat_.
Throws: Nothing.
Change [syserr.errcondition.overview] Class error_condition overview synopsis as indicated:
private: int val_; // exposition only const error_category&* cat_; // exposition onlyChange [syserr.errcondition.constructors] Class error_condition constructors as indicated:
(If the proposed resolution of issue 805 has already been applied, the name posix_category will have been changed to generic_category. That has no effect on this resolution.) error_condition();Effects: Constructs an object of type error_condition.
Postconditions: val_ == 0 and cat_ == &posix_category.
Throws: Nothing.
error_condition(int val, const error_category& cat);Effects: Constructs an object of type error_condition.
Postconditions: val_ == val and cat_ == &cat.
Throws: Nothing.
Change [syserr.errcondition.modifiers] Class error_condition modifiers as indicated:
void assign(int val, const error_category& cat);Postconditions: val_ == val and cat_ == &cat.
Throws: Nothing.
Change [syserr.errcondition.observers] Class error_condition observers as indicated:
const error_category& category() const;Returns: *cat_.
Throws: Nothing.
Resolution of part C:
In [syserr.errcat.virtuals], remove the throws clause p. 10.
virtual string message(int ev) const = 0;Returns: A string that describes the error condition denoted by ev.
Throws: Nothing.In [syserr.errcode.observers], remove the throws clause p. 8.
string message() const;Returns: category().message(value()).
Throws: Nothing.In [syserr.errcondition.observers], remove the throws clause p. 6.
string message() const;Returns: category().message(value()).
Throws: Nothing.
[ Sophia Antipolis: ]
Part A: NAD (editorial), cleared by the resolution of issue 832.
Part B: Technically correct, save for typo. Rendered moot by the concept proposal (N2620) NAD (editorial).
Part C: We agree; this is consistent with the resolution of issue 721.
Howard: please ping Beman, asking him to clear away parts A and B from the wording in the proposed resolution, so it is clear to the editor what needs to be applied to the working paper.
Beman provided updated wording. Since issue 832 is not going forward, the provided wording includes resolution of part A.
[syserr.errcode.overview]/1, class error_code and [syserr.errcondition.overview]/, class error_condition synopses declare an expository data member cat_:
const error_category& cat_; // exposition only
which is used to define the semantics of several members. The decision to use a member of reference type lead to several problems:
The simple fix would be to replace the reference by a pointer member.
History | |||
---|---|---|---|
Date | User | Action | Args |
2010-10-21 18:28:33 | admin | set | messages: + msg3835 |
2010-10-21 18:28:33 | admin | set | messages: + msg3834 |
2008-02-24 00:00:00 | admin | create |