Opened 12 years ago
Last modified 12 years ago
#4151 new Bugs
option_description::option_description(3 args) is exception-unsafe
| Reported by: | anonymous | Owned by: | Vladimir Prus |
|---|---|---|---|
| Milestone: | Boost 1.43.0 | Component: | program_options |
| Version: | Boost 1.42.0 | Severity: | Problem |
| Keywords: | Cc: |
Description
Given the code in libs/program_options/src/options_description.cpp:
option_description::
option_description(const char* name,
const value_semantic* s,
const char* description)
: m_description(description), m_value_semantic(s)
{
this->set_name(name);
}
s leaks in case if initialization of m_description throws.
The simplest cure is to make option::description::m_value_semantic member to be before all other members.
Change History (2)
comment:1 by , 12 years ago
| Summary: | option_description::option_description(3 params) is exception-unsafe → option_description::option_description(3 args) is exception-unsafe |
|---|
comment:2 by , 12 years ago
Note:
See TracTickets
for help on using tickets.

The proper solution is to use smart pointers everywhere.