| 1999 | } |
| 2000 | |
| 2001 | void printStabilityInformationOnce(std::ostream* outStream) { |
| 2002 | static bool shouldPrint = true; |
| 2003 | if (shouldPrint && outStream && isWarningsEnabled()) { |
| 2004 | auto& os = *outStream; |
| 2005 | shouldPrint = false; |
| 2006 | std::vector<std::string> warnings; |
| 2007 | std::vector<std::string> recommendations; |
| 2008 | gatherStabilityInformation(warnings, recommendations); |
| 2009 | if (warnings.empty()) { |
| 2010 | return; |
| 2011 | } |
| 2012 | |
| 2013 | os << "Warning, results might be unstable:" << std::endl; |
| 2014 | for (auto const& w : warnings) { |
| 2015 | os << "* " << w << std::endl; |
| 2016 | } |
| 2017 | |
| 2018 | os << std::endl << "Recommendations" << std::endl; |
| 2019 | for (auto const& r : recommendations) { |
| 2020 | os << "* " << r << std::endl; |
| 2021 | } |
| 2022 | } |
| 2023 | } |
| 2024 | |
| 2025 | // remembers the last table settings used. When it changes, a new table header is automatically written for the new entry. |
| 2026 | uint64_t& singletonHeaderHash() noexcept { |
no test coverage detected