cppx-core
Macros
macro-use.hpp File Reference

Macros for generating more concise and clear using statements, primarily $use_cppx and $use_std, but also more generally $use_from_namespace, $use_namespace_name_in, $use_cppx_namespace_name, $use_std_namespace_name, $use_namespace_names_in, $use_cppx_namespace_names and $use_std_namespace_names. More...

#include <cppx-core/meta-macro/macro-apply_with_fixed_arg.hpp>
Include dependency graph for macro-use.hpp:

Go to the source code of this file.

Macros

#define use_from_namespace   CPPX_USE_FROM_NAMESPACE
 Real name: $use_from_namespace (the $ is just removed by Doxygen). More...
 
#define use_cppx   CPPX_USE_CPPX
 Real name: $use_cppx (the $ is just removed by Doxygen). More...
 
#define use_std   CPPX_USE_STD
 Real name: $use_std (the $ is just removed by Doxygen). More...
 
#define use_namespace_name_in   CPPX_USE_NAMESPACE_NAME_IN
 Real name: $use_namespace_name_in (the $ is just removed by Doxygen). More...
 
#define use_cppx_namespace_name   CPPX_USE_CPPX_NAMESPACE_NAME
 Real name: $use_cppx_namespace_name (the $ is just removed by Doxygen). More...
 
#define use_std_namespace_name   CPPX_USE_STD_NAMESPACE_NAME
 Real name: $use_std_namespace_name (the $ is just removed by Doxygen). More...
 
#define use_namespace_names_in   CPPX_USE_NAMESPACE_NAMES_IN
 Real name: $use_namespace_names_in (the $ is just removed by Doxygen). More...
 
#define use_cppx_namespace_names   CPPX_USE_CPPX_NAMESPACE_NAMES
 Real name: $use_cppx_namespace_names (the $ is just removed by Doxygen). More...
 
#define use_std_namespace_names   CPPX_USE_STD_NAMESPACE_NAMES
 Real name: $use_std_namespace_names (the $ is just removed by Doxygen). More...
 
#define CPPX_USE_FROM_NAMESPACE(ns, ...)
 Use each specified item ITEM from namespace NS as if by using NS::ITEM;. More...
 
#define CPPX_USE_CPPX(...)   CPPX_USE_FROM_NAMESPACE( cppx, __VA_ARGS__ )
 Use each specified item ITEM from namespace cppx as if by using cppx::ITEM;. More...
 
#define CPPX_USE_STD(...)   CPPX_USE_FROM_NAMESPACE( std, __VA_ARGS__ )
 Use each specified item ITEM from namespace std as if by using std::ITEM;. More...
 
#define CPPX_USE_NAMESPACE_NAME_IN(parent_ns, nested_ns)   namespace nested_ns = parent_ns::nested_ns
 Use NESTED_NS as an alias for namespace PARENT_NS::NESTED_NS. More...
 
#define CPPX_USE_CPPX_NAMESPACE_NAME(nested_ns)   CPPX_USE_NAMESPACE_NAME_IN( cppx, nested_ns )
 Use NESTED_NS as an alias for namespace cppx::NESTED_NS. More...
 
#define CPPX_USE_STD_NAMESPACE_NAME(nested_ns)   CPPX_USE_NAMESPACE_NAME_IN( std, nested_ns )
 Use NESTED_NS as an alias for namespace std::NESTED_NS. More...
 
#define CPPX_USE_NAMESPACE_NAMES_IN(parent_ns, ...)
 Use each specified NESTED_NS as an alias for namespace PARENT_NS::NESTED_NS. More...
 
#define CPPX_USE_CPPX_NAMESPACE_NAMES(...)   CPPX_USE_NAMESPACE_NAMES_IN( cppx, __VA_ARGS__ )
 Use each specified NESTED_NS as an alias for namespace cppx::NESTED_NS. More...
 
#define CPPX_USE_STD_NAMESPACE_NAMES(...)   CPPX_USE_NAMESPACE_NAMES_IN( std, __VA_ARGS__ )
 Use each specified NESTED_NS as an alias for namespace std::NESTED_NS. More...
 

Detailed Description

Macros for generating more concise and clear using statements, primarily $use_cppx and $use_std, but also more generally $use_from_namespace, $use_namespace_name_in, $use_cppx_namespace_name, $use_std_namespace_name, $use_namespace_names_in, $use_cppx_namespace_names and $use_std_namespace_names.

Definition in file macro-use.hpp.

Macro Definition Documentation

◆ CPPX_USE_CPPX

#define CPPX_USE_CPPX (   ...)    CPPX_USE_FROM_NAMESPACE( cppx, __VA_ARGS__ )

Use each specified item ITEM from namespace cppx as if by using cppx::ITEM;.

Parameters
...A comma separated list of items to use unqualified.

Definition at line 46 of file macro-use.hpp.

◆ CPPX_USE_CPPX_NAMESPACE_NAME

#define CPPX_USE_CPPX_NAMESPACE_NAME (   nested_ns)    CPPX_USE_NAMESPACE_NAME_IN( cppx, nested_ns )

Use NESTED_NS as an alias for namespace cppx::NESTED_NS.

Parameters
nested_nsThe nested namespace.

Definition at line 65 of file macro-use.hpp.

◆ CPPX_USE_CPPX_NAMESPACE_NAMES

#define CPPX_USE_CPPX_NAMESPACE_NAMES (   ...)    CPPX_USE_NAMESPACE_NAMES_IN( cppx, __VA_ARGS__ )

Use each specified NESTED_NS as an alias for namespace cppx::NESTED_NS.

Parameters
...A comma separated list of names of nested namespaces.

Definition at line 91 of file macro-use.hpp.

◆ CPPX_USE_FROM_NAMESPACE

#define CPPX_USE_FROM_NAMESPACE (   ns,
  ... 
)

Use each specified item ITEM from namespace NS as if by using NS::ITEM;.

Parameters
nsThe namespace name.
...A comma separated list of items to use unqualified.

Definition at line 34 of file macro-use.hpp.

◆ CPPX_USE_NAMESPACE_NAME_IN

#define CPPX_USE_NAMESPACE_NAME_IN (   parent_ns,
  nested_ns 
)    namespace nested_ns = parent_ns::nested_ns

Use NESTED_NS as an alias for namespace PARENT_NS::NESTED_NS.

Parameters
parent_nsThe namespace containing the relevant nested namespace.
nested_nsThe nested namespace.

Definition at line 59 of file macro-use.hpp.

◆ CPPX_USE_NAMESPACE_NAMES_IN

#define CPPX_USE_NAMESPACE_NAMES_IN (   parent_ns,
  ... 
)

Use each specified NESTED_NS as an alias for namespace PARENT_NS::NESTED_NS.

Parameters
parent_nsThe namespace containing the relevant nested namespace.
...A comma separated list of names of nested namespaces.

Definition at line 79 of file macro-use.hpp.

◆ CPPX_USE_STD

#define CPPX_USE_STD (   ...)    CPPX_USE_FROM_NAMESPACE( std, __VA_ARGS__ )

Use each specified item ITEM from namespace std as if by using std::ITEM;.

Parameters
...A comma separated list of items to use unqualified.

Definition at line 52 of file macro-use.hpp.

◆ CPPX_USE_STD_NAMESPACE_NAME

#define CPPX_USE_STD_NAMESPACE_NAME (   nested_ns)    CPPX_USE_NAMESPACE_NAME_IN( std, nested_ns )

Use NESTED_NS as an alias for namespace std::NESTED_NS.

Parameters
nested_nsThe nested namespace.

Definition at line 71 of file macro-use.hpp.

◆ CPPX_USE_STD_NAMESPACE_NAMES

#define CPPX_USE_STD_NAMESPACE_NAMES (   ...)    CPPX_USE_NAMESPACE_NAMES_IN( std, __VA_ARGS__ )

Use each specified NESTED_NS as an alias for namespace std::NESTED_NS.

Parameters
...A comma separated list of names of nested namespaces.

Definition at line 97 of file macro-use.hpp.

◆ use_cppx

#define use_cppx   CPPX_USE_CPPX

Real name: $use_cppx (the $ is just removed by Doxygen).

Definition at line 19 of file macro-use.hpp.

◆ use_cppx_namespace_name

#define use_cppx_namespace_name   CPPX_USE_CPPX_NAMESPACE_NAME

Real name: $use_cppx_namespace_name (the $ is just removed by Doxygen).

Definition at line 22 of file macro-use.hpp.

◆ use_cppx_namespace_names

#define use_cppx_namespace_names   CPPX_USE_CPPX_NAMESPACE_NAMES

Real name: $use_cppx_namespace_names (the $ is just removed by Doxygen).

Definition at line 25 of file macro-use.hpp.

◆ use_from_namespace

#define use_from_namespace   CPPX_USE_FROM_NAMESPACE

Real name: $use_from_namespace (the $ is just removed by Doxygen).

Definition at line 18 of file macro-use.hpp.

◆ use_namespace_name_in

#define use_namespace_name_in   CPPX_USE_NAMESPACE_NAME_IN

Real name: $use_namespace_name_in (the $ is just removed by Doxygen).

Definition at line 21 of file macro-use.hpp.

◆ use_namespace_names_in

#define use_namespace_names_in   CPPX_USE_NAMESPACE_NAMES_IN

Real name: $use_namespace_names_in (the $ is just removed by Doxygen).

Definition at line 24 of file macro-use.hpp.

◆ use_std

#define use_std   CPPX_USE_STD

Real name: $use_std (the $ is just removed by Doxygen).

Definition at line 20 of file macro-use.hpp.

◆ use_std_namespace_name

#define use_std_namespace_name   CPPX_USE_STD_NAMESPACE_NAME

Real name: $use_std_namespace_name (the $ is just removed by Doxygen).

Definition at line 23 of file macro-use.hpp.

◆ use_std_namespace_names

#define use_std_namespace_names   CPPX_USE_STD_NAMESPACE_NAMES

Real name: $use_std_namespace_names (the $ is just removed by Doxygen).

Definition at line 26 of file macro-use.hpp.