Miriam Castellanos
Editor and senior C++ engineer
- Answers
- 21
- Writes
- Language, Standard Library, Templates, Performance, Concurrency, Standards
- Reply-to
- hello@
cpp-next.com

Miriam Castellanos has written C++ for a living for sixteen years, most of them on a large simulation codebase that she helped move from C++03 to C++11, then to C++17 and C++20, one compiler upgrade at a time. She keeps a running list of the advice she had to unlearn on the way, and many of the guides here start from it.
As editor she writes the Language, Standard Library, Templates, Performance, Concurrency and Standards sections, edits every guide, and checks each code sample under the standard it names.
§
Answers 21, newest first
- 1Can a C++ destructor throw? What happens since C++11Language · · C++20
- 2C++ expression templates explained with a C++20 exampleTemplates · · C++20
- 3C++ generators:
co_yieldandstd::generatorConcurrency · · C++23 - 4C++ int to string:
to_string, format orto_chars, not itoaStandard Library · · C++17 - 5Strings as C++ template parameters with C++20
fixed_stringTemplates · · C++20 - 6C++ string to int:
std::stoiorstd::from_chars, not atoiStandard Library · · C++17 - 7C++ virtual functions: override, pure virtual and the trapsLanguage · · C++11
- 8C++20 concepts: how to write and use themStandards · · C++20
- 9C++ generic lambdas, template lambdas and function objectsTemplates · · C++20
- 10How to write comparators for
std::sortandstd::mapStandard Library · · C++20 - 11C++ move semantics: what
std::moveand&&really doLanguage · · C++20 - 12C++ pass by value or const reference: the rule since C++17Performance · · C++20
- 13Rule of zero: the special members C++ writes for youLanguage · · C++20
- 14
std::expectedin C++23: return a value or an errorStandard Library · · C++23 - 15C++ map:
std::mapfind, insert, erase and iterateStandard Library · · C++17 - 16
std::optionalin C++: how to use it and when not toStandard Library · · C++17 - 17
std::printlnin C++23: print withoutstd::coutor printfStandard Library · · C++23 - 18
std::spanin C++20: pass a view, not a pointer and a sizeStandard Library · · C++20 - 19
std::threadandstd::jthread: start, join and stop a threadConcurrency · · C++20 - 20
std::variantin C++:std::visit,std::getand the trapsStandard Library · · C++17 - 21When to mark a move constructor noexcept in C++Performance · · C++20