VPTissue Reference Manual
log_debug.h
Go to the documentation of this file.
1 #ifndef UTIL_LOG_DEBUG_H_INCLUDED
2 #define UTIL_LOG_DEBUG_H_INCLUDED
3 /*
4  * Copyright 2011-2016 Universiteit Antwerpen
5  *
6  * Licensed under the EUPL, Version 1.1 or as soon they will be approved by
7  * the European Commission - subsequent versions of the EUPL (the "Licence");
8  * You may not use this work except in compliance with the Licence.
9  * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl5
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the Licence is distributed on an "AS IS" basis,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the Licence for the specific language governing
15  * permissions and limitations under the Licence.
16  */
22 #include <string>
23 #include <QDebug>
24 #include <QString>
25 
26 // Macro to take advantage of PRETTY_FUNCTION over plain FUNCTION with gcc.
27 #if defined(__GNUC__)
28 #define SIMPT_FUNCTION_NAME __PRETTY_FUNCTION__
29 #else
30 #define SIMPT_FUNCTION_NAME __FUNCTION__
31 #endif
32 
33 #define VL_HERE SIMPT_FUNCTION_NAME
34 
35 inline QDebug operator<<(QDebug dbg, std::string const& s)
36 {
37  dbg.nospace() << s.c_str();
38  return dbg.space();
39 }
40 
41 
42 #if defined( QT_NO_DEBUG_OUTPUT )
43 #define VL_DEBUG() qDebug()
44 #else
45 #define VL_DEBUG() (qDebug().nospace() << QString("%1").arg(SIMPT_FUNCTION_NAME).toStdString().c_str() << ">").space()
46 #endif
47 
48 #endif // end-of-include-guard