Single Source of Truth
Mr.Docs turns the documentation comments that live next to your C++ declarations into authoritative reference pages. One source of truth—your code.
Built for C++
Mr.Docs models C++ accurately: overload sets, concepts and constraints, deduced return types, aliases, constants, SFINAE, inherited and hidden members, niebloids, and more.
Multiple output formats
Export to AsciiDoc, HTML, or XML - or extend it with your own generator plugins.
Customizable
Highly configurable: control output format and theme, tailor symbol selection, and tune generation to match your project’s standards.
More Code, Fewer Workarounds
Mr.Docs lets you keep code simple and maintainable.
- Accurate rendering of attributes and exception specifications (e.g. [[noreturn]], noexcept).
/** Exit the program. The program will end immediately. @note This function does not return. */ [[noreturn]] void terminate() noexcept; terminate
Exit the program.
Synopsis
<terminate.cpp>[[noreturn]] void terminate() noexcept; Description
The program will end immediately.
NOTE
This function does not return.
- Documentation comments become structured reference pages—synopsis, description, parameters, and returns.
/** Return the distance between two points This function returns the distance between two points according to the Euclidean distance formula. @param x0 The x-coordinate of the first point @param y0 The y-coordinate of the first point @param x1 The x-coordinate of the second point @param y1 The y-coordinate of the second point @return The distance between the two points */ double distance(double x0, double y0, double x1, double y1); distance
Return the distance between two points
Synopsis
<distance.cpp>double distance( double x0, double y0, double x1, double y1); Description
This function returns the distance between two points according to the Euclidean distance formula.
Return Value
The distance between the two pointsParameters
| Name | Description |
|---|---|
| x0 | The x-coordinate of the first point |
| y0 | The y-coordinate of the first point |
| x1 | The x-coordinate of the second point |
| y1 | The y-coordinate of the second point |
- Use directives to capture semantics beyond the signature.
/** Return true if a number is prime. @par Complexity Linear in n. @return Whether `n` is prime. @param n The number to test */ bool is_prime(unsigned long long n) noexcept; is_prime
Return true if a number is prime.
Synopsis
<is_prime.cpp>bool is_prime(unsigned long long n) noexcept; Complexity
Linear in n.
Return Value
Whethern is prime. Parameters
| Name | Description |
|---|---|
| n | The number to test |
- Understands concepts, constraints, and SFINAE—rendered as you wrote them.
#include <type_traits> #include <stdexcept> /** Computes the square root of an integral value. This function calculates the square root of a given integral value using bit manipulation. @throws std::invalid_argument if the input value is negative. @tparam T The type of the input value. Must be an integral type. @param value The integral value to compute the square root of. @return The square root of the input value. */ template <typename T> std::enable_if_t<std::is_integral_v<T>, T> sqrt(T value) { if (value < 0) { throw std::invalid_argument( "Cannot compute square root of a negative number"); } T result = 0; // The second-to-top bit is set T bit = 1 << (sizeof(T) * 8 - 2); while (bit > value) bit >>= 2; while (bit != 0) { if (value >= result + bit) { value -= result + bit; result += bit << 1; } result >>= 1; bit >>= 2; } return result; } sqrt
Computes the square root of an integral value.
Synopsis
<sqrt.cpp>template<typename T> T sqrt(T value) requires std::is_integral_v<T>; Description
This function calculates the square root of a given integral value using bit manipulation.
Exceptions
| Name | Thrown on |
|---|---|
std::invalid_argument | if the input value is negative. |
Return Value
The square root of the input value.Template Parameters
| Name | Description |
|---|---|
| T | The type of the input value. Must be an integral type. |
Parameters
| Name | Description |
|---|---|
| value | The integral value to compute the square root of. |
Like what you see? Star us on GitHub: