Lodestar
An integrated real-time control package in C++
BlockUtilities.hpp
1
//
2
// Created by Hamza El-Kebir on 12/23/21.
3
//
4
5
#ifndef LODESTAR_BLOCKUTILITIES_HPP
6
#define LODESTAR_BLOCKUTILITIES_HPP
7
8
#include "Signal.hpp"
9
10
template
<
typename
TObject>
11
static
bool
connect(
ls::blocks::Signal<TObject>
* a,
ls::blocks::Signal<TObject>
* b)
12
{
13
return
a->connect(b);
14
}
15
16
template
<
typename
TObject,
typename
TObject2>
17
static
bool
connect(
ls::blocks::Signal<TObject>
* a,
ls::blocks::Signal<TObject2>
* b)
18
{
19
static_assert(::std::is_same<TObject, TObject2>::value,
"Signal types do not match."
);
20
return
false
;
21
}
22
23
template
<
typename
TObject>
24
static
bool
connect(
ls::blocks::Signal<TObject>
& a,
ls::blocks::Signal<TObject>
& b)
25
{
26
return
a.connect(b);
27
}
28
29
template
<
typename
TObject,
typename
TObject2>
30
static
bool
connect(
ls::blocks::Signal<TObject>
& a,
ls::blocks::Signal<TObject2>
& b)
31
{
32
static_assert(::std::is_same<TObject, TObject2>::value,
"Signal types do not match."
);
33
return
false
;
34
}
35
36
#endif //LODESTAR_BLOCKUTILITIES_HPP
ls::blocks::Signal
Definition:
Signal.hpp:22
Lodestar
blocks
BlockUtilities.hpp
Generated by
1.8.17