WebCFace 2.5.2
Web-based Communication Framework & Dashboard-like UI
Loading...
Searching...
No Matches
complete.h File Reference
#include <cstddef>
#include "webcface-config.h"
Include dependency graph for complete.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  webcface
 
namespace  webcface::traits
 

Macros

#define define_assert_complete(Type, header)
 
#define WEBCFACE_COMPLETE(Type)
 

Functions

constexpr bool isComplete (...)
 
template<typename T , int = sizeof(T)>
constexpr bool isComplete (T *)
 
template<typename T >
constexpr std::nullptr_t assertCompleteMember ()
 
template<typename T >
constexpr std::nullptr_t assertCompleteValue ()
 
template<typename T >
constexpr std::nullptr_t assertCompleteText ()
 
template<typename T >
constexpr std::nullptr_t assertCompleteVariant ()
 
template<typename T >
constexpr std::nullptr_t assertCompleteView ()
 
template<typename T >
constexpr std::nullptr_t assertCompleteImage ()
 
template<typename T >
constexpr std::nullptr_t assertCompleteFunc ()
 
template<typename T >
constexpr std::nullptr_t assertCompleteFuncListener ()
 
template<typename T >
constexpr std::nullptr_t assertCompleteRobotModel ()
 
template<typename T >
constexpr std::nullptr_t assertCompleteCanvas2D ()
 
template<typename T >
constexpr std::nullptr_t assertCompleteCanvas3D ()
 
template<typename T >
constexpr std::nullptr_t assertCompleteLog ()
 

Macro Definition Documentation

◆ define_assert_complete

#define define_assert_complete (   Type,
  header 
)
Value:
template <typename T> \
constexpr std::nullptr_t assertComplete##Type() { \
static_assert(isComplete((T *)nullptr), \
"Please include <webcface/" #header \
"> to use class " #Type "!"); \
return nullptr; \
}

◆ WEBCFACE_COMPLETE

#define WEBCFACE_COMPLETE (   Type)
Value:
typename Type##_ = Type, \
std::nullptr_t = ::webcface::traits::assertComplete##Type< \
std::enable_if_t<std::is_same_v<Type##_, Type>, Type##_>>()