IODA Bundle
ioda::detail::compat::source_location::source_location Struct Reference

This is a placeholder implementation for std::source_location, which is part of C++20. More...

#include <source_location_compat.h>

Public Member Functions

 source_location () noexcept
 Default constructor. Implementation-defined behavior. More...
 
 source_location (uint_least32_t line, uint_least32_t column, const char *file, const char *func)
 
uint_least32_t line () const noexcept
 
uint_least32_t column () const noexcept
 
const char * file_name () const noexcept
 
const char * function_name () const noexcept
 

Static Public Member Functions

static source_location current () noexcept
 Determine current source location. More...
 

Private Attributes

uint_least32_t line_
 
uint_least32_t column_
 
const char * file_name_
 
const char * function_name_
 

Detailed Description

This is a placeholder implementation for std::source_location, which is part of C++20.

We backport this to older compilers as needed.

Definition at line 28 of file source_location_compat.h.

Constructor & Destructor Documentation

◆ source_location() [1/2]

ioda::detail::compat::source_location::source_location::source_location ( )
inlinenoexcept

Default constructor. Implementation-defined behavior.

Definition at line 35 of file source_location_compat.h.

Here is the caller graph for this function:

◆ source_location() [2/2]

ioda::detail::compat::source_location::source_location::source_location ( uint_least32_t  line,
uint_least32_t  column,
const char *  file,
const char *  func 
)
inline

Definition at line 37 of file source_location_compat.h.

Member Function Documentation

◆ column()

uint_least32_t ioda::detail::compat::source_location::source_location::column ( ) const
inlinenoexcept

Definition at line 42 of file source_location_compat.h.

◆ current()

static source_location ioda::detail::compat::source_location::source_location::current ( )
inlinestaticnoexcept

Determine current source location.

Note
Does not quite match the standard since we really need compiler support to implement this outside of a macro. For now, ioda users should use ioda_Here instead.
See also
ioda_Here for the standard implementation.

Definition at line 33 of file source_location_compat.h.

Here is the call graph for this function:

◆ file_name()

const char* ioda::detail::compat::source_location::source_location::file_name ( ) const
inlinenoexcept

Definition at line 43 of file source_location_compat.h.

◆ function_name()

const char* ioda::detail::compat::source_location::source_location::function_name ( ) const
inlinenoexcept

Definition at line 44 of file source_location_compat.h.

◆ line()

uint_least32_t ioda::detail::compat::source_location::source_location::line ( ) const
inlinenoexcept

Definition at line 41 of file source_location_compat.h.

Member Data Documentation

◆ column_

uint_least32_t ioda::detail::compat::source_location::source_location::column_
private

Definition at line 48 of file source_location_compat.h.

◆ file_name_

const char* ioda::detail::compat::source_location::source_location::file_name_
private

Definition at line 49 of file source_location_compat.h.

◆ function_name_

const char* ioda::detail::compat::source_location::source_location::function_name_
private

Definition at line 50 of file source_location_compat.h.

◆ line_

uint_least32_t ioda::detail::compat::source_location::source_location::line_
private

Definition at line 47 of file source_location_compat.h.


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