libquentier
0.5.0
The library for rich desktop clients of Evernote service
headers
quentier
utility
Macros.h
1
/*
2
* Copyright 2016-2020 Dmitry Ivanov
3
*
4
* This file is part of libquentier
5
*
6
* libquentier is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU Lesser General Public License as published by
8
* the Free Software Foundation, version 3 of the License.
9
*
10
* libquentier is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU Lesser General Public License for more details.
14
*
15
* You should have received a copy of the GNU Lesser General Public License
16
* along with libquentier. If not, see <http://www.gnu.org/licenses/>.
17
*/
18
19
#ifndef LIB_QUENTIER_UTILITY_MACROS_H
20
#define LIB_QUENTIER_UTILITY_MACROS_H
21
22
#include <QString>
23
#include <QtGlobal>
24
25
#if QT_VERSION < QT_VERSION_CHECK(5, 7, 0)
26
#include <type_traits>
27
#endif
28
29
#if QT_VERSION < QT_VERSION_CHECK(5, 7, 0)
30
31
// this adds const to non-const objects (like std::as_const)
32
template
<
typename
T>
33
Q_DECL_CONSTEXPR
typename
std::add_const<T>::type &qAsConst(T &t) Q_DECL_NOTHROW
34
{
35
return
t;
36
}
37
38
// prevent rvalue arguments:
39
template
<
typename
T>
40
void
qAsConst(
const
T &&) =
delete
;
41
42
#endif
43
44
#ifdef QNSIGNAL
45
#undef QNSIGNAL
46
#endif
47
48
#ifdef QNSLOT
49
#undef QNSLOT
50
#endif
51
52
#define QNSIGNAL(className, methodName, ...) &className::methodName
53
#define QNSLOT(className, methodName, ...) &className::methodName
54
55
#endif // LIB_QUENTIER_UTILITY_MACROS_H
Generated on Sun Dec 23 2018 16:01:34 for libquentier by
1.8.13