Alchemy  1.0
A framework to robustly process network messages and structured data
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
trailing_fn_return.h
Go to the documentation of this file.
1 /// @file Pb/detail/trailing_fn_return.h
2 /// Tests for compiler support of trailing function return declarations.
3 ///
4 /// The MIT License(MIT)
5 /// @copyright 2014 Paul M Watt
6 // ****************************************************************************
7 #ifndef TRAILING_FN_RETURN_H_INCLUDED
8 #define TRAILING_FN_RETURN_H_INCLUDED
9 // Includes *******************************************************************
10 #include <utility>
11 
12 // Trailing function returns are supported in these compilers:
13 
14 #if _MSC_VER >= 1600
15 
16 # define ALCHEMY_TRAILING_FN_RETURN_SUPPORTED 1
17 
18 // Test for GCC > 4.4.0
19 #elif __GNUC__ > 4 || \
20  (__GNUC__ == 4 && (__GNUC_MINOR__ > 4 || \
21  (__GNUC_MINOR__ == 4 && \
22  __GNUC_PATCHLEVEL__ > 0)))
23 # define ALCHEMY_TRAILING_FN_RETURN_SUPPORTED 1
24 
25 #else
26  // Compiler does not support trailing function return definitions.
27 //# define ALCHEMY_TRAILING_FN_RETURN_SUPPORTED 0
28 #endif
29 
30 
31 #endif