Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
include
ecl
streams
manipulators
manipulator.hpp
Go to the documentation of this file.
1
8
/*****************************************************************************
9
** Ifdefs
10
*****************************************************************************/
11
12
#ifndef ECL_STREAMS_MANIPULATOR_HPP_
13
#define ECL_STREAMS_MANIPULATOR_HPP_
14
15
/*****************************************************************************
16
** Includes
17
*****************************************************************************/
18
19
#include <ecl/config/macros.hpp>
20
#include <ecl/concepts/devices.hpp>
21
#include "../macros.hpp"
22
23
/*****************************************************************************
24
** Namespaces
25
*****************************************************************************/
26
27
namespace
ecl
{
28
29
/*****************************************************************************
30
** Forwarding
31
*****************************************************************************/
32
33
namespace
interfaces {
34
template
<
typename
Device,
bool
OutputDevice>
class
ECL_PUBLIC
OutputTextStream
;
35
}
36
37
/*****************************************************************************
38
** Interface [Manipulator]
39
*****************************************************************************/
91
template
<
typename
Derived>
92
class
ecl_streams_PUBLIC
Manipulator
{
93
public
:
108
template
<
typename
ODevice>
109
void
insert
(
interfaces::OutputTextStream<ODevice,true>
& ostream) {
110
ecl_compile_time_concept_check
(
OutputCharDeviceConcept<ODevice>
);
111
static_cast<
Derived*
>
(
this
)->action(ostream);
112
}
113
114
virtual
~Manipulator
() {}
115
};
116
117
}
// namespace ecl
118
119
#endif
/* ECL_STREAMS_MANIPULATOR_HPP_ */
ecl::Manipulator
Parent template for c++ style stream manipulators.
Definition:
manipulator.hpp:92
ecl
ecl::OutputCharDeviceConcept
Validates functionality for the output char device concept.
Definition:
concepts/devices.hpp:76
ecl::Manipulator::insert
void insert(interfaces::OutputTextStream< ODevice, true > &ostream)
The static crtp virtual parent call.
Definition:
manipulator.hpp:109
ecl::interfaces::OutputTextStream
Parent template for output text streams.
Definition:
output_text_stream.hpp:55
ECL_PUBLIC
#define ECL_PUBLIC
Definition:
ecl/config/macros.hpp:169
ecl::Manipulator::~Manipulator
virtual ~Manipulator()
Definition:
manipulator.hpp:114
ecl_compile_time_concept_check
#define ecl_compile_time_concept_check(Model)
Compile time concept checking assertion.
Definition:
ecl/concepts/macros.hpp:92
ecl_streams_PUBLIC
#define ecl_streams_PUBLIC
Definition:
ecl/streams/macros.hpp:37
xbot_driver
Author(s): Roc, wangpeng@droid.ac.cn
autogenerated on Sat Oct 10 2020 03:27:37