Fix dangling reference bug in parse

This commit is contained in:
Howard Hinnant
2016-10-11 10:31:44 -04:00
parent ff929570f9
commit cfa55850c7
2 changed files with 13 additions and 13 deletions

View File

@@ -8,7 +8,7 @@ https://github.com/HowardHinnant/date/commit/19c83e47ed411a45e0b5a45d772c47c6ee2
Without this update your tz lib will download a new copy of the database everytime you start your program.
<hr/>
_**[Try it out on wandbox!](http://melpon.org/wandbox/permlink/lb6FHxHyQ1V9eCLm)**_
_**[Try it out on wandbox!](http://melpon.org/wandbox/permlink/FyeHIhAg2dniVu0W)**_
This is actually several separate C++11/C++14 libraries:

24
date.h
View File

@@ -4365,16 +4365,16 @@ parse(std::basic_istream<CharT, Traits>& is,
template <class Duration, class CharT, class Traits = std::char_traits<CharT>>
struct parse_local_manip
{
const std::basic_string<CharT, Traits>& format_;
local_time<Duration>& tp_;
std::basic_string<CharT, Traits>* abbrev_;
std::chrono::minutes* offset_;
const std::basic_string<CharT, Traits> format_;
local_time<Duration>& tp_;
std::basic_string<CharT, Traits>* abbrev_;
std::chrono::minutes* offset_;
public:
parse_local_manip(const std::basic_string<CharT, Traits>& format,
parse_local_manip(std::basic_string<CharT, Traits> format,
local_time<Duration>& tp, std::basic_string<CharT, Traits>* abbrev = nullptr,
std::chrono::minutes* offset = nullptr)
: format_(format)
: format_(std::move(format))
, tp_(tp)
, abbrev_(abbrev)
, offset_(offset)
@@ -4394,16 +4394,16 @@ operator>>(std::basic_istream<CharT, Traits>& is,
template <class Duration, class CharT, class Traits = std::char_traits<CharT>>
struct parse_sys_manip
{
const std::basic_string<CharT, Traits>& format_;
sys_time<Duration>& tp_;
std::basic_string<CharT, Traits>* abbrev_;
std::chrono::minutes* offset_;
const std::basic_string<CharT, Traits> format_;
sys_time<Duration>& tp_;
std::basic_string<CharT, Traits>* abbrev_;
std::chrono::minutes* offset_;
public:
parse_sys_manip(const std::basic_string<CharT, Traits>& format,
parse_sys_manip(std::basic_string<CharT, Traits> format,
sys_time<Duration>& tp, std::basic_string<CharT, Traits>* abbrev = nullptr,
std::chrono::minutes* offset = nullptr)
: format_(format)
: format_(std::move(format))
, tp_(tp)
, abbrev_(abbrev)
, offset_(offset)