- Aldebaran documentation |
- C++ Libraries |
- index

libqi-api 2.8.7.4

- Main Page
- Related Pages
- Namespaces
- Classes
- Files
- Examples

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
api.hpp
Go to the documentation of this file.
1 #pragma once
2 /*
3 * Copyright (c) 2012 Aldebaran Robotics. All rights reserved.
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the COPYING file.
6 */
7
13 #ifndef _QI_API_HPP_
14 # define _QI_API_HPP_
15
16 # include <qi/macro.hpp>
17 # include <qi/config.hpp>
18
33 # define QI_API QI_LIB_API(qi)
34
35 /* The `QI_API_TESTONLY` macro exports/imports types when compiling tests only.
36 *
37 * This is for instance useful to unit-test internal components of libqi.
38 *
39 * This macro definition depends on the `QI_WITH_TESTS` macro.
40 *
41 * Example: Making an internal type available for unit testing.
42 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
43 * class QI_API_TESTONLY StuffPrivate
44 * {
45 * ...
46 * };
47 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
48 */
49 #ifdef QI_WITH_TESTS
50 # define QI_API_TESTONLY QI_API
51 #else
52 # define QI_API_TESTONLY
53 #endif
54
55 # define QI_API_LEVEL 2
56
57 /* dynamic_casting template partial specializations
58 * between shared objects poses problems with
59 * clang under macos.
60 * This macro is a workaround that seems to work
61 * for now.
62 */
63 #ifdef __clang__
64 # define QITYPE_TEMPLATE_API QI_API
65 #else
66 # define QITYPE_TEMPLATE_API
67 #endif
68
69
70
71 #endif // _QI_API_HPP_
macro.hpp
Various macros for qi. (deprecated, export API, disallow copy, ..) <includename>qi/macro.hpp</includename> .