GitHub Viewer
// Copyright Sebastian Jeckel 2014.
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
#ifndef REACT_TYPETRAITS_H_INCLUDED
#define REACT_TYPETRAITS_H_INCLUDED
#pragma once
#include "react/detail/Defs.h"
/*****************************************/ REACT_BEGIN /*****************************************/
///////////////////////////////////////////////////////////////////////////////////////////////////
/// Forward declarations
///////////////////////////////////////////////////////////////////////////////////////////////////
template
class Signal;
template
class VarSignal;
template
class TempSignal;
template
class Events;
template
class EventSource;
template
class TempEvents;
template
class Observer;
template
class ScopedObserver;
template
class Continuation;
///////////////////////////////////////////////////////////////////////////////////////////////////
/// IsSignal
///////////////////////////////////////////////////////////////////////////////////////////////////
template
struct IsSignal { static const bool value = false; };
template
struct IsSignal { static const bool value = true; };
template
struct IsSignal { static const bool value = true; };
template
struct IsSignal { static const bool value = true; };
///////////////////////////////////////////////////////////////////////////////////////////////////
/// IsEvent
///////////////////////////////////////////////////////////////////////////////////////////////////
template
struct IsEvent { static const bool value = false; };
template
struct IsEvent { static const bool value = true; };
template
struct IsEvent { static const bool value = true; };
template
struct IsEvent { static const bool value = true; };
///////////////////////////////////////////////////////////////////////////////////////////////////
/// IsObserver
///////////////////////////////////////////////////////////////////////////////////////////////////
template
struct IsObserver { static const bool value = false; };
template
struct IsObserver { static const bool value = true; };
template
struct IsObserver { static const bool value = true; };
///////////////////////////////////////////////////////////////////////////////////////////////////
/// IsContinuation
///////////////////////////////////////////////////////////////////////////////////////////////////
template
struct IsContinuation { static const bool value = false; };
template
struct IsContinuation { static const bool value = true; };
///////////////////////////////////////////////////////////////////////////////////////////////////
/// IsReactive
///////////////////////////////////////////////////////////////////////////////////////////////////
template
struct IsReactive { static const bool value = false; };
template
struct IsReactive { static const bool value = true; };
template
struct IsReactive { static const bool value = true; };
template
struct IsReactive { static const bool value = true; };
template
struct IsReactive { static const bool value = true; };
template
struct IsReactive { static const bool value = true; };
template
struct IsReactive { static const bool value = true; };
template
struct IsReactive { static const bool value = true; };
template
struct IsReactive { static const bool value = true; };
template
struct IsReactive { static const bool value = true; };
///////////////////////////////////////////////////////////////////////////////////////////////////
/// RemoveInput
///////////////////////////////////////////////////////////////////////////////////////////////////
template
struct RemoveInput { using Type = T; };
template
struct RemoveInput { using Type = Signal; };
template
struct RemoveInput { using Type = Events; };
/******************************************/ REACT_END /******************************************/
#endif // REACT_TYPETRAITS_H_INCLUDED