o changed the build system so that we can implement functionality which is compiler specific in a separate file for each compiler. This will avoid accumulating MxN ifdef's where M is the number of OS and N is the number of comilers (worst case). This will make it easier to find code that is compiler specific centralizing all of it under libCom/osi/compiler. That should make it mush easier to port EPICS to run on a new compiler.
o refactored compilerDependencies.h into code that is compiler specific (one libCom/osi/compiler/xxx/compilerDependent.h for each comiler) and code that isnt libCom/osi/compilerDependencies.h (this is a new location and is no longer in libCom/misc).
This commit is contained in:
@ -12,6 +12,8 @@
|
||||
|
||||
GNU = YES
|
||||
|
||||
CMPLR_CLASS = gcc
|
||||
|
||||
GNU_BIN = $(GNU_DIR)/bin
|
||||
GNU_LIB = $(GNU_DIR)/lib
|
||||
|
||||
|
@ -133,11 +133,14 @@ POSIX_YES = os/posix
|
||||
GENERIC_SRC_DIRS = .. $(SRC_DIRS)
|
||||
OS_SRC_DIRS += . $(foreach dir, .. $(SRC_DIRS), \
|
||||
$(addprefix $(dir)/, os/$(OS_CLASS) $(POSIX_$(POSIX)) os/default ))
|
||||
ALL_SRC_DIRS = $(OS_SRC_DIRS) $(GENERIC_SRC_DIRS)
|
||||
CMPLR_SRC_DIRS += . $(foreach dir, .. $(SRC_DIRS), \
|
||||
$(addprefix $(dir)/, compiler/$(CMPLR_CLASS) compiler/default ))
|
||||
ALL_SRC_DIRS = $(CMPLR_SRC_DIRS) $(OS_SRC_DIRS) $(GENERIC_SRC_DIRS)
|
||||
|
||||
#--------------------------------------------------
|
||||
# compile line include directories
|
||||
INSTALL_INCLUDES += \
|
||||
-I$(INSTALL_INCLUDE)/compiler/$(CMPLR_CLASS) \
|
||||
-I$(INSTALL_INCLUDE)/os/$(OS_CLASS) \
|
||||
-I$(INSTALL_INCLUDE)
|
||||
SRC_INCLUDES = -I$(COMMON_DIR) $(addprefix -I, $(wildcard $(ALL_SRC_DIRS)))
|
||||
@ -379,24 +382,35 @@ INSTALL_PERMISSIONS = 444
|
||||
#
|
||||
# auto determine the directory paths that things are installed to
|
||||
# RULES:
|
||||
# 1) found in any one of several os specific area
|
||||
# 0) found in any one of several compiler specific paths
|
||||
# => install to $(INSTALL_INCLUDE)/compiler/$(CMPLR_CLASS)
|
||||
# 1) not found in (0) and found in any one of several OS specific paths
|
||||
# => install to $(INSTALL_INCLUDE)/os/$(OS_CLASS)
|
||||
# 2) not foundin (1) and found in generic area
|
||||
# 2) not found in (1) and found in generic paths
|
||||
# => install to $(INSTALL_INCLUDE)
|
||||
# 3) not found in (1) or (2) then may be (not yet) computer generated
|
||||
# => install into $(INSTALL_INCLUDE)/os/$(OS_CLASS) and let
|
||||
# build rules work on vpath
|
||||
#
|
||||
# These rules guarantee that the users include from
|
||||
# no more than two directories
|
||||
# no more than three directories
|
||||
#
|
||||
INSTALL_INC += $(foreach inc, $(INC), \
|
||||
$(firstword \
|
||||
$(CMPLR_INSTALL_INC) \
|
||||
$(OS_INSTALL_INC) \
|
||||
$(GENERIC_INSTALL_INC) \
|
||||
$(GENERATED_INSTALL_INC) ) )
|
||||
INSTALL_INC += $(addprefix $(INSTALL_INCLUDE)/os/$(OS_CLASS)/, $(INC_$(OS_CLASS)) )
|
||||
|
||||
#
|
||||
# Rule 0
|
||||
#
|
||||
CMPLR_INSTALL_INC = $(addprefix $(INSTALL_INCLUDE)/compiler/$(CMPLR_CLASS)/, $(INSTALL_INC_jjj) )
|
||||
INSTALL_INC_jjj = $(foreach dir, $(CMPLR_SRC_DIRS), $(INSTALL_INC_iii) )
|
||||
INSTALL_INC_iii = $(subst $(dir)/, , $(INSTALL_INC_hhh) )
|
||||
INSTALL_INC_hhh = $(wildcard $(addsuffix /$(inc), $(dir)) )
|
||||
|
||||
#
|
||||
# Rule 1
|
||||
#
|
||||
|
@ -415,7 +415,11 @@ $(INSTALL_INCLUDE)/% : %
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
$(INSTALL_INCLUDE)/os/$(OS_CLASS)/% : %
|
||||
$(ECHO) "Installing os dependent include file $@"
|
||||
$(ECHO) "Installing OS dependent include file $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
$(INSTALL_INCLUDE)/compiler/$(CMPLR_CLASS)/% : %
|
||||
$(ECHO) "Installing compiler dependent include file $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
$(INSTALL_DOC)/%: %
|
||||
|
@ -7,6 +7,8 @@
|
||||
# Sites may override these definitions in CONFIG_SITE.solaris-sparc.solaris-sparc
|
||||
#-------------------------------------------------------
|
||||
|
||||
CMPLR_CLASS = solStudio
|
||||
|
||||
SPARCWORKS = /opt/SUNWspro
|
||||
GNU = NO
|
||||
|
||||
|
@ -7,6 +7,8 @@
|
||||
# Sites may override these definitions in CONFIG_SITE.win32-x86-borland.win32-x86-borland
|
||||
#-------------------------------------------------------
|
||||
|
||||
CMPLR_CLASS = borland
|
||||
|
||||
# Win32 valid build types and include directory suffixes
|
||||
|
||||
VALID_BUILDS = Host Ioc
|
||||
|
@ -11,6 +11,8 @@
|
||||
|
||||
VALID_BUILDS = Host Ioc
|
||||
|
||||
CMPLR_CLASS = msvc
|
||||
|
||||
# convert UNIX path to native path
|
||||
PATH_FILTER = $(subst /,\\,$(1))
|
||||
|
||||
|
@ -136,7 +136,6 @@ INC += epicsExport.h
|
||||
INC += unixFileName.h
|
||||
INC += locationException.h
|
||||
INC += ipAddrToAsciiAsynchronous.h
|
||||
INC += compilerDependencies.h
|
||||
INC += epicsUnitTest.h
|
||||
INC += testMain.h
|
||||
SRCS += aToIPAddr.c
|
||||
@ -195,6 +194,8 @@ INC += devLib.h
|
||||
INC += devLibVME.h
|
||||
INC += devLibVMEImpl.h
|
||||
INC += osdVME.h
|
||||
INC += compilerDependencies.h
|
||||
INC += compilerSpecific.h
|
||||
|
||||
SRCS += epicsThread.cpp
|
||||
SRCS += epicsMutex.cpp
|
||||
|
@ -1,104 +0,0 @@
|
||||
|
||||
/*************************************************************************\
|
||||
* Copyright (c) 2008 UChicago Argonne LLC, as Operator of Argonne
|
||||
* National Laboratory.
|
||||
* Copyright (c) 2002 The Regents of the University of California, as
|
||||
* Operator of Los Alamos National Laboratory.
|
||||
* EPICS BASE is distributed subject to a Software License Agreement found
|
||||
* in file LICENSE that is included with this distribution.
|
||||
\*************************************************************************/
|
||||
|
||||
/*
|
||||
* Author:
|
||||
* Jeffrey O. Hill
|
||||
* johill@lanl.gov
|
||||
*/
|
||||
|
||||
#ifndef compilerDependencies_h
|
||||
#define compilerDependencies_h
|
||||
|
||||
/*
|
||||
* This is an attempt to move all tests identifying what features a
|
||||
* compiler supports into one file.
|
||||
*
|
||||
* Since this is a compiler, and not os dependent, issue then ifdefs
|
||||
* are used. The ifdefs allow us to make the default assumption that
|
||||
* standards incompliance issues will be fixed by future compiler
|
||||
* releases.
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
/*
|
||||
* CXX_PLACEMENT_DELETE - defined if compiler supports placement delete
|
||||
* CXX_THROW_SPECIFICATION - defined if compiler supports throw specification
|
||||
*/
|
||||
|
||||
#if defined ( _MSC_VER )
|
||||
# if _MSC_VER >= 1200 /* visual studio 6.0 or later */
|
||||
# define CXX_PLACEMENT_DELETE
|
||||
# endif
|
||||
# if _MSC_VER > 1300 /* some release after visual studio 7 we hope */
|
||||
# define CXX_THROW_SPECIFICATION
|
||||
# endif
|
||||
#elif defined ( __HP_aCC )
|
||||
# if _HP_aCC > 33300
|
||||
# define CXX_PLACEMENT_DELETE
|
||||
# endif
|
||||
# define CXX_THROW_SPECIFICATION
|
||||
#elif defined ( __BORLANDC__ )
|
||||
# if __BORLANDC__ >= 0x600
|
||||
# define CXX_PLACEMENT_DELETE
|
||||
# endif
|
||||
# define CXX_THROW_SPECIFICATION
|
||||
#elif defined ( __GNUC__ )
|
||||
# if __GNUC__ > 2 || ( __GNUC__ == 2 && __GNUC_MINOR__ >= 95 )
|
||||
# define CXX_THROW_SPECIFICATION
|
||||
# endif
|
||||
# if __GNUC__ > 2 || ( __GNUC__ == 2 && __GNUC_MINOR__ >= 96 )
|
||||
# define CXX_PLACEMENT_DELETE
|
||||
# endif
|
||||
#else
|
||||
# define CXX_PLACEMENT_DELETE
|
||||
# define CXX_THROW_SPECIFICATION
|
||||
#endif
|
||||
|
||||
/*
|
||||
* usage: void func () epicsThrows (( std::bad_alloc, std::logic_error ))
|
||||
*/
|
||||
#if defined ( CXX_THROW_SPECIFICATION )
|
||||
# define epicsThrows(X) throw X
|
||||
#else
|
||||
# define epicsThrows(X)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* usage: epicsPlacementDeleteOperator (( void *, myMemoryManager & ))
|
||||
*/
|
||||
#if defined ( CXX_PLACEMENT_DELETE )
|
||||
# define epicsPlacementDeleteOperator(X) void operator delete X;
|
||||
#else
|
||||
# define epicsPlacementDeleteOperator(X)
|
||||
#endif
|
||||
|
||||
#endif /* __cplusplus */
|
||||
|
||||
/*
|
||||
* Enable format-string checking if possible
|
||||
*/
|
||||
#ifdef __GNUC__
|
||||
# define EPICS_PRINTF_STYLE(f,a) __attribute__((format(__printf__,f,a)))
|
||||
#else
|
||||
# define EPICS_PRINTF_STYLE(f,a)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Deprecation marker
|
||||
*/
|
||||
#ifdef __GNUC__
|
||||
# define EPICS_DEPRECATED __attribute__((deprecated))
|
||||
#else
|
||||
# define EPICS_DEPRECATED
|
||||
#endif
|
||||
|
||||
#endif /* ifndef compilerDependencies_h */
|
55
src/libCom/osi/compiler/borland/compilerSpecific.h
Normal file
55
src/libCom/osi/compiler/borland/compilerSpecific.h
Normal file
@ -0,0 +1,55 @@
|
||||
|
||||
/*************************************************************************\
|
||||
* Copyright (c) 2008 UChicago Argonne LLC, as Operator of Argonne
|
||||
* National Laboratory.
|
||||
* Copyright (c) 2002 The Regents of the University of California, as
|
||||
* Operator of Los Alamos National Laboratory.
|
||||
* EPICS BASE is distributed subject to a Software License Agreement found
|
||||
* in file LICENSE that is included with this distribution.
|
||||
\*************************************************************************/
|
||||
|
||||
/*
|
||||
* Author:
|
||||
* Jeffrey O. Hill
|
||||
* johill@lanl.gov
|
||||
*/
|
||||
|
||||
#ifndef compilerSpecific_h
|
||||
#define compilerSpecific_h
|
||||
|
||||
#ifndef __BORLANDC__
|
||||
# error compiler/borland/compilerSpecific.h is only for use with the Borland compiler
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
/*
|
||||
* in general we dont like ifdefs but they do allow us to check the
|
||||
* compiler version and make the optimistic assumption that
|
||||
* standards incompliance issues will be fixed by future compiler
|
||||
* releases
|
||||
*/
|
||||
|
||||
/*
|
||||
* CXX_PLACEMENT_DELETE - defined if compiler supports placement delete
|
||||
* CXX_THROW_SPECIFICATION - defined if compiler supports throw specification
|
||||
*/
|
||||
#if __BORLANDC__ >= 0x600
|
||||
# define CXX_PLACEMENT_DELETE
|
||||
#endif
|
||||
|
||||
#define CXX_THROW_SPECIFICATION
|
||||
|
||||
#endif /* __cplusplus */
|
||||
|
||||
/*
|
||||
* Enable format-string checking if possible
|
||||
*/
|
||||
#define EPICS_PRINTF_STYLE(f,a)
|
||||
|
||||
/*
|
||||
* Deprecation marker
|
||||
*/
|
||||
#define EPICS_DEPRECATED
|
||||
|
||||
#endif /* ifndef compilerSpecific_h */
|
59
src/libCom/osi/compiler/clang/compilerSpecific.h
Normal file
59
src/libCom/osi/compiler/clang/compilerSpecific.h
Normal file
@ -0,0 +1,59 @@
|
||||
|
||||
/*************************************************************************\
|
||||
* Copyright (c) 2008 UChicago Argonne LLC, as Operator of Argonne
|
||||
* National Laboratory.
|
||||
* Copyright (c) 2002 The Regents of the University of California, as
|
||||
* Operator of Los Alamos National Laboratory.
|
||||
* EPICS BASE is distributed subject to a Software License Agreement found
|
||||
* in file LICENSE that is included with this distribution.
|
||||
\*************************************************************************/
|
||||
|
||||
/*
|
||||
* Author:
|
||||
* Jeffrey O. Hill
|
||||
* johill@lanl.gov
|
||||
*/
|
||||
|
||||
#ifndef compilerSpecific_h
|
||||
#define compilerSpecific_h
|
||||
|
||||
#ifndef __clang__
|
||||
# error compiler/clang/compilerSpecific.h is only for use with the clang compiler
|
||||
#endif
|
||||
|
||||
/*
|
||||
* WARNING: the current state of this file is only based on reading clang manuals
|
||||
* and has not actually been tested with the compiler
|
||||
*/
|
||||
#pragma warning compiler/clang/compilerSpecific.h is based on reading the manual, but hasnt been tested with the clang compiler
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
/*
|
||||
* CXX_PLACEMENT_DELETE - defined if compiler supports placement delete
|
||||
* CXX_THROW_SPECIFICATION - defined if compiler supports throw specification
|
||||
*/
|
||||
#define CXX_PLACEMENT_DELETE
|
||||
#define CXX_THROW_SPECIFICATION
|
||||
|
||||
#endif /* __cplusplus */
|
||||
|
||||
/*
|
||||
* Enable format-string checking if possible
|
||||
*/
|
||||
#if __has_attribute(format)
|
||||
# define EPICS_PRINTF_STYLE(f,a) __attribute__((format(__printf__,f,a)))
|
||||
#else
|
||||
# define EPICS_PRINTF_STYLE
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Deprecation marker if possible
|
||||
*/
|
||||
#if __has_attribute(deprecated)
|
||||
# define EPICS_DEPRECATED __attribute__((deprecated))
|
||||
#else
|
||||
# define EPICS_DEPRECATED
|
||||
#endif
|
||||
|
||||
#endif /* ifndef compilerSpecific_h */
|
45
src/libCom/osi/compiler/default/compilerSpecific.h
Normal file
45
src/libCom/osi/compiler/default/compilerSpecific.h
Normal file
@ -0,0 +1,45 @@
|
||||
|
||||
/*************************************************************************\
|
||||
* Copyright (c) 2008 UChicago Argonne LLC, as Operator of Argonne
|
||||
* National Laboratory.
|
||||
* Copyright (c) 2002 The Regents of the University of California, as
|
||||
* Operator of Los Alamos National Laboratory.
|
||||
* EPICS BASE is distributed subject to a Software License Agreement found
|
||||
* in file LICENSE that is included with this distribution.
|
||||
\*************************************************************************/
|
||||
|
||||
/*
|
||||
* Author:
|
||||
* Jeffrey O. Hill
|
||||
* johill@lanl.gov
|
||||
*/
|
||||
|
||||
#ifndef compilerSpecific_h
|
||||
#define compilerSpecific_h
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
/*
|
||||
* CXX_PLACEMENT_DELETE - defined if compiler supports placement delete
|
||||
* CXX_THROW_SPECIFICATION - defined if compiler supports throw specification
|
||||
*
|
||||
* (our default guess is that the compiler implements the C++ 97 standard)
|
||||
*/
|
||||
#define CXX_THROW_SPECIFICATION
|
||||
#define CXX_PLACEMENT_DELETE
|
||||
|
||||
#endif /* __cplusplus */
|
||||
|
||||
/*
|
||||
* Enable format-string checking if possible
|
||||
* (our default guess is that the compiler doesnt implement non-standard extensions)
|
||||
*/
|
||||
#define EPICS_PRINTF_STYLE(f,a)
|
||||
|
||||
/*
|
||||
* Deprecation marker
|
||||
* (our default guess is that the compiler doesnt implement non-standard extensions)
|
||||
*/
|
||||
#define EPICS_DEPRECATED
|
||||
|
||||
#endif /* ifndef compilerSpecific_h */
|
59
src/libCom/osi/compiler/gcc/compilerSpecific.h
Normal file
59
src/libCom/osi/compiler/gcc/compilerSpecific.h
Normal file
@ -0,0 +1,59 @@
|
||||
|
||||
/*************************************************************************\
|
||||
* Copyright (c) 2008 UChicago Argonne LLC, as Operator of Argonne
|
||||
* National Laboratory.
|
||||
* Copyright (c) 2002 The Regents of the University of California, as
|
||||
* Operator of Los Alamos National Laboratory.
|
||||
* EPICS BASE is distributed subject to a Software License Agreement found
|
||||
* in file LICENSE that is included with this distribution.
|
||||
\*************************************************************************/
|
||||
|
||||
/*
|
||||
* Author:
|
||||
* Jeffrey O. Hill
|
||||
* johill@lanl.gov
|
||||
*/
|
||||
|
||||
#ifndef compilerSpecific_h
|
||||
#define compilerSpecific_h
|
||||
|
||||
#ifndef __GNUC__
|
||||
# error compiler/gcc/compilerSpecific.h is only for use with the gnu compiler
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
/*
|
||||
* in general we dont like ifdefs but they do allow us to check the
|
||||
* compiler version and make the optimistic assumption that
|
||||
* standards incompliance issues will be fixed by future compiler
|
||||
* releases
|
||||
*/
|
||||
|
||||
/*
|
||||
* CXX_PLACEMENT_DELETE - defined if compiler supports placement delete
|
||||
* CXX_THROW_SPECIFICATION - defined if compiler supports throw specification
|
||||
*/
|
||||
|
||||
#if __GNUC__ > 2 || ( __GNUC__ == 2 && __GNUC_MINOR__ >= 95 )
|
||||
# define CXX_THROW_SPECIFICATION
|
||||
#endif
|
||||
|
||||
#if __GNUC__ > 2 || ( __GNUC__ == 2 && __GNUC_MINOR__ >= 96 )
|
||||
# define CXX_PLACEMENT_DELETE
|
||||
#endif
|
||||
|
||||
#endif /* __cplusplus */
|
||||
|
||||
/*
|
||||
* Enable format-string checking if possible
|
||||
*/
|
||||
#define EPICS_PRINTF_STYLE(f,a) __attribute__((format(__printf__,f,a)))
|
||||
|
||||
/*
|
||||
* Deprecation marker if possible
|
||||
*/
|
||||
|
||||
#define EPICS_DEPRECATED __attribute__((deprecated))
|
||||
|
||||
#endif /* ifndef compilerSpecific_h */
|
57
src/libCom/osi/compiler/msvc/compilerSpecific.h
Normal file
57
src/libCom/osi/compiler/msvc/compilerSpecific.h
Normal file
@ -0,0 +1,57 @@
|
||||
|
||||
/*************************************************************************\
|
||||
* Copyright (c) 2008 UChicago Argonne LLC, as Operator of Argonne
|
||||
* National Laboratory.
|
||||
* Copyright (c) 2002 The Regents of the University of California, as
|
||||
* Operator of Los Alamos National Laboratory.
|
||||
* EPICS BASE is distributed subject to a Software License Agreement found
|
||||
* in file LICENSE that is included with this distribution.
|
||||
\*************************************************************************/
|
||||
|
||||
/*
|
||||
* Author:
|
||||
* Jeffrey O. Hill
|
||||
* johill@lanl.gov
|
||||
*/
|
||||
|
||||
#ifndef compilerSpecific_h
|
||||
#define compilerSpecific_h
|
||||
|
||||
#ifndef _MSC_VER
|
||||
# error compiler/msvc/compilerSpecific.h is only for use with the Microsoft compiler
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
/*
|
||||
* in general we dont like ifdefs but they do allow us to check the
|
||||
* compiler version and make the optimistic assumption that
|
||||
* standards incompliance issues will be fixed by future compiler
|
||||
* releases
|
||||
*/
|
||||
|
||||
/*
|
||||
* CXX_PLACEMENT_DELETE - defined if compiler supports placement delete
|
||||
* CXX_THROW_SPECIFICATION - defined if compiler supports throw specification
|
||||
*/
|
||||
#if _MSC_VER >= 1200 /* visual studio 6.0 or later */
|
||||
# define CXX_PLACEMENT_DELETE
|
||||
#endif
|
||||
|
||||
#if _MSC_VER > 1300 /* some release after visual studio 7 we hope */
|
||||
# define CXX_THROW_SPECIFICATION
|
||||
#endif
|
||||
|
||||
#endif /* __cplusplus */
|
||||
|
||||
/*
|
||||
* Enable format-string checking if possible
|
||||
*/
|
||||
#define EPICS_PRINTF_STYLE(f,a)
|
||||
|
||||
/*
|
||||
* Deprecation marker
|
||||
*/
|
||||
#define EPICS_DEPRECATED
|
||||
|
||||
#endif /* ifndef compilerSpecific_h */
|
47
src/libCom/osi/compilerDependencies.h
Normal file
47
src/libCom/osi/compilerDependencies.h
Normal file
@ -0,0 +1,47 @@
|
||||
|
||||
/*************************************************************************\
|
||||
* Copyright (c) 2008 UChicago Argonne LLC, as Operator of Argonne
|
||||
* National Laboratory.
|
||||
* Copyright (c) 2002 The Regents of the University of California, as
|
||||
* Operator of Los Alamos National Laboratory.
|
||||
* EPICS BASE is distributed subject to a Software License Agreement found
|
||||
* in file LICENSE that is included with this distribution.
|
||||
\*************************************************************************/
|
||||
|
||||
/*
|
||||
* Author:
|
||||
* Jeffrey O. Hill
|
||||
* johill@lanl.gov
|
||||
*/
|
||||
|
||||
#ifndef compilerDependencies_h
|
||||
#define compilerDependencies_h
|
||||
|
||||
#include "compilerSpecific.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
/*
|
||||
* usage: void func () epicsThrows (( std::bad_alloc, std::logic_error ))
|
||||
*
|
||||
* Note: now a widely accepted concensus (ref Meyers and C++ faq) is that
|
||||
* one should avoid using throw specifications in C++ code
|
||||
*/
|
||||
#if defined ( CXX_THROW_SPECIFICATION )
|
||||
# define epicsThrows(X) throw X
|
||||
#else
|
||||
# define epicsThrows(X)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* usage: epicsPlacementDeleteOperator (( void *, myMemoryManager & ))
|
||||
*/
|
||||
#if defined ( CXX_PLACEMENT_DELETE )
|
||||
# define epicsPlacementDeleteOperator(X) void operator delete X;
|
||||
#else
|
||||
# define epicsPlacementDeleteOperator(X)
|
||||
#endif
|
||||
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif /* ifndef compilerDependencies_h */
|
Reference in New Issue
Block a user