diff --git a/src/fmt/sdf.cpp b/src/fmt/sdf.cpp index 3e440521..aa177726 100644 --- a/src/fmt/sdf.cpp +++ b/src/fmt/sdf.cpp @@ -68,10 +68,12 @@ namespace x3 = boost::spirit::x3; using Iterator = std::vector::const_iterator; struct HeaderReadResult { - static HeaderReadResult failure() { return HeaderReadResult(); } + static HeaderReadResult failure() { return {}; } - static HeaderReadResult success(int version, int natoms, int nbonds) { - return HeaderReadResult(version, natoms, nbonds); + template + static HeaderReadResult success(N1 version, N2 natoms, N3 nbonds) { + return { static_cast(version), static_cast(natoms), + static_cast(nbonds) }; } int version() const { return version_; } @@ -661,8 +663,7 @@ bool try_read_v3000_header(HeaderReadResult &metadata, Iterator &it, ABSL_DCHECK(counts.size() >= 2); - metadata = HeaderReadResult::success(3000, static_cast(counts[0]), - static_cast(counts[1])); + metadata = HeaderReadResult::success(3000, counts[0], counts[1]); return true; }