std::meta::access_context::scope, std::meta::access_context::designating_class
consteval std::meta::info scope() const; | (1) | |
consteval std::meta::info designating_class() const; | (2) |
1) Возвращает отражение пространства имён, класса или функции, с областью видимости которых связан
*this.
2) Возвращает отражение назначающего класса для
*this.Возвращаемое значение
Соответственно, связанная область видимости и назначающий класс.
Пример
#include <meta>
int main()
{
constexpr auto ctx1 = std::meta::access_context::current();
constexpr auto ctx2 = std::meta::access_context::unprivileged();
constexpr auto ctx3 = std::meta::access_context::unchecked();
static_assert(std::meta::is_function(ctx1.scope()));
static_assert(ctx2.scope() == ^^::);
static_assert(ctx3.scope() == std::meta::info{});
static_assert(ctx1.designating_class() == std::meta::info{});
struct X {};
static_assert(ctx1.via(^^X).designating_class() == ^^X);
}
См. также
создаёт std::meta::access_context с назначающим классом (открытая функция-член) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/meta/access_context/scope