1// (C) Copyright John Maddock 2001. 2// Use, modification and distribution are subject to the 3// Boost Software License, Version 1.0. (See accompanying file 4// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 6// See http://www.boost.org/libs/config for most recent version. 7 8// MACRO: BOOST_NO_INTEGRAL_INT64_T 9// TITLE: long long and integral constant expressions 10// DESCRIPTION: The platform supports long long in integral constant expressions. 11 12#include <cstdlib> 13 14 15namespace boost_no_integral_int64_t{ 16 17#ifdef BOOST_NO_INCLASS_MEMBER_INITIALIZATION 18enum{ mask = 1uLL << 50 }; 19 20template <unsigned long long m> 21struct llt 22{ 23 enum{ value = m }; 24}; 25#else 26#ifdef __GNUC__ 27__extension__ 28#endif 29static const unsigned long long mask = 1uLL << 50; 30 31#ifdef __GNUC__ 32__extension__ 33#endif 34template <unsigned long long m> 35struct llt 36{ 37#ifdef __GNUC__ 38__extension__ 39#endif 40 static const unsigned long long value = m; 41}; 42#endif 43 44int test() 45{ 46 return llt<mask>::value != (1uLL << 50); 47} 48 49} 50 51 52 53 54 55