public API
(
switch to internal
)
-
revision 3.6.7
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
#include <iostream>
30
#include <sstream>
31
#include <streambuf>
32
#include <string>
33
#include <vector>
34
35
#include "casadi_common.hpp"
36
37
namespace
casadi
{
38
44
struct
CASADI_EXPORT
PrintableCommon
{};
45
46
#ifndef SWIG
53
template
<
class
Derived>
54
class
CASADI_EXPORT Printable :
public
PrintableCommon
{
55
public
:
57
inline
friend
58
std::ostream& operator<<(std::ostream &stream,
const
Derived& obj) {
59
obj.disp(stream);
60
return
stream;
61
}
62
64
inline
friend
std::string repr(
const
Derived& obj) {
65
return
Derived::type_name() +
"("
+ obj.get_str() +
")"
;
66
}
67
};
68
#endif
// SWIG
69
70
}
// namespace casadi
71
72
73
#endif
// CASADI_PRINTABLE_HPP
casadi
The casadi namespace.
Definition:
binary_mx_impl.hpp:36
casadi::PrintableCommon
Empty Base.
Definition:
printable.hpp:44