Iros
 
Loading...
Searching...
No Matches
source_location.h
Go to the documentation of this file.
1#pragma once
2
4
5#ifndef DI_CLANG
6#define __builtin_COLUMN() 0
7#endif
8
9namespace di::util {
11public:
12 consteval static auto current(char const* file_name = __builtin_FILE(),
13 char const* function_name = __builtin_FUNCTION(),
14 unsigned int line = __builtin_LINE(), unsigned int column = __builtin_COLUMN())
16 auto result = SourceLocation();
17 result.m_file_name = file_name;
18 result.m_function_name = function_name;
19 result.m_line = line;
20 result.m_column = column;
21 return result;
22 }
23
24 constexpr SourceLocation() = default;
25
26 constexpr auto line() const -> unsigned int { return m_line; }
27 constexpr auto column() const -> unsigned int { return m_column; }
28 constexpr auto file_name() const -> char const* { return m_file_name; }
29 constexpr auto function_name() const -> char const* { return m_function_name; }
30
31private:
32 char const* m_file_name { "" };
33 char const* m_function_name { "" };
34 unsigned int m_line { 0U };
35 unsigned int m_column { 0U };
36};
37}
38
39namespace di {
41}
42
43#ifndef DI_CLANG
44#undef __builtin_COLUMN
45#endif
Definition source_location.h:10
constexpr auto function_name() const -> char const *
Definition source_location.h:29
constexpr SourceLocation()=default
constexpr auto line() const -> unsigned int
Definition source_location.h:26
static consteval auto current(char const *file_name=__builtin_FILE(), char const *function_name=__builtin_FUNCTION(), unsigned int line=__builtin_LINE(), unsigned int column=__builtin_COLUMN()) -> SourceLocation
Definition source_location.h:12
constexpr auto column() const -> unsigned int
Definition source_location.h:27
constexpr auto file_name() const -> char const *
Definition source_location.h:28
Definition vocab.h:96
Definition zstring_parser.h:9
@ U
Definition key.h:30
#define __builtin_COLUMN()
Definition source_location.h:6