File indexing completed on 2024-12-08 12:44:56

0001 /* This file is part of the KDE project
0002    Copyright (C) 2003-2015 Jarosław Staniek <staniek@kde.org>
0003 
0004    Portions of kstandarddirs.cpp:
0005    Copyright (C) 1999 Sirtaj Singh Kang <taj@kde.org>
0006    Copyright (C) 1999,2007 Stephan Kulow <coolo@kde.org>
0007    Copyright (C) 1999 Waldo Bastian <bastian@kde.org>
0008    Copyright (C) 2009 David Faure <faure@kde.org>
0009 
0010    This program is free software; you can redistribute it and/or
0011    modify it under the terms of the GNU Library General Public
0012    License as published by the Free Software Foundation; either
0013    version 2 of the License, or (at your option) any later version.
0014 
0015    This program is distributed in the hope that it will be useful,
0016    but WITHOUT ANY WARRANTY; without even the implied warranty of
0017    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0018    Library General Public License for more details.
0019 
0020    You should have received a copy of the GNU Library General Public License
0021    along with this program; see the file COPYING.  If not, write to
0022    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
0023  * Boston, MA 02110-1301, USA.
0024 */
0025 
0026 #ifndef KDB_TOOLS_UTILS_P_H
0027 #define KDB_TOOLS_UTILS_P_H
0028 
0029 #include <QtGlobal>
0030 
0031 #if QT_VERSION < 0x050700
0032 //! @internal for qAsConst()
0033 template <typename T> struct QAddConst {
0034     typedef const T Type;
0035 };
0036 
0037 //! Adds const to non-const objects (like std::as_const)
0038 template <typename T>
0039 Q_DECL_CONSTEXPR typename QAddConst<T>::Type& qAsConst(T& t) Q_DECL_NOTHROW { return t; }
0040 
0041 // prevent rvalue arguments:
0042 template <typename T>
0043 void qAsConst(const T &&) Q_DECL_EQ_DELETE;
0044 #endif // QT_VERSION < 0x050700
0045 
0046 //! @def KDB_SHARED_LIB_EXTENSION operating system-dependent extension for shared library files
0047 #if defined(Q_OS_WIN)
0048 #define KDB_SHARED_LIB_EXTENSION ".dll"
0049 #elif defined(Q_OS_MACOS)
0050 // shared libraries indeed have a dylib extension on OS X, but most apps use .so for plugins
0051 #define KDB_SHARED_LIB_EXTENSION ".so"
0052 #else
0053 #define KDB_SHARED_LIB_EXTENSION ".so"
0054 #endif
0055 
0056 #endif //KDB_TOOLS_UTILS_P_H