μHAL (v2.7.9)
Part of the IPbus software repository
log
include
uhal
log
log_inserters.type.hxx
Go to the documentation of this file.
1
/*
2
---------------------------------------------------------------------------
3
4
This file is part of uHAL.
5
6
uHAL is a hardware access library and programming framework
7
originally developed for upgrades of the Level-1 trigger of the CMS
8
experiment at CERN.
9
10
uHAL is free software: you can redistribute it and/or modify
11
it under the terms of the GNU General Public License as published by
12
the Free Software Foundation, either version 3 of the License, or
13
(at your option) any later version.
14
15
uHAL is distributed in the hope that it will be useful,
16
but WITHOUT ANY WARRANTY; without even the implied warranty of
17
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
GNU General Public License for more details.
19
20
You should have received a copy of the GNU General Public License
21
along with uHAL. If not, see <http://www.gnu.org/licenses/>.
22
23
24
Andrew Rose, Imperial College, London
25
email: awr01 <AT> imperial.ac.uk
26
27
Marc Magrans de Abril, CERN
28
email: marc.magrans.de.abril <AT> cern.ch
29
30
---------------------------------------------------------------------------
31
*/
32
33
34
#ifdef __GNUG__
35
#include <cxxabi.h>
36
#endif
37
#include <ostream>
// for operator<<, ostream, size_t
38
#include <typeinfo>
// for type_info
39
40
41
namespace
uhal
42
{
43
44
template
<
typename
T >
45
std::ostream&
operator<<
( std::ostream& aStr ,
const
_Type< T >
& aType )
46
{
47
#ifdef __GNUG__
48
// this is fugly but necessary due to the way that typeid::name() returns the object type name under g++.
49
int
lStatus ( 0 );
50
static
std::size_t lSize ( 1024 );
51
static
char
* lDemangled =
new
char
[lSize];
52
aStr << ( abi::__cxa_demangle (
typeid
( T ).
name
() , lDemangled , &lSize , &lStatus ) );
53
#else
54
aStr << (
typeid
( T ).
name
() );
55
#endif
56
return
aStr;
57
}
58
59
template
<
typename
T >
60
_Type< T >
Type
( )
61
{
62
return
_Type< T >
( );
63
}
64
65
template
<
typename
T >
66
_Type< T >
Type
(
const
T& aT )
67
{
68
return
_Type< T >
( );
69
}
70
71
}
72
uhal::Type
_Type< T > Type()
Definition:
log_inserters.type.hxx:60
uhal::operator<<
std::ostream & operator<<(std::ostream &aStr, const uhal::HttpResponseType &aHttpResponse)
Definition:
HttpResponseGrammar.cpp:41
setupTemplate.name
name
Definition:
setupTemplate.py:32
uhal
Definition:
HttpResponseGrammar.hpp:49
uhal::_Type
Definition:
log_inserters.type.hpp:47
Generated on Tue Sep 22 2020 19:18:38 for μHAL (v2.7.9) by
1.8.18