sc_boost.h revision 12027
1/*****************************************************************************
2
3  Licensed to Accellera Systems Initiative Inc. (Accellera) under one or
4  more contributor license agreements.  See the NOTICE file distributed
5  with this work for additional information regarding copyright ownership.
6  Accellera licenses this file to you under the Apache License, Version 2.0
7  (the "License"); you may not use this file except in compliance with the
8  License.  You may obtain a copy of the License at
9
10    http://www.apache.org/licenses/LICENSE-2.0
11
12  Unless required by applicable law or agreed to in writing, software
13  distributed under the License is distributed on an "AS IS" BASIS,
14  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
15  implied.  See the License for the specific language governing
16  permissions and limitations under the License.
17
18 *****************************************************************************/
19
20/*****************************************************************************
21
22  sc_boost.h -- Thread Semantics Provided By The Boost Library
23
24  Original Author: Stuart Swan, Cadence Design Systems, Inc
25
26  CHANGE LOG AT THE END OF THE FILE
27 *****************************************************************************/
28
29
30#ifndef SC_BOOST_H
31#define SC_BOOST_H
32
33// namespace sc_dp { This is off because of bugs with gcc 2.9x
34
35// SET THE NAME OF OBJECTS THAT THE SC_BOOST LIBRARY WILL PRODUCE AND INCLUDE IT
36
37#if defined(_MSC_VER) && !defined(__ICL) && !defined(__COMO__)
38#   pragma warning(disable: 4786)  // identifier truncated in debug info
39#   pragma warning(disable: 4710)  // function not inlined
40#   pragma warning(disable: 4711)  // funct. selected for auto-inline expansion
41#   pragma warning(disable: 4514)  // unreferenced inline removed
42#endif
43
44#include <functional>
45
46#if defined(SC_BOOST_MSVC) && (SC_BOOST_MSVC < 1300)
47#   pragma warning(push, 3)
48#endif
49
50#if defined(SC_BOOST_MSVC) && (SC_BOOST_MSVC < 1300)
51#   pragma warning(pop)
52#endif
53
54// } // namespace sc_dp This is off because of bugs with gcc 2.9x
55
56// macros to help avoid direct user code dependencies on boost lib
57//
58// note the use of the sc_boost namespace for the SystemC version of
59// boost. to replace the version shipped with SystemC with another boost
60// you will need to change the namespace prefix back to boost.
61
62#define sc_bind    std::bind
63#define sc_ref(r)  std::ref(r)
64#define sc_cref(r) std::cref(r)
65
66// $Log: sc_boost.h,v $
67// Revision 1.7  2011/08/26 20:46:09  acg
68//  Andy Goodrich: moved the modification log to the end of the file to
69//  eliminate source line number skew when check-ins are done.
70//
71// Revision 1.6  2011/02/18 20:27:14  acg
72//  Andy Goodrich: Updated Copyrights.
73//
74// Revision 1.5  2011/02/13 21:47:37  acg
75//  Andy Goodrich: update copyright notice.
76//
77// Revision 1.4  2009/07/28 01:10:53  acg
78//  Andy Goodrich: updates for 2.3 release candidate.
79//
80// Revision 1.3  2009/02/28 00:26:58  acg
81//  Andy Goodrich: changed boost name space to sc_boost to allow use with
82//  full boost library applications.
83//
84// Revision 1.2  2008/05/22 17:06:24  acg
85//  Andy Goodrich: updated copyright notice to include 2008.
86//
87// Revision 1.1.1.1  2006/12/15 20:20:05  acg
88// SystemC 2.3
89//
90// Revision 1.3  2006/01/13 18:44:29  acg
91// Added $Log to record CVS changes into the source.
92//
93
94#endif // SC_BOOST_H
95