+ basic build system setup
[lightlibc++.git] / include / lightlibc++ / compiler.hpp
blobfbd6ef855c4caa6c79d34a831c9852db6e2e54b8
1 /*
2 Permission is granted to use, modify, and / or redistribute at will.
4 This includes removing authorship notices, re-use of code parts in
5 other software (with or without giving credit), and / or creating a
6 commercial product based on it.
8 This permission is not revocable by the author.
10 This software is provided as-is. Use it at your own risk. There is
11 no warranty whatsoever, neither expressed nor implied, and by using
12 this software you accept that the author(s) shall not be held liable
13 for any loss of data, loss of service, or other damages, be they
14 incidental or consequential. Your only option other than accepting
15 this is not to use the software at all.
17 #ifndef _LIGHTLIBCPP_COMPILER_HPP
18 #define _LIGHTLIBCPP_COMPILER_HPP
22 /**
23 *\english
24 * Used to declare a function that does not return. This allows the compiler
25 * better optimisations.
26 *\endenglish
27 *\ŋerman
28 * Wird benutzt um eine Funktion zu deklarieren, die nicht zum aufrufenden
29 * Code zurückkehrt. Dies erlaubt dem Compiler besser zu optimieren.
30 *\endgerman
32 #define _LIGHTLIBCPP_NORETURN __attribute__((noreturn))
34 /**
35 *\english
36 * Used to declare classes, functions, variables and types deprecated. When
37 * a deprecated entity is used, the compiler issues a warning or an error
38 *\endenglish
39 *\german
40 * Wird benutzt um Klassen, Funktionen, Variablen und Typen als veraltet zu
41 * markieren. Bei Benutzung eines dieser Objekte wird der Compiler eine
42 * Warnung oder eine Fehlermeldung ausgeben.
43 *\endgerman
45 #define _LIGHTLIBCPP_DEPRECATED __attribute__((deprecated))
47 #ifdef _LIGHTLIBCPP_CPP10_STRICT
48 /**
49 *\english
50 * See _LIGHTLIBCPP_DEPRECATED for an explanation of what the define does,
51 * This define however is used to indicate that a C++03 feature is
52 * deprecated with C++10.
53 *\endenglish
54 *\german
55 * Siehe _LIGHTLIBCPP_DEPRECATED. Dieses Makro wird im Gegensatz zu
56 * _LIGHTLIBCPP_DEPRECATED verwendet um anzuzeigen, dass das Feature von
57 * C++03 mit C++10 als veraltet ist.
58 *\endgerman
60 #define _LIGHTLIBCPP_DEPRECATED_CPP10 _LIGHTLIBCPP_DEPRECATED
61 #else
62 #define _LIGHTLIBCPP_DEPRECATED_CPP10
63 #endif
67 #endif