//******************************************************** // The following code example is taken from the book // C++23 - The Complete Guide // by Nicolai M. Josuttis (www.josuttis.com) // http://www.cppstd23.com // // The code is licensed under a // Creative Commons Attribution 4.0 International License // http://creativecommons.org/licenses/by/4.0/ //******************************************************** #include #include #include bool find(const auto& coll, int idx) { try { for (auto i = 0uz; i <= coll.size(); ++i) { return coll.at(idx); } } catch (std::exception& e) { // create stacktrace: std::stacktrace st = std::stacktrace::current(); // iterate over all entries of the stacktrace: std::println("DETAILS:"); for (const std::stacktrace_entry& entry : st) { if (!entry.source_file().empty()) { std::println(" {}\n at {}, line {}", entry.description(), entry.source_file(), entry.source_line()); } } } return false; } int callTest() { std::array arr{47, 11}; auto arrHas = [&arr] (int i) { return find(arr, 42); }; return arrHas(42); } int main() { callTest(); }