Skip to main content

The source_location Class Reference

Local implementation of source location information for diagnostics. More...

Declaration

class micro_os_plus::micro_test_plus::reflection::source_location { ... }

Included Headers

Public Member Functions Index

constexpr autofile_name (void) const noexcept

Retrieve the file name associated with this source location. More...

constexpr autoline (void) const noexcept

Retrieve the line number associated with this source location. More...

Private Member Attributes Index

const char *file_ { "unknown" }

The file name where the source location was captured. More...

unsigned intline_ {}

The line number where the source location was captured. More...

Public Static Functions Index

static constexpr autocurrent (const char *file="unknown", unsigned int line={}) noexcept

Obtain the current source location. More...

Description

Local implementation of source location information for diagnostics.

This class provides a lightweight, constexpr-compatible alternative to std::source_location for environments lacking C++20 standard support.

It enables retrieval of the file name and line number at the point of invocation, supporting enhanced diagnostics and reporting within the µTest++ framework.

The static current() method captures the current source location, using compiler built-ins where available, or defaulting to "unknown" and zero otherwise.

Since

3.0.0

Definition at line 136 of file reflection.h.

Public Member Functions

file_name()

auto micro_os_plus::micro_test_plus::reflection::source_location::file_name (void)
nodiscard constexpr noexcept

Retrieve the file name associated with this source location.

Parameters

None.

Returns

The file name as a constant character pointer.

... TBD

Declaration at line 164 of file reflection.h, definition at line 104 of file reflection-inlines.h.

104 source_location::file_name (void) const noexcept
105 {
106 return file_;
107 }

Reference file_.

Referenced by micro_os_plus::micro_test_plus::test_reporter::output_fail_prefix_.

line()

auto micro_os_plus::micro_test_plus::reflection::source_location::line (void)
nodiscard constexpr noexcept

Retrieve the line number associated with this source location.

Parameters

None.

Returns

The line number as an unsigned integer.

... TBD

Declaration at line 174 of file reflection.h, definition at line 114 of file reflection-inlines.h.

114 source_location::line (void) const noexcept
115 {
116 return line_;
117 }

Reference line_.

Referenced by current and micro_os_plus::micro_test_plus::test_reporter::output_fail_prefix_.

Private Member Attributes

file_

const char* micro_os_plus::micro_test_plus::reflection::source_location::file_ { "unknown" }

The file name where the source location was captured.

Definition at line 180 of file reflection.h.

180 const char* file_{ "unknown" };

Referenced by current and file_name.

line_

unsigned int micro_os_plus::micro_test_plus::reflection::source_location::line_ {}

The line number where the source location was captured.

Definition at line 185 of file reflection.h.

185 unsigned int line_{};

Referenced by current and line.

Public Static Functions

current()

auto micro_os_plus::micro_test_plus::reflection::source_location::current (const char * file="unknown", unsigned int line={})
nodiscard constexpr noexcept static

Obtain the current source location.

Parameters
file

The file name (automatically provided by the compiler).

line

The line number (automatically provided by the compiler).

Returns

A source_location instance with the captured information.

Returns a source_location instance representing the file name and line number at the point of invocation.

If supported by the compiler, uses built-in macros to capture this information; otherwise, defaults to "unknown" and zero.

Declaration at line 147 of file reflection.h, definition at line 91 of file reflection-inlines.h.

91 source_location::current (const char* file, unsigned int line) noexcept
92 {
94 sl.file_ = file;
95 sl.line_ = line;
96 return sl;
97 }

References file_, line and line_.


The documentation for this class was generated from the following files:


Generated via doxygen2docusaurus by Doxygen 1.14.0.