forked from boostorg/assert
Document source_location
This commit is contained in:
@ -1,5 +1,6 @@
|
||||
<style>
|
||||
|
||||
*:not(pre)>code { background: none; color: #600000; }
|
||||
:not(pre):not([class^=L])>code { background: none; color: #600000; }
|
||||
|
||||
</style>
|
||||
|
@ -19,8 +19,8 @@ similar in behavior and purpose to the standard macro `assert` from `<cassert>`.
|
||||
:leveloffset: +1
|
||||
|
||||
include::assert.adoc[]
|
||||
|
||||
include::current_function.adoc[]
|
||||
include::source_location.adoc[]
|
||||
|
||||
:leveloffset: -1
|
||||
|
||||
@ -29,7 +29,7 @@ include::current_function.adoc[]
|
||||
|
||||
This documentation is
|
||||
|
||||
* Copyright 2002, 2007, 2014, 2017 Peter Dimov
|
||||
* Copyright 2002, 2007, 2014, 2017, 2019 Peter Dimov
|
||||
* Copyright 2011 Beman Dawes
|
||||
* Copyright 2015 Ion Gaztañaga
|
||||
* Distributed under the http://www.boost.org/LICENSE_1_0.txt[Boost Software License, Version 1.0].
|
||||
|
82
doc/source_location.adoc
Normal file
82
doc/source_location.adoc
Normal file
@ -0,0 +1,82 @@
|
||||
////
|
||||
Copyright 2019 Peter Dimov
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
http://www.boost.org/LICENSE_1_0.txt
|
||||
////
|
||||
|
||||
# Source Location Support, <boost/assert/source_location.hpp>
|
||||
:toc:
|
||||
:toc-title:
|
||||
:idprefix:
|
||||
|
||||
## Description
|
||||
|
||||
The header `<boost/assert/source_location.hpp>` defines `source_location`,
|
||||
a class representing a source location and containing file, line, function
|
||||
and column information. It's similar to `std::source_location` from {cpp}20,
|
||||
but only requires {cpp}03.
|
||||
|
||||
The macro `BOOST_CURRENT_LOCATION` creates a `source_location` object
|
||||
containing information about the current source location.
|
||||
|
||||
## Synopsis
|
||||
|
||||
```
|
||||
namespace boost
|
||||
{
|
||||
|
||||
struct source_location
|
||||
{
|
||||
constexpr source_location() noexcept;
|
||||
constexpr source_location(char const* file, uint_least32_t line,
|
||||
char const* function, uint_least32_t column = 0) noexcept;
|
||||
|
||||
constexpr char const* file_name() const noexcept;
|
||||
constexpr char const* function_name() const noexcept;
|
||||
constexpr uint_least32_t line() const noexcept;
|
||||
constexpr uint_least32_t column() const noexcept;
|
||||
};
|
||||
|
||||
} // namespace boost
|
||||
|
||||
#define BOOST_CURRENT_LOCATION \
|
||||
::boost::source_location(__FILE__, __LINE__, BOOST_CURRENT_FUNCTION)
|
||||
```
|
||||
|
||||
## source_location
|
||||
|
||||
```
|
||||
constexpr source_location() noexcept;
|
||||
```
|
||||
|
||||
Effects: :: Constructs a `source_location` object for which `file_name()`
|
||||
and `function_name()` return `"(unknown)"`, and `line()` and `column()`
|
||||
return `0`.
|
||||
|
||||
```
|
||||
constexpr source_location(char const* file, uint_least32_t line,
|
||||
char const* function, uint_least32_t column = 0) noexcept;
|
||||
```
|
||||
|
||||
Effects: :: Constructs a `source_location` object for which `file_name()`
|
||||
returns `file`, `function_name()` returns `function`, `line()` returns the
|
||||
`line` argument and `column()` returns the `column` argument.
|
||||
|
||||
## BOOST_CURRENT_LOCATION
|
||||
|
||||
When `BOOST_DISABLE_CURRENT_LOCATION` is not defined, the definition of
|
||||
`BOOST_CURRENT_LOCATION` is:
|
||||
|
||||
```
|
||||
#define BOOST_CURRENT_LOCATION \
|
||||
::boost::source_location(__FILE__, __LINE__, BOOST_CURRENT_FUNCTION)
|
||||
```
|
||||
|
||||
Otherwise, `BOOST_CURRENT_LOCATION` is defined as:
|
||||
|
||||
```
|
||||
#define BOOST_CURRENT_LOCATION ::boost::source_location()
|
||||
```
|
||||
|
||||
This allows producing executables that contain no identifying information,
|
||||
for security reasons.
|
Reference in New Issue
Block a user