type-classifier.hpp
Go to the documentation of this file.
00001 #ifndef BOOST_DETAIL_ATOMIC_TYPE_CLASSIFIER_HPP
00002 #define BOOST_DETAIL_ATOMIC_TYPE_CLASSIFIER_HPP
00003 
00004 //  Copyright (c) 2011 Helge Bahmann
00005 //
00006 //  Distributed under the Boost Software License, Version 1.0.
00007 //  See accompanying file LICENSE_1_0.txt or copy at
00008 //  http://www.boost.org/LICENSE_1_0.txt)
00009 
00010 namespace boost { namespace detail { namespace atomic {
00011 
00012 template<typename T>
00013 struct type_classifier {
00014         typedef void test;
00015 };
00016 
00017 template<>
00018 struct type_classifier<char> {typedef int test;};
00019 template<>
00020 struct type_classifier<unsigned char> {typedef int test;};
00021 template<>
00022 struct type_classifier<signed char> {typedef int test;};
00023 template<>
00024 struct type_classifier<unsigned short> {typedef int test;};
00025 template<>
00026 struct type_classifier<signed short> {typedef int test;};
00027 template<>
00028 struct type_classifier<unsigned int> {typedef int test;};
00029 template<>
00030 struct type_classifier<signed int> {typedef int test;};
00031 template<>
00032 struct type_classifier<unsigned long> {typedef int test;};
00033 template<>
00034 struct type_classifier<long> {typedef int test;};
00035 #ifdef BOOST_HAS_LONG_LONG
00036 template<> struct type_classifier<unsigned long long>
00037 {typedef int test;};
00038 template<> struct type_classifier<signed long long>
00039 {typedef int test;};
00040 #endif
00041 
00042 template<typename T>
00043 struct type_classifier<T *> {typedef void * test;};
00044 
00045 template<typename T>
00046 struct sign_trait {
00047         typedef void test;
00048 };
00049 
00050 template<>
00051 struct sign_trait<char> {typedef int test;};
00052 template<>
00053 struct sign_trait<unsigned char> {typedef unsigned int test;};
00054 template<>
00055 struct sign_trait<signed char> {typedef int test;};
00056 template<>
00057 struct sign_trait<unsigned short> {typedef unsigned int test;};
00058 template<>
00059 struct sign_trait<signed short> {typedef int test;};
00060 template<>
00061 struct sign_trait<unsigned int> {typedef unsigned int test;};
00062 template<>
00063 struct sign_trait<signed int> {typedef int test;};
00064 template<>
00065 struct sign_trait<unsigned long> {typedef unsigned int test;};
00066 template<>
00067 struct sign_trait<long> {typedef int test;};
00068 #ifdef BOOST_HAS_LONG_LONG
00069 template<> struct sign_trait<unsigned long long>
00070 {typedef unsigned int test;};
00071 template<> struct sign_trait<signed long long>
00072 {typedef int test;};
00073 #endif
00074 
00075 
00076 
00077 }}}
00078 
00079 #endif


rosatomic
Author(s): Josh Faust
autogenerated on Mon Oct 6 2014 06:54:49