public API
(
switch to internal
)
-
revision 3.7.0
casadi
core
printable.hpp
1
/*
2
* This file is part of CasADi.
3
*
4
* CasADi -- A symbolic framework for dynamic optimization.
5
* Copyright (C) 2010-2023 Joel Andersson, Joris Gillis, Moritz Diehl,
6
* KU Leuven. All rights reserved.
7
* Copyright (C) 2011-2014 Greg Horn
8
*
9
* CasADi is free software; you can redistribute it and/or
10
* modify it under the terms of the GNU Lesser General Public
11
* License as published by the Free Software Foundation; either
12
* version 3 of the License, or (at your option) any later version.
13
*
14
* CasADi is distributed in the hope that it will be useful,
15
* but WITHOUT ANY WARRANTY; without even the implied warranty of
16
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
* Lesser General Public License for more details.
18
*
19
* You should have received a copy of the GNU Lesser General Public
20
* License along with CasADi; if not, write to the Free Software
21
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22
*
23
*/
24
25
26
#ifndef CASADI_PRINTABLE_HPP
27
#define CASADI_PRINTABLE_HPP
28
29
#if __GNUC__
30
#pragma GCC diagnostic push
31
#pragma GCC diagnostic ignored "-Wnonnull"
32
#endif
33
#include <iostream>
34
#if __GNUC__
35
#pragma GCC diagnostic pop
36
#endif
37
38
#include <sstream>
39
#include <streambuf>
40
#include <string>
41
#include <vector>
42
43
#include "casadi_common.hpp"
44
45
namespace
casadi
{
46
52
struct
CASADI_EXPORT
PrintableCommon
{};
53
54
#ifndef SWIG
61
template
<
class
Derived>
62
class
CASADI_EXPORT Printable :
public
PrintableCommon
{
63
public
:
65
inline
friend
66
std::ostream& operator<<(std::ostream &stream,
const
Derived& obj) {
67
obj.disp(stream);
68
return
stream;
69
}
70
72
inline
friend
std::string repr(
const
Derived& obj) {
73
return
Derived::type_name() +
"("
+ obj.get_str() +
")"
;
74
}
75
};
76
#endif
// SWIG
77
78
}
// namespace casadi
79
80
81
#endif
// CASADI_PRINTABLE_HPP
casadi
The casadi namespace.
Definition:
archiver.hpp:32
casadi::PrintableCommon
Empty Base.
Definition:
printable.hpp:52