λ61
Loading...
Searching...
No Matches
PseudoKeywords.hpp File Reference

Go to the source code of this file.

Namespaces

namespace  l61

Macros

#define L61_PSEUDOKEYWORDS_HPP
#define l61_interface   struct
 denotes that I class is an interface with little to no implementation
#define l61_interface_call(access_level, sig)
 This denotes that a call within an interface is a pure virtual.
#define l61_interface_deconstructor(type)
 Create a standard virtual destructor for your interface.
#define l61_abstract_class   class
 Denotes that the class is abstract with most functions being implemented leaving a few functions to be implemented by inheritors.
#define l61_abstract_call(sig)
 denotes that the method call is not implemented
#define l61_abstract_destructor(type)
 Create a standard virtual destructor for your abstract class.
#define l61_unused   [[maybe_unused]]
#define C_CALL   extern "C"
#define LEX61_SYM_LOOKUP_COMPAT   extern "C"

Macro Definition Documentation

◆ C_CALL

#define C_CALL   extern "C"

◆ l61_abstract_call

#define l61_abstract_call ( sig )
Value:
virtual sig = 0

denotes that the method call is not implemented

Parameters
sigFunction signature written like prototype

◆ l61_abstract_class

#define l61_abstract_class   class

Denotes that the class is abstract with most functions being implemented leaving a few functions to be implemented by inheritors.

◆ l61_abstract_destructor

#define l61_abstract_destructor ( type)
Value:
public: virtual ~type() = default

Create a standard virtual destructor for your abstract class.

Parameters
typeThe abstract class type
Note
Is not mandatory but is recommended for simple abstract classes

◆ l61_interface

#define l61_interface   struct

denotes that I class is an interface with little to no implementation

Note
A static analyzer could be designed to use these although usage would have to be self enforced

◆ l61_interface_call

#define l61_interface_call ( access_level,
sig )
Value:
access_level: virtual sig = 0

This denotes that a call within an interface is a pure virtual.

Parameters
access_levelThe access level of the function call
sigFunction signature written like prototype
Note
A static analyzer could be designed to use these although usage would have to be self enforced

◆ l61_interface_deconstructor

#define l61_interface_deconstructor ( type)
Value:
public: virtual ~type() = default

Create a standard virtual destructor for your interface.

Parameters
typeThe interface type

◆ L61_PSEUDOKEYWORDS_HPP

#define L61_PSEUDOKEYWORDS_HPP

◆ l61_unused

#define l61_unused   [[maybe_unused]]

◆ LEX61_SYM_LOOKUP_COMPAT

#define LEX61_SYM_LOOKUP_COMPAT   extern "C"