diff --git a/2019/src/day03.cpp b/2019/src/day03.cpp index 8fcc063..f618c7a 100644 --- a/2019/src/day03.cpp +++ b/2019/src/day03.cpp @@ -27,7 +27,7 @@ namespace { for (auto entry = aoc2019::strtok(line); !line.empty() || !entry.empty(); entry = aoc2019::strtok(line)) { const auto dir = DIRECTION_MAP.at(entry[0]); std::size_t amount = 0; - std::from_chars(entry.data() + 1, entry.data() + entry.size(), amount); + aoc2019::from_chars(entry.substr(1), amount); assert(amount > 0 && "Must have some valid direction"); for (std::size_t i = 0; i < amount; ++i) { diff --git a/2019/src/utils.hpp b/2019/src/utils.hpp index 8bea634..c56ca55 100644 --- a/2019/src/utils.hpp +++ b/2019/src/utils.hpp @@ -1,10 +1,16 @@ #pragma once +#include #include #include namespace aoc2019 { + template + inline std::from_chars_result from_chars(std::string_view str, T& value) { + return std::from_chars(str.data(), str.data() + str.size(), value); + } + template void combine_hash(std::size_t& seed, const T& o) { // Algorithm taken from boost::combine_hash.