Added *nix identification macros to Boost.Config; BOOST_NIX, BOOST_GENETIC_NIX,

BOOST_TRADEMARK_NIX and BOOST_FUNCTIONAL_NIX.



[SVN r66804]
This commit is contained in:
Bryce Adelstein-Lelbach
2010-11-27 21:43:52 +00:00
parent 9a9ef3a20b
commit 4f7a0d3814
11 changed files with 162 additions and 23 deletions
+78
View File
@@ -0,0 +1,78 @@
// (C) Copyright John Maddock 2001.
// (C) Copyright Bryce Lelbach 2010.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for most recent version.
// MACRO: BOOST_NO_FENV_H
// TITLE: fenv.h
// DESCRIPTION: There is no POSIX <fenv.h> available. If <fenv.h> is
// available, <boost/detail/fenv.hpp> should be included
// instead of directly including <fenv.h>.
#include <boost/detail/fenv.hpp>
namespace boost_no_fenv_h {
int test()
{
/// POSIX required typedefs
typedef ::fenv_t has_fenv_t;
typedef ::fexcept_t has_fexcept_t;
/// POSIX required macros
#if !defined(FE_DIVBYZERO)
#error platform does not define FE_DIVBYZERO
#endif
#if !defined(FE_INEXACT)
#error platform does not define FE_INEXACT
#endif
#if !defined(FE_INVALID)
#error platform does not define FE_INVALID
#endif
#if !defined(FE_OVERFLOW)
#error platform does not define FE_OVERFLOW
#endif
#if !defined(FE_UNDERFLOW)
#error platform does not define FE_UNDERFLOW
#endif
#if !defined(FE_DOWNWARD)
#error platform does not define FE_DOWNWARD
#endif
#if !defined(FE_TONEAREST)
#error platform does not define FE_TONEAREST
#endif
#if !defined(FE_UPWARD)
#error platform does not define FE_UPWARD
#endif
#if !defined(FE_DFL_ENV)
#error platform does not define FE_DFL_ENV
#endif
int (*has_feclearexcept)(int) = ::feclearexcept;
int (*has_fegetenv)(fenv_t*) = ::fegetenv;
int (*has_fegetexcept)(fexcept_t*, int) = ::fegetexcept;
int (*has_fegetround)(void) = ::fegetround;
int (*has_feholdexcept)(fenv_t*) = ::feholdexcept;
int (*has_feraiseexcept)(int) = ::feraiseexcept;
int (*has_fesetenv)(const fenv_t*) = ::fesetenv;
int (*has_fesetexceptflag)(const fexcept_t*, int) = ::fesetexceptflag;
int (*has_fesetround)(int) = ::fesetround;
int (*has_fetestexcept)(int) = ::fetestexcept;
int (*has_feupdateenv)(const fenv_t*) = ::feupdateenv;
return 0;
}
}
+33
View File
@@ -0,0 +1,33 @@
// Copyright Bryce Lelbach 2010.
// Copyright John Maddock 2002-4.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.
// Test file for macro BOOST_NO_FENV_H
// This file should not compile, if it does then
// BOOST_NO_FENV_H should not be defined.
// See file boost_no_fenv_h.ipp for details
// Must not have BOOST_ASSERT_CONFIG set; it defeats
// the objective of this file:
#ifdef BOOST_ASSERT_CONFIG
# undef BOOST_ASSERT_CONFIG
#endif
#include <boost/config.hpp>
#include "test.hpp"
#ifdef BOOST_NO_FENV_H
#include "boost_no_fenv_h.ipp"
#else
#error "this file should not compile"
#endif
int main( int, char *[] )
{
return boost_no_fenv_h::test();
}
+33
View File
@@ -0,0 +1,33 @@
// Copyright Bryce Lelbach 2010.
// Copyright John Maddock 2002-4.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.
// Test file for macro BOOST_NO_FENV_H
// This file should compile, if it does not then
// BOOST_NO_FENV_H should be defined.
// See file boost_no_fenv_h.ipp for details
// Must not have BOOST_ASSERT_CONFIG set; it defeats
// the objective of this file:
#ifdef BOOST_ASSERT_CONFIG
# undef BOOST_ASSERT_CONFIG
#endif
#include <boost/config.hpp>
#include "test.hpp"
#ifndef BOOST_NO_FENV_H
#include "boost_no_fenv_h.ipp"
#else
namespace boost_no_fenv_h = empty_boost;
#endif
int main( int, char *[] )
{
return boost_no_fenv_h::test();
}