mimic++ v9.2.1
Loading...
Searching...
No Matches
mimicpp::util::SourceLocation Class Reference

A thin wrapper around general source-location info. More...

#include <SourceLocation.hpp>

Collaboration diagram for mimicpp::util::SourceLocation:
[legend]

Public Member Functions

 ~SourceLocation ()=default
 
 explicit (false) const expr SourceLocation(auto &&... canary
 Compatibility constructor, used in cases where std::source_location is not available.
 
SourceLocationoperator= (SourceLocation const &)=default
 
 SourceLocation (SourceLocation &&)=default
 
SourceLocationoperator= (SourceLocation &&)=default
 
constexpr std::string_view file_name () const noexcept
 
constexpr std::string_view function_name () const noexcept
 
constexpr std::size_t line () const noexcept
 

Public Attributes

std::string_view const fileName = __builtin_FILE()
 
std::string_view const std::string_view const functionName = __builtin_FUNCTION()
 
std::string_view const std::string_view const std::size_t const line
 

Friends

constexpr bool operator== (SourceLocation const &lhs, SourceLocation const &rhs) noexcept
 

Detailed Description

A thin wrapper around general source-location info.

By default, mimic++ uses the C++20 std::source_location feature. However, this feature is not available on all platforms or with all compilers, for which it then automatically falls back to specific compiler intrinsics.

Constructor & Destructor Documentation

◆ ~SourceLocation()

mimicpp::util::SourceLocation::~SourceLocation ( )
default

◆ SourceLocation()

mimicpp::util::SourceLocation::SourceLocation ( SourceLocation && )
default
Here is the call graph for this function:
Here is the caller graph for this function:

Member Function Documentation

◆ explicit()

mimicpp::util::SourceLocation::explicit ( false ) const &&
nodiscard

Compatibility constructor, used in cases where std::source_location is not available.

Parameters
canaryParameter-pack, preventing users modifying the relevant default arguments.
fileNameThe deduced file name.
functionNameThe deduced function name.
lineThe deduced line number.

◆ file_name()

std::string_view mimicpp::util::SourceLocation::file_name ( ) const
inlinenodiscardconstexprnoexcept

◆ function_name()

std::string_view mimicpp::util::SourceLocation::function_name ( ) const
inlinenodiscardconstexprnoexcept

◆ line()

std::size_t mimicpp::util::SourceLocation::line ( ) const
inlinenodiscardconstexprnoexcept

◆ operator=() [1/2]

SourceLocation & mimicpp::util::SourceLocation::operator= ( SourceLocation && )
default
Here is the call graph for this function:

◆ operator=() [2/2]

SourceLocation & mimicpp::util::SourceLocation::operator= ( SourceLocation const & )
default
Here is the call graph for this function:

Friends And Related Symbol Documentation

◆ operator==

bool operator== ( SourceLocation const & lhs,
SourceLocation const & rhs )
friend

Member Data Documentation

◆ fileName

std::string_view const mimicpp::util::SourceLocation::fileName = __builtin_FILE()

◆ functionName

std::string_view const std::string_view const mimicpp::util::SourceLocation::functionName = __builtin_FUNCTION()

◆ line

std::string_view const std::string_view const std::size_t const mimicpp::util::SourceLocation::line
Initial value:
= __builtin_LINE()) noexcept
: m_FileName{fileName},
m_FunctionName{functionName},
m_Line{line}
{
static_assert(0 == sizeof...(canary), "Do not supply custom arguments to util::SourceLocation.");
}
SourceLocation(SourceLocation const&) = default
std::string_view const std::string_view const functionName
Definition SourceLocation.hpp:70
std::string_view const fileName
Definition SourceLocation.hpp:69
SourceLocation(SourceLocation &&)=default
std::string_view const std::string_view const std::size_t const line
Definition SourceLocation.hpp:71

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