IMP
2.0.1
The Integrative Modeling Platform
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
IMP
IMP Documentation
Application Index
Argument Index
Class Examples
Modeling of GroEL with cnmultifit
Modeling of 3sfd with EMageFit
EMageFit protocol
EMageFit scripts and tools
Factory Index
Determination of a Nup133 structure with FoXS
Function Examples
Example design discussion
Developer Guide
Change History
Installation
Introduction
Mailing lists
Multithreaded evaluation using OpenMP
Integrative docking utility programs
Docking of PCSK9 with idock
Dependencies between objects
Module Index
Modeling of 3sfd with multifit
Deprecated List
Modules
Namespaces
Classes
Files
File List
__init__.py
algebra/__init__.py
atom/__init__.py
base/__init__.py
benchmark/__init__.py
cgal/__init__.py
cnmultifit/__init__.py
container/__init__.py
core/__init__.py
display/__init__.py
domino/__init__.py
em/__init__.py
em2d/__init__.py
example/__init__.py
gsl/__init__.py
isd/__init__.py
kernel/__init__.py
kmeans/__init__.py
misc/__init__.py
modeller/__init__.py
multifit/__init__.py
parallel/__init__.py
pepdock/__init__.py
restrainer/__init__.py
rmf/__init__.py
rotamer/__init__.py
saxs/__init__.py
score_functor/__init__.py
scratch/__init__.py
statistics/__init__.py
system/__init__.py
test/__init__.py
_display.py
_graph_show.py
_histogram.py
_interaction_graph.py
_main.py
_optimization.py
_pivy.py
_randomize.py
_representation.py
_restraint.py
algebra/_version_check.py
atom/_version_check.py
base/_version_check.py
benchmark/_version_check.py
cgal/_version_check.py
cnmultifit/_version_check.py
container/_version_check.py
core/_version_check.py
display/_version_check.py
domino/_version_check.py
em/_version_check.py
em2d/_version_check.py
example/_version_check.py
gsl/_version_check.py
isd/_version_check.py
kernel/_version_check.py
kmeans/_version_check.py
misc/_version_check.py
modeller/_version_check.py
multifit/_version_check.py
parallel/_version_check.py
pepdock/_version_check.py
restrainer/_version_check.py
rmf/_version_check.py
rotamer/_version_check.py
saxs/_version_check.py
score_functor/_version_check.py
scratch/_version_check.py
statistics/_version_check.py
system/_version_check.py
test/_version_check.py
_xml_parser.py
AbstractGrid.py
add_fit_rmsd.py
AddScores.h
algebra.h
algebra_config.h
algebra_macros.h
align.py
align2D.h
AlignmentParams.h
AlignSymmetric.h
AllBipartitePairContainer.h
AllPairContainer.h
AmbiguousNOERestraint.h
AmbiguousRestraint.h
analysis.h
Analysis.py
analyze_convergence.py
anchor_graph.h
anchor_utilities.h
anchors.py
anchors_reader.h
angle_decorators.h
AngleRestraint.h
AngleSingletonScore.h
AngleTripletScore.h
argminmax.py
Array.h
assess_dope.py
Assignment.h
assignment_containers.h
assignment_tables.h
associations.h
atom/Atom.h
Atom.h
atom_config.h
atom_io.h
atom_links.h
atom_macros.h
atomicDomino.py
atomicDominoUtilities.py
AttributeSingletonScore.h
BallMover.h
base.h
base_config.h
base_macros.h
base_types.h
kernel/base_types.h
basic_display.py
basic_geometry.py
basic_optimization.py
basic_setup.py
benchmark.h
benchmark_config.h
benchmark_macros.h
BerendsenThermostatOptimizerState.h
BildWriter.h
bipartite_nonbonded_interactions.py
bivariate_functions.h
blame.h
bond_decorators.h
bond_graph.h
BondedPairFilter.h
BondEndpointsRefiner.h
BondPairContainer.h
BondSingletonScore.h
BoundingBox3DSingletonScore.h
BoundingBoxD.h
BoxSweepClosePairsFinder.h
bracket_macros.h
BranchAndBoundSampler.h
brownian_statistics.py
BrownianDynamics.h
build.py
buildxlinks.py
cache.h
CenteredMat.h
CentroidOfRefined.h
cg_pdb.py
cgal.h
cgal_config.h
Chain.h
chain.py
Charged.h
charmm_forcefield.py
charmm_forcefield_verbose.py
charmm_segment_topology.h
charmm_topology.h
CHARMMAtom.h
CHARMMParameters.h
CHARMMStereochemistryRestraint.h
check_macros.h
ChecksScoreState.h
ChildrenRefiner.h
chimera_models.py
ChimeraWriter.h
ChiScore.h
ChiScoreLog.h
close_pairs_finder_macros.h
CloseBipartitePairContainer.h
ClosedCubicSpline.h
ClosePairContainer.h
ClosePairsFinder.h
ClosePairsPairScore.h
cluster.py
cluster_coarse.py
clustering_macros.h
clustering_of_pdb_models.py
CMMWriter.h
cn_rmsd.h
cnmultifit.h
cnmultifit.py
cnmultifit_config.h
CnSymmAxisDetector.h
coarse_molecule.h
CoarseCC.h
CoarseCCatIntervals.h
CoarseConvolution.h
collision_cross_section.py
CollisionCrossSection.h
Color.h
Colored.h
CommonEndpointPairFilter.h
comparison_macros.h
compat_subprocess.py
compatibility.h
compiler_macros.h
ComplementarityRestraint.h
complex_assembly.h
complex_to_anchor_graph.py
compute_chi.cpp
Cone3D.h
Configuration.h
kernel/Configuration.h
ConfigurationSet.h
kernel/ConfigurationSet.h
core/ConjugateGradients.h
gsl/ConjugateGradients.h
ConnectingPairContainer.h
connectivity.py
connectivity_restraint.py
ConnectivityRestraint.h
connolly_surface.h
ConsecutivePairContainer.h
ConstantRestraint.h
algebra/constants.h
atom/constants.h
constants.h
kernel/constants.h
Constraint.h
kernel/Constraint.h
ConstVector.h
container.h
container_base.h
kernel/container_base.h
container_config.h
container_macros.h
kernel/container_macros.h
convert_spider_to_jpg.py
converters.h
Copy.h
core.h
core_config.h
core_macros.h
Cosine.h
CoulombPairScore.h
counting.h
cover_particles.py
CoverBond.h
CoverRefined.h
CreateLogContext.h
creating_restraints.h
csv_related.py
cube.py
custom_filter.py
custom_hierarchy.py
CustomXYZR.h
Cylinder3D.h
Database.py
DataObject.h
DataPointsAssignment.h
decay.py
DecayPairContainerOptimizerState.h
declare_Geometry.h
declare_Model.h
kernel/declare_Model.h
declare_Object.h
declare_PairContainer.h
kernel/declare_PairContainer.h
declare_Particle.h
kernel/declare_Particle.h
declare_QuadContainer.h
kernel/declare_QuadContainer.h
declare_Restraint.h
kernel/declare_Restraint.h
declare_RestraintSet.h
kernel/declare_RestraintSet.h
declare_ScoringFunction.h
kernel/declare_ScoringFunction.h
declare_SingletonContainer.h
kernel/declare_SingletonContainer.h
declare_TripletContainer.h
kernel/declare_TripletContainer.h
Decorator.h
kernel/Decorator.h
decorator_macros.h
kernel/decorator_macros.h
def.h
density_analysis.h
density_map_volumetrics.h
density_utilities.h
density_utils.h
DensityDataPoints.h
DensityFillingRestraint.h
DensityHeader.h
DensityMap.h
cnmultifit_tools/dependencies.py
em_tools/dependencies.py
EMageFit/dependencies.py
example_app/dependencies.py
foxs/dependencies.py
integrative_docking/dependencies.py
ligand_score/dependencies.py
multifit_tools/dependencies.py
pdb_tools/dependencies.py
rmf_tools/dependencies.py
saxs_merge/dependencies.py
saxs_tools/dependencies.py
dependency_graph.h
kernel/dependency_graph.h
dependency_graph.py
DependencyScoreState.h
deprecation.h
deprecation_macros.h
DerivativeAccumulator.h
kernel/DerivativeAccumulator.h
DerivativeCalculator.h
DerivativesFromRefined.h
DerivativesToRefined.h
DiameterRestraint.h
Diffusion.h
DihedralRestraint.h
dihedrals.h
DihedralSingletonScore.h
DiscreteSampler.h
display.h
display_config.h
display_log.py
display_macros.h
displaying_ensembles.py
distance.h
distance_pair_score_macros.h
core/DistancePairScore.h
score_functor/DistancePairScore.h
DistanceRestraint.h
DistanceToSingletonScore.h
DistributePairsScoreState.h
DistributeQuadsScoreState.h
DistributeSingletonsScoreState.h
DistributeTripletsScoreState.h
Distribution.h
dock_with_crosslinks.py
Domain.h
domino.h
domino_approach.py
domino_config.h
domino_filter_tables.h
domino_filters.h
domino_macros.h
domino_particle_states.h
DominoModel.py
DominoSampler.h
Dope.h
dope_and_excluded_volume.cpp
DopePairScore.h
doxygen.h
kernel/doxygen.h
doxygen_macros.h
DummyRestraint.h
DynamicListPairContainer.h
DynamicListQuadContainer.h
DynamicListSingletonContainer.h
DynamicListTripletContainer.h
eigen_analysis.h
element.h
Ellipsoid3D.h
em.h
em2d.h
em2d_config.h
Em2DRestraint.h
em_config.h
em_images_conversion.py
em_restraint.py
emagefit.py
emagefit_cluster.py
emagefit_dock.py
emagefit_score.py
em/embedding.h
statistics/embedding.h
embedding_macros.h
embeddings.h
EMReaderWriter.h
endian.h
ensemble_analysis.h
Entry.py
enums.h
envelope_penetration.h
EnvelopeFitRestraint.h
EnvelopePenetrationRestraint.h
EnvelopeScore.h
estimate_threshold_from_molecular_mass.py
estimates.h
EventPairsOptimizerState.h
EventQuadsOptimizerState.h
EventSingletonsOptimizerState.h
EventTripletsOptimizerState.h
example.h
example_config.h
ExampleComplexRestraint.h
ExampleConstraint.h
ExampleDecorator.h
ExamplePairScore.h
ExampleRefCounted.h
ExampleRestraint.h
ExampleSingletonModifier.h
ExampleSubsetFilterTable.h
ExampleTemplateClass.h
ExampleUnaryFunction.h
base/exception.h
exception.h
kernel/exception.h
excluded_volume.py
ExcludedVolumeRestraint.h
exp.h
fft_based_rigid_fitting.h
FFToperations.h
fifobased_loader.py
FIFOBasedGrid.py
base/file.h
file.h
kernel/file.h
filebased_loader.py
FileBasedGrid.py
filenames_manipulation.h
filter_close_pairs.py
FilterGeometry.h
Fine2DRegistrationRestraint.h
fit_fft.py
fit_restraint.py
FitParameters.h
FitRestraint.h
fitting_clustering.h
fitting_solutions_reader_writer.h
fitting_states.h
fitting_tools.h
fitting_utils.h
FittingSolutionRecord.h
FixedRefiner.h
flags.h
FloatIndex.h
kernel/FloatIndex.h
FNormal.h
force_fields.h
ForceFieldParameters.h
FormFactorTable.h
foxs.cpp
Fragment.h
frames.h
functor.h
kernel/functor.h
GaussianProcessInterpolation.h
GaussianProcessInterpolationRestraint.h
GaussianProcessInterpolationRestraintSparse.h
GaussianProcessInterpolationSparse.h
GaussianRestraint.h
generate_density_map_of_fixed_dimension.py
container/generic.h
core/generic.h
generic.h
kernel/generic.h
geometric_alignment.h
geometric_primitive_macros.h
GeometricHash.h
GeometricPrimitiveD.h
geometry.h
algebra/geometry.py
rmf/geometry.py
geometry_io.h
geometry_macros.h
GeometryProcessor.h
GeometrySet.h
graph.py
graph_macros.h
grid_embeddings.h
grid_indexes.h
grid_ranges.h
grid_space.py
grid_storages.h
grid_utility.h
GridClosePairsFinder.h
GridD.h
gsl.h
gsl_config.h
GSLOptimizer.h
core/Harmonic.h
score_functor/Harmonic.h
core/HarmonicLowerBound.h
score_functor/HarmonicLowerBound.h
core/HarmonicUpperBound.h
score_functor/HarmonicUpperBound.h
HarmonicWell.h
hash.h
hash_macros.h
header_converters.h
hierarchical_clustering.h
atom/Hierarchy.h
core/Hierarchy.h
hierarchy_tools.h
Histogram.h
HistogramD.h
History.py
hosts.py
HybridMonteCarlo.h
idock.py
Image.h
image_processing.h
ImageHeader.h
ImageReaderWriter.h
IMP.h
imp_example_app.cpp
imp_restraints_in_modeller.py
ImproperSingletonScore.h
InContainerPairFilter.h
InContainerQuadFilter.h
InContainerSingletonFilter.h
InContainerTripletFilter.h
incremental_mc.py
IncrementalScoringFunction.h
Index.h
indexes.py
input_output.h
kernel/input_output.h
input_output_macros.h
kernel/input_output_macros.h
InputAdaptor.h
interactive.h
interactive.py
interactive_with_containers.py
algebra/io.h
io.h
kernel/io.h
isd.h
isd_config.h
ISDRestraint.h
JeffreysRestraint.h
JPGImageReaderWriter.h
kernel.h
kernel_config.h
KernelParameters.h
kernel/Key.h
Key.h
kernel/key_macros.h
key_macros.h
kmeans/KMeans.h
KMeans.h
kmeans.py
kmeans_config.h
kmeans_example.py
LangevinThermostatOptimizerState.h
LeavesRefiner.h
LennardJones.h
LennardJonesPairScore.h
ligand_score.cpp
Linear.h
LinearFit.h
LinearLowerBound.h
link.py
link_macros.h
links.h
ListPairContainer.h
ListQuadContainer.h
ListSingletonContainer.h
ListTripletContainer.h
live_objects.h
load_modeller_model.py
load_protein_restrain_bonds.py
local_distance.py
local_fitting.py
base/log.h
kernel/log.h
log.h
log.py
log_macros.h
logfile.py
LogicalORRestraint.h
LognormalRestraint.h
LogOptimizerState.h
LogPairScore.h
LowestRefinedPairScore.h
kernel/macros.h
macros.h
MaintainScaleOrderConstraint.h
map.h
map2pca.py
MapDistanceTransform.h
MapReaderWriter.h
MarginalHBondRestraint.h
MarginalNOERestraint.h
marina_party.py
markers.py
masking.h
Mass.h
master_communicator.py
math.h
MCCGSampler.h
doc/examples/domino/merge_tree.py
lib/IMP/multifit/merge_tree.py
merge_tree_utils.h
Metric.h
metric_clustering.h
metric_macros.h
metrics.h
MinimumPairRestraint.h
MinimumPairScore.h
MinimumQuadRestraint.h
MinimumQuadScore.h
MinimumRestraint.h
MinimumSingletonRestraint.h
MinimumSingletonScore.h
MinimumTripletRestraint.h
MinimumTripletScore.h
misc.h
misc_config.h
kernel/Model.h
Model.h
model_interaction.h
model_statistics.h
modeller.h
modeller_config.h
modeller_restraints_in_imp.py
kernel/ModelObject.h
ModelObject.h
models.py
mol2.h
mol2pca.py
MolCnSymmAxisDetector.h
molecular_hierarchy.py
atom/MolecularDynamics.h
isd/MolecularDynamics.h
MolecularDynamicsMover.h
Molecule.h
monte_carlo_macros.h
MonteCarlo.h
MonteCarloMover.h
MonteCarloRelativeMoves.py
Mover.h
mover_macros.h
MoverBase.h
MoveStatisticsScoreState.h
MRCReaderWriter.h
ms_connectivity_restraint.py
MSConnectivityRestraint.h
multifit.h
multifit.py
multifit_config.h
MultipleBinormalRestraint.h
multiresolution.py
multiscale.py
MultivariateFNormalSufficient.h
MultivariateFNormalSufficientSparse.h
NearestNeighborsClosePairsFinder.h
NOERestraint.h
nonbonded_interactions.py
NonCopyable.h
NormalMover.h
Nuisance.h
NuisanceRangeModifier.h
nullptr.h
nullptr_macros.h
nup84.py
nup84_complex_in_bead_representation.py
base/Object.h
kernel/Object.h
Object.h
object_cast.h
object_macros.h
core/OpenCubicSpline.h
score_functor/OpenCubicSpline.h
opencv_interface.h
optimize_balls.py
optimize_em2d_with_montecarlo.py
kernel/Optimizer.h
Optimizer.h
kernel/optimizer_macros.h
optimizer_macros.h
kernel/optimizer_state_macros.h
optimizer_state_macros.h
kernel/OptimizerState.h
OptimizerState.h
optimizing.h
Order.h
OrderedDict.py
osPeptideDocker.py
kernel/pair_macros.h
pair_macros.h
pair_predicates.h
pair_restraint.py
PairConstraint.h
kernel/PairContainer.h
PairContainer.h
PairContainerSet.h
PairContainerStatistics.h
kernel/PairDerivativeModifier.h
PairDerivativeModifier.h
kernel/PairModifier.h
PairModifier.h
kernel/PairPredicate.h
PairPredicate.h
PairRestraint.h
PairsConstraint.h
kernel/PairScore.h
PairScore.h
PairsOptimizerState.h
PairsRestraint.h
ParabolicFit.h
parallel.h
parallel_config.h
cnmultifit/param.py
multifit/param.py
kernel/Particle.h
Particle.h
particle_geometry.h
kernel/particle_index.h
particle_index.h
particle_io.h
particle_states.h
kernel/ParticleTuple.h
ParticleTuple.h
partitional_clustering_macros.h
PartitionalClustering.h
PartitionalClusteringWithCenter.h
path_reader_writer.h
pca_based_rigid_fitting.h
PCAAligner.h
PCAFitRestraint.h
pdb.h
pdb.py
pdb2density.py
pdb_check.cpp
pdb_rmf.cpp
pepdock.h
pepdock_config.h
peptideDocker.py
periodic_optimizer_state_macros.h
PeriodicOptimizerState.h
piecewise_linear_distribution.h
Plane3D.h
point_clustering.h
base/Pointer.h
kernel/Pointer.h
Pointer.h
PolarResamplingParameters.h
PredicatePairsRestraint.h
PredicateQuadsRestraint.h
predicates.h
PredicateSingletonsRestraint.h
PredicateTripletsRestraint.h
primitive_geometries.h
Profile.h
profile.py
profile_fit.py
ProfileFitter.h
Profiler.h
project.h
ProjectionFinder.h
ProjectionMask.h
ProjectionParameters.h
protein_anchors_mapping_reader.h
protein_ligand_score.h
proteomics.py
proteomics_em_alignment_atomic.h
proteomics_reader.h
PymolWriter.h
PyroGrid.py
PyroHandlerLoader.py
PyroUtils.py
algebra/python_only.h
atom/python_only.h
core/python_only.h
display/python_only.h
kernel/python_only.h
python_only.h
statistics/python_only.h
kernel/quad_macros.h
quad_macros.h
quad_predicates.h
QuadConstraint.h
kernel/QuadContainer.h
QuadContainer.h
QuadContainerSet.h
QuadContainerStatistics.h
kernel/QuadDerivativeModifier.h
QuadDerivativeModifier.h
kernel/QuadModifier.h
QuadModifier.h
kernel/QuadPredicate.h
QuadPredicate.h
QuadraticClosePairsFinder.h
QuadRestraint.h
QuadsConstraint.h
kernel/QuadScore.h
QuadScore.h
QuadsOptimizerState.h
QuadsRestraint.h
QuasiNewton.h
multifit/RadiusOfGyrationRestraint.h
saxs/RadiusOfGyrationRestraint.h
RAII.h
raii_macros.h
base/random.h
kernel/random.h
random.h
randomize_rigid_body.py
randomizing.h
range_restriction.py
RecursivePartitionalClusteringEmbedding.h
RecursivePartitionalClusteringMetric.h
ref_counted_macros.h
base/RefCounted.h
kernel/RefCounted.h
RefCounted.h
reference.py
ReferenceFrame3D.h
refine_fft.py
RefinedPairsPairScore.h
kernel/Refiner.h
Refiner.h
kernel/refiner_macros.h
refiner_macros.h
Reflection3D.h
RegistrationResult.h
RelativePositionMover.h
RemoveRigidMotionOptimizerState.h
RemoveTranslationOptimizerState.h
Replica.py
RepulsiveDistancePairScore.h
resample_density.py
Residue.h
restrain_diameter.py
restrain_in_sphere.py
restrain_minimum_distance.py
restrainer.h
restrainer_config.h
kernel/Restraint.h
Restraint.h
saxs/Restraint.h
restraint_cache.py
restraint_geometry.h
restraint_io.h
kernel/restraint_macros.h
restraint_macros.h
restraints.py
kernel/RestraintSet.h
RestraintSet.h
RestraintsScoringFunction.h
rg.cpp
rigid_bodies.h
rigid_bodies.py
rigid_body_and_excluded_volume_restraint.py
rigid_body_excluded_volume.py
rigid_body_geometries.h
rigid_brownian_dynamics.py
rigid_collisions.py
rigid_fitting.h
RigidBodiesImageFitRestraint.h
RigidBodyDistancePairScore.h
RigidBodyMover.h
RigidClosePairsFinder.h
rmf.h
rmf_color.cpp
rmf_config.h
rmf_display.cpp
RMFWriter.h
rmsd.py
RMSDClustering.h
ro.py
rotamer.h
rotamer_config.h
rotamer_pdb.py
rotamer_pdb2.py
RotamerCalculator.h
RotamerLibrary.h
Rotation2D.h
Rotation3D.h
SameResiduePairFilter.h
SampledDensityMap.h
kernel/Sampler.h
Sampler.h
kernel/sampler_macros.h
sampler_macros.h
sampling.py
save_assignments.py
SaveOptimizerState.h
saxs.h
saxs_config.h
saxs_merge.py
saxs_restraint.py
Scale.h
kernel/scoped.h
scoped.h
Score.h
score.py
score_functor.h
score_functor_config.h
score_protein_with_ligand.py
kernel/score_state_macros.h
score_state_macros.h
kernel/ScoreAccumulator.h
ScoreAccumulator.h
scores2D.h
kernel/ScoreState.h
ScoreState.h
ScoreUnaryFunction.h
kernel/scoring_function_macros.h
scoring_function_macros.h
kernel/ScoringFunction.h
ScoringFunction.h
scratch.h
scratch_config.h
secondary_structure_reader.h
SecondaryStructureResidue.h
Segment3D.h
Selection.h
SerialMover.h
serialPeptideDocker.py
set.h
SetCheckState.h
SetLogState.h
SettingsData.h
setup.py
shared_functions.py
Shift.h
shortest_segment.h
show_particles_as_spheres.py
Showable.h
showable_macros.h
simple_connectivity_on_molecules.py
simple_connectivity_on_rigid_bodies.py
simple_diameter.py
simple_distance.py
simple_em_fit.py
simple_excluded_volume.py
simple_links.h
Simplex.h
simplex.py
simplify_restraint.h
simulate_density_from_pdb.py
simulation.py
Simulator.h
kernel/singleton_macros.h
singleton_macros.h
singleton_predicates.h
SingletonConstraint.h
kernel/SingletonContainer.h
SingletonContainer.h
SingletonContainerSet.h
SingletonContainerStatistics.h
kernel/SingletonDerivativeModifier.h
SingletonDerivativeModifier.h
kernel/SingletonModifier.h
SingletonModifier.h
kernel/SingletonPredicate.h
SingletonPredicate.h
SingletonRestraint.h
SingletonsConstraint.h
kernel/SingletonScore.h
SingletonScore.h
SingletonsOptimizerState.h
SingletonsRestraint.h
six_particles_optimization.py
slave_handler.py
slavestate.py
Slice.h
SlidingPriorRestraint.h
smoothing_functions.h
SoftCylinderPairScore.h
solutions_io.py
SolventAccessibleSurface.h
Sphere3D.h
SphereD.h
SphereDistance.h
SphereDistancePairScore.h
SpherePatch3D.h
SphericalVector3D.h
SpiderHeader.h
SpiderImageReaderWriter.h
SpiderReaderWriter.h
standard_grids.h
StateAdaptor.h
Statistical.h
StatisticalPairScore.h
statistics.h
Statistics.py
statistics_config.h
SteepestDescent.h
StereochemistryPairFilter.h
structure_from_sequence.py
subproc.py
Subset.h
subset_filters.h
subset_graphs.h
subset_scores.h
surface.py
SurfaceShellDensityMap.h
swap_macros.h
swig_macros.h
Switching.h
symmetric_multifit.h
symmetry.h
symmetry.py
symmetry_utils.h
system.h
system_config.h
TableRefiner.h
TALOSReader.py
TALOSRestraint.h
tasks.py
TBLReader.py
test.h
thread_macros.h
threads.h
TIFFImageReaderWriter.h
tracking.h
Transform.h
Transformation2D.h
Transformation3D.h
TransformationClustering.h
TransformedDistancePairScore.h
transforms.py
Triangle3D.h
kernel/triplet_macros.h
triplet_macros.h
triplet_predicates.h
TripletConstraint.h
kernel/TripletContainer.h
TripletContainer.h
TripletContainerSet.h
TripletContainerStatistics.h
kernel/TripletDerivativeModifier.h
TripletDerivativeModifier.h
kernel/TripletModifier.h
TripletModifier.h
kernel/TripletPredicate.h
TripletPredicate.h
TripletRestraint.h
TripletsConstraint.h
kernel/TripletScore.h
TripletScore.h
TripletsOptimizerState.h
TripletsRestraint.h
TruncatedHarmonic.h
TuneRex.py
tuple_macros.h
Typed.h
TypedPairScore.h
types.h
kernel/unary_function_macros.h
unary_function_macros.h
kernel/UnaryFunction.h
UnaryFunction.h
UnaryFunctionEvaluate.h
kernel/Undecorator.h
Undecorator.h
univariate_functions.h
util.py
algebra/utility.h
base/utility.h
benchmark/utility.h
core/utility.h
domino/utility.h
kernel/utility.h
saxs/utility.h
statistics/utility.h
utility.h
utility.py
utility_macros.h
utils.py
validate_profile.cpp
Value.h
value_macros.h
Vector.h
Vector2D.h
Vector3D.h
vector_generators.h
vector_metrics.h
vector_property_map.h
vector_search.h
VectorD.h
VelocityScalingOptimizerState.h
base/VersionInfo.h
kernel/VersionInfo.h
VersionInfo.h
view_density_header.py
VolumeRestraint.h
vonMises.h
vonMisesKappaConjugateRestraint.h
vonMisesKappaJeffreysRestraint.h
vonMisesSufficient.h
Voxel.h
warning_macros.h
WarningContext.h
base/WeakPointer.h
kernel/WeakPointer.h
WeakPointer.h
weighted_excluded_volume.h
WeightedExcludedVolumeRestraint.h
WeightScore.h
WormLikeChain.h
write_a_metric.py
write_a_restraint.py
write_an_optimizer_state.py
Writer.h
writer_macros.h
XplorReaderWriter.h
XYZ.h
XYZ_Decorator.py
XYZR.h
XYZR_Decorator.py
File Members
Examples
compiler_macros.h
Go to the documentation of this file.
1
/**
2
* \file IMP/base/compiler_macros.h
3
* \brief Various compiler workarounds
4
*
5
* Copyright 2007-2013 IMP Inventors. All rights reserved.
6
*/
7
8
#ifndef IMPBASE_BASE_COMPILER_MACROS_H
9
#define IMPBASE_BASE_COMPILER_MACROS_H
10
11
#include <boost/detail/endian.hpp>
12
13
#define IMP_STRINGIFY(x) #x
14
15
// recommended by http://gcc.gnu.org/gcc/Function-Names.html
16
#if defined(_MSC_VER)
17
# define __func__ __FUNCTION__
18
#elif defined(__STDC_VERSION__) && __STDC_VERSION__ < 199901L
19
# if __GNUC__ >= 2
20
# define __func__ __FUNCTION__
21
# else
22
# define __func__ "<unknown>"
23
# endif
24
#endif
25
26
27
#ifndef IMP_DOXYGEN
28
#ifdef __GNUC__
29
//! Use this to label a function with no side effects
30
/** \advanced */
31
#define IMP_NO_SIDEEFFECTS __attribute__ ((pure))
32
//! Use this to make the compiler (possibly) warn if the result is not used
33
/** \advanced */
34
#define IMP_WARN_UNUSED_RESULT __attribute__ ((warn_unused_result))
35
//! restrict means that a variable is not aliased with this function
36
#define IMP_RESTRICT __restrict__
37
38
#else
39
#define IMP_NO_SIDEEFFECTS
40
#define IMP_WARN_UNUSED_RESULT
41
#define IMP_RESTRICT
42
#endif
43
44
#endif
45
46
#ifdef __clang__
47
#define IMP_COMPILER_HAS_OVERRIDE 1
48
#elif defined(__GNUC__) && __cplusplus >= 201103L
49
// probably should be finer here
50
#define IMP_COMPILER_HAS_OVERRIDE 1
51
#else
52
#define IMP_COMPILER_HAS_OVERRIDE 0
53
#endif
54
55
#if IMP_COMPILER_HAS_OVERRIDE
56
#define IMP_OVERRIDE override
57
#else
58
#define IMP_OVERRIDE
59
#endif
60
61
62
#ifdef __clang__
63
#define IMP_COMPILER_HAS_FINAL 1
64
#elif defined(__GNUC__) && __cplusplus >= 201103L
65
// probably should be finer here
66
#define IMP_COMPILER_HAS_FINAL 1
67
#else
68
#define IMP_COMPILER_HAS_FINAL 0
69
#endif
70
71
#if IMP_COMPILER_HAS_FINAL
72
#define IMP_FINAL final
73
#else
74
#define IMP_FINAL
75
#endif
76
77
#if defined(__clang__) || defined(__GNUC__)
78
#define IMP_PRAGMA(x) _Pragma(IMP_STRINGIFY(x))
79
80
#if defined(__clang__)
81
#define IMP_CLANG_PRAGMA(x) IMP_PRAGMA(clang x)
82
#define IMP_GCC_PRAGMA(x)
83
#define IMP_VC_PRAGMA(x)
84
#else
85
#define IMP_CLANG_PRAGMA(x)
86
#define IMP_GCC_PRAGMA(x) IMP_PRAGMA(GCC x)
87
#define IMP_VC_PRAGMA(x)
88
#endif
89
90
#elif defined(_MSC_VER)
91
#define IMP_PRAGMA(x) __pragma(x)
92
#define IMP_CLANG_PRAGMA(x)
93
#define IMP_GCC_PRAGMA(x)
94
#define IMP_VC_PRAGMA(x) IMP_PRAGMA(x)
95
96
#else
97
#define IMP_PRAGMA(x)
98
#define IMP_CLANG_PRAGMA(x)
99
#define IMP_GCC_PRAGMA(x)
100
#define IMP_VC_PRAGMA(x)
101
#endif
102
103
#ifndef IMP_DOXYGEN
104
#if defined(BOOST_LITTLE_ENDIAN)
105
#define IMP_LITTLE_ENDIAN
106
#else
107
#define IMP_BIG_ENDIAN
108
#endif
109
#endif
110
111
#ifdef __clang__
112
113
#define IMP_GCC_PUSH_POP(x)
114
115
#define IMP_COMPILER_ENABLE_WARNINGS \
116
IMP_CLANG_PRAGMA( diagnostic push) \
117
/*IMP_CLANG_PRAGMA( diagnostic warning "-Wall")*/
\
118
/*IMP_CLANG_PRAGMA( diagnostic warning "-Wextra") */
\
119
IMP_CLANG_PRAGMA( diagnostic warning "-Wabi") \
120
IMP_CLANG_PRAGMA( diagnostic warning "-Waddress-of-temporary") \
121
IMP_CLANG_PRAGMA( diagnostic warning "-Waddress") \
122
IMP_CLANG_PRAGMA( diagnostic warning "-Waggregate-return") \
123
IMP_CLANG_PRAGMA( diagnostic warning "-Wambiguous-member-template") \
124
IMP_CLANG_PRAGMA( diagnostic warning "-Warc-abi") \
125
IMP_CLANG_PRAGMA( diagnostic warning "-Warc-non-pod-memaccess") \
126
IMP_CLANG_PRAGMA( diagnostic warning "-Warc-retain-cycles") \
127
IMP_CLANG_PRAGMA( diagnostic warning "-Warc-unsafe-retained-assign") \
128
IMP_CLANG_PRAGMA( diagnostic warning "-Warc") \
129
IMP_CLANG_PRAGMA( diagnostic warning "-Watomic-properties") \
130
IMP_CLANG_PRAGMA( diagnostic warning "-Wattributes") \
131
IMP_CLANG_PRAGMA( diagnostic warning "-Wavailability") \
132
IMP_CLANG_PRAGMA( diagnostic warning "-Wbad-function-cast") \
133
IMP_CLANG_PRAGMA( diagnostic warning "-Wbind-to-temporary-copy") \
134
IMP_CLANG_PRAGMA( diagnostic warning "-Wbitwise-op-parentheses") \
135
IMP_CLANG_PRAGMA( diagnostic warning "-Wbool-conversions") \
136
IMP_CLANG_PRAGMA( diagnostic warning "-Wbuiltin-macro-redefined") \
137
IMP_CLANG_PRAGMA( diagnostic warning "-Wc++-compat") \
138
IMP_CLANG_PRAGMA( diagnostic warning "-Wc++0x-compat") \
139
IMP_CLANG_PRAGMA( diagnostic ignored "-Wc++11-extensions") \
140
IMP_CLANG_PRAGMA( diagnostic ignored "-Wc++0x-extensions") \
141
IMP_CLANG_PRAGMA( diagnostic warning "-Wcast-align") \
142
IMP_CLANG_PRAGMA( diagnostic warning "-Wcast-qual") \
143
IMP_CLANG_PRAGMA( diagnostic warning "-Wchar-align") \
144
IMP_CLANG_PRAGMA( diagnostic warning "-Wchar-subscripts") \
145
IMP_CLANG_PRAGMA( diagnostic warning "-Wcomment") \
146
IMP_CLANG_PRAGMA( diagnostic warning "-Wcomments") \
147
/* Too many false positives */
\
148
/*IMP_CLANG_PRAGMA( diagnostic warning "-Wconditional-uninitialized")*/
\
149
IMP_CLANG_PRAGMA( diagnostic warning "-Wctor-dtor-privacy") \
150
IMP_CLANG_PRAGMA( diagnostic warning "-Wcustom-atomic-properties") \
151
IMP_CLANG_PRAGMA( diagnostic warning "-Wdeclaration-after-statement") \
152
IMP_CLANG_PRAGMA( diagnostic warning "-Wdefault-arg-special-member") \
153
IMP_CLANG_PRAGMA( diagnostic warning "-Wdelegating-ctor-cycles") \
154
IMP_CLANG_PRAGMA( diagnostic warning "-Wdelete-non-virtual-dtor") \
155
IMP_CLANG_PRAGMA( diagnostic warning "-Wdeprecated-declarations") \
156
IMP_CLANG_PRAGMA( diagnostic warning "-Wdeprecated-implementations") \
157
IMP_CLANG_PRAGMA( diagnostic warning "-Wdeprecated-writable-strings") \
158
IMP_CLANG_PRAGMA( diagnostic warning "-Wdeprecated") \
159
IMP_CLANG_PRAGMA( diagnostic warning "-Wdisabled-optimization") \
160
IMP_CLANG_PRAGMA( diagnostic warning "-Wdiscard-qual") \
161
IMP_CLANG_PRAGMA( diagnostic warning "-Wdiv-by-zero") \
162
IMP_CLANG_PRAGMA( diagnostic warning "-Wduplicate-method-arg") \
163
IMP_CLANG_PRAGMA( diagnostic warning "-Weffc++") \
164
IMP_CLANG_PRAGMA( diagnostic warning "-Wempty-body") \
165
IMP_CLANG_PRAGMA( diagnostic warning "-Wendif-labels") \
166
IMP_CLANG_PRAGMA( diagnostic ignored "-Wexit-time-destructors") \
167
IMP_CLANG_PRAGMA( diagnostic warning "-Wextra-tokens") \
168
IMP_CLANG_PRAGMA( diagnostic warning "-Wformat-extra-args") \
169
IMP_CLANG_PRAGMA( diagnostic warning "-Wformat-nonliteral") \
170
IMP_CLANG_PRAGMA( diagnostic warning "-Wformat-zero-length") \
171
IMP_CLANG_PRAGMA( diagnostic warning "-Wformat") \
172
IMP_CLANG_PRAGMA( diagnostic warning "-Wformat=2") \
173
IMP_CLANG_PRAGMA( diagnostic warning "-Wfour-char-constants") \
174
IMP_CLANG_PRAGMA( diagnostic ignored "-Wglobal-constructors") \
175
IMP_CLANG_PRAGMA( diagnostic warning "-Wgnu-designator") \
176
IMP_CLANG_PRAGMA( diagnostic warning "-Wgnu") \
177
IMP_CLANG_PRAGMA( diagnostic warning "-Wheader-hygiene") \
178
IMP_CLANG_PRAGMA( diagnostic warning "-Widiomatic-parentheses") \
179
IMP_CLANG_PRAGMA( diagnostic warning "-Wignored-qualifiers") \
180
IMP_CLANG_PRAGMA( diagnostic warning "-Wimplicit-atomic-properties") \
181
IMP_CLANG_PRAGMA( diagnostic warning "-Wimplicit-function-declaration") \
182
IMP_CLANG_PRAGMA( diagnostic warning "-Wimplicit-int") \
183
IMP_CLANG_PRAGMA( diagnostic warning "-Wimplicit") \
184
IMP_CLANG_PRAGMA( diagnostic warning "-Wimport") \
185
IMP_CLANG_PRAGMA( diagnostic warning "-Wincompatible-pointer-types") \
186
IMP_CLANG_PRAGMA( diagnostic warning "-Winit-self") \
187
IMP_CLANG_PRAGMA( diagnostic warning "-Winitializer-overrides") \
188
IMP_CLANG_PRAGMA( diagnostic warning "-Winline") \
189
IMP_CLANG_PRAGMA( diagnostic warning "-Wint-to-pointer-cast") \
190
IMP_CLANG_PRAGMA( diagnostic warning "-Winvalid-offsetof") \
191
IMP_CLANG_PRAGMA( diagnostic warning "-Winvalid-pch") \
192
IMP_CLANG_PRAGMA( diagnostic warning "-Wlarge-by-value-copy") \
193
IMP_CLANG_PRAGMA( diagnostic warning "-Wliteral-range") \
194
IMP_CLANG_PRAGMA( diagnostic warning "-Wlocal-type-template-args") \
195
IMP_CLANG_PRAGMA( diagnostic warning "-Wlogical-op-parentheses") \
196
IMP_CLANG_PRAGMA( diagnostic warning "-Wlong-long") \
197
IMP_CLANG_PRAGMA( diagnostic warning "-Wmain") \
198
IMP_CLANG_PRAGMA( diagnostic warning "-Wmicrosoft") \
199
IMP_CLANG_PRAGMA( diagnostic warning "-Wmismatched-tags") \
200
IMP_CLANG_PRAGMA( diagnostic warning "-Wmissing-braces") \
201
IMP_CLANG_PRAGMA( diagnostic warning "-Wmissing-declarations") \
202
IMP_CLANG_PRAGMA( diagnostic warning "-Wmissing-field-initializers") \
203
IMP_CLANG_PRAGMA( diagnostic warning "-Wmissing-format-attribute") \
204
IMP_CLANG_PRAGMA( diagnostic warning "-Wmissing-include-dirs") \
205
IMP_CLANG_PRAGMA( diagnostic ignored "-Wmissing-noreturn") \
206
IMP_CLANG_PRAGMA( diagnostic warning "-Wmost") \
207
IMP_CLANG_PRAGMA( diagnostic warning "-Wmultichar") \
208
IMP_CLANG_PRAGMA( diagnostic warning "-Wnested-externs") \
209
IMP_CLANG_PRAGMA( diagnostic warning "-Wnewline-eof") \
210
IMP_CLANG_PRAGMA( diagnostic warning "-Wnon-gcc") \
211
IMP_CLANG_PRAGMA( diagnostic warning "-Wnon-virtual-dtor") \
212
/*IMP_CLANG_PRAGMA( diagnostic ignored "-Wnonfragile-abi2")*/
\
213
IMP_CLANG_PRAGMA( diagnostic warning "-Wnonnull") \
214
IMP_CLANG_PRAGMA( diagnostic warning "-Wnonportable-cfstrings") \
215
IMP_CLANG_PRAGMA( diagnostic warning "-Wnull-dereference") \
216
IMP_CLANG_PRAGMA( diagnostic warning "-Wobjc-nonunified-exceptions") \
217
IMP_CLANG_PRAGMA( diagnostic warning "-Wold-style-cast") \
218
IMP_CLANG_PRAGMA( diagnostic warning "-Wold-style-definition") \
219
IMP_CLANG_PRAGMA( diagnostic warning "-Wout-of-line-declaration") \
220
IMP_CLANG_PRAGMA( diagnostic warning "-Woverflow") \
221
IMP_CLANG_PRAGMA( diagnostic warning "-Woverlength-strings") \
222
IMP_CLANG_PRAGMA( diagnostic warning "-Woverloaded-virtual") \
223
IMP_CLANG_PRAGMA( diagnostic warning "-Wpacked") \
224
IMP_CLANG_PRAGMA( diagnostic ignored "-Wpadded") \
225
IMP_CLANG_PRAGMA( diagnostic warning "-Wparentheses") \
226
IMP_CLANG_PRAGMA( diagnostic warning "-Wpointer-arith") \
227
IMP_CLANG_PRAGMA( diagnostic warning "-Wpointer-to-int-cast") \
228
IMP_CLANG_PRAGMA( diagnostic warning "-Wprotocol") \
229
IMP_CLANG_PRAGMA( diagnostic warning "-Wreadonly-setter-attrs") \
230
IMP_CLANG_PRAGMA( diagnostic warning "-Wredundant-decls") \
231
IMP_CLANG_PRAGMA( diagnostic warning "-Wreorder") \
232
IMP_CLANG_PRAGMA( diagnostic warning "-Wreturn-type") \
233
IMP_CLANG_PRAGMA( diagnostic warning "-Wself-assign") \
234
IMP_CLANG_PRAGMA( diagnostic warning "-Wsemicolon-before-method-body") \
235
IMP_CLANG_PRAGMA( diagnostic warning "-Wsequence-point") \
236
/* We should turn these on, but there are too may warnings.*/
\
237
/*IMP_CLANG_PRAGMA( diagnostic warning "-Wshadow")*/
\
238
IMP_CLANG_PRAGMA( diagnostic ignored "-Wshorten-64-to-32") \
239
IMP_CLANG_PRAGMA( diagnostic warning "-Wsign-compare") \
240
IMP_CLANG_PRAGMA( diagnostic ignored "-Wsign-conversion") \
241
IMP_CLANG_PRAGMA( diagnostic warning "-Wsign-promo") \
242
IMP_CLANG_PRAGMA( diagnostic warning "-Wsizeof-array-argument") \
243
IMP_CLANG_PRAGMA( diagnostic warning "-Wstack-protector") \
244
IMP_CLANG_PRAGMA( diagnostic warning "-Wstrict-aliasing") \
245
IMP_CLANG_PRAGMA( diagnostic warning "-Wstrict-overflow") \
246
IMP_CLANG_PRAGMA( diagnostic warning "-Wstrict-prototypes") \
247
IMP_CLANG_PRAGMA( diagnostic warning "-Wstrict-selector-match") \
248
IMP_CLANG_PRAGMA( diagnostic warning "-Wsuper-class-method-mismatch") \
249
IMP_CLANG_PRAGMA( diagnostic warning "-Wswitch-default") \
250
/* This is just a dumb warning, provided for gcc compat.*/
\
251
IMP_CLANG_PRAGMA( diagnostic ignored "-Wswitch-enum") \
252
IMP_CLANG_PRAGMA( diagnostic warning "-Wswitch") \
253
IMP_CLANG_PRAGMA( diagnostic warning "-Wsynth") \
254
IMP_CLANG_PRAGMA( diagnostic warning "-Wtautological-compare") \
255
IMP_CLANG_PRAGMA( diagnostic warning "-Wtrigraphs") \
256
IMP_CLANG_PRAGMA( diagnostic warning "-Wtype-limits") \
257
IMP_CLANG_PRAGMA( diagnostic warning "-Wundeclared-selector") \
258
IMP_CLANG_PRAGMA( diagnostic warning "-Wuninitialized") \
259
IMP_CLANG_PRAGMA( diagnostic warning "-Wunknown-pragmas") \
260
IMP_CLANG_PRAGMA( diagnostic warning "-Wunnamed-type-template-args") \
261
IMP_CLANG_PRAGMA( diagnostic warning "-Wunneeded-internal-declaration") \
262
IMP_CLANG_PRAGMA( diagnostic warning "-Wunneeded-member-function") \
263
IMP_CLANG_PRAGMA( diagnostic warning "-Wunused-argument") \
264
IMP_CLANG_PRAGMA( diagnostic warning "-Wunused-exception-parameter") \
265
IMP_CLANG_PRAGMA( diagnostic warning "-Wunused-function") \
266
IMP_CLANG_PRAGMA( diagnostic warning "-Wunused-label") \
267
IMP_CLANG_PRAGMA( diagnostic warning "-Wunused-member-function") \
268
IMP_CLANG_PRAGMA( diagnostic warning "-Wunused-parameter") \
269
IMP_CLANG_PRAGMA( diagnostic warning "-Wunused-value") \
270
IMP_CLANG_PRAGMA( diagnostic warning "-Wunused-variable") \
271
IMP_CLANG_PRAGMA( diagnostic warning "-Wunused") \
272
IMP_CLANG_PRAGMA( diagnostic warning "-Wused-but-marked-unused") \
273
IMP_CLANG_PRAGMA( diagnostic warning "-Wvariadic-macros") \
274
IMP_CLANG_PRAGMA( diagnostic warning "-Wvector-conversions") \
275
IMP_CLANG_PRAGMA( diagnostic warning "-Wvla") \
276
IMP_CLANG_PRAGMA( diagnostic warning "-Wvolatile-register-var") \
277
IMP_CLANG_PRAGMA( diagnostic warning "-Wwrite-strings") \
278
/* Most of these are stupid uses of floats instead of doubles. I don't
279
want to fix them all now. For some reason this needs to be last.*/
\
280
IMP_CLANG_PRAGMA( diagnostic ignored "-Wconversion") \
281
IMP_CLANG_PRAGMA( diagnostic ignored "-Wc++11-compat")
282
283
284
#define IMP_HELPER_MACRO_PUSH_WARNINGS \
285
IMP_CLANG_PRAGMA( diagnostic push) \
286
IMP_CLANG_PRAGMA( diagnostic ignored "-Wunused-member-function")
287
288
#define IMP_HELPER_MACRO_POP_WARNINGS \
289
IMP_CLANG_PRAGMA( diagnostic pop)
290
291
/* IMP_CLANG_PRAGMA( diagnostic warning "-Wall") \
292
IMP_CLANG_PRAGMA( diagnostic warning "-Weverything") \
293
IMP_CLANG_PRAGMA( diagnostic ignored "-Wpadded") \
294
IMP_CLANG_PRAGMA( diagnostic ignored "-Wc++11-extensions") \
295
IMP_CLANG_PRAGMA( diagnostic ignored "-Wunknown-pragmas") \
296
IMP_CLANG_PRAGMA( diagnostic ignored "-Wc++98-compat")*/
297
298
#define IMP_COMPILER_DISABLE_WARNINGS \
299
IMP_CLANG_PRAGMA( diagnostic pop)
300
301
#elif defined(__GNUC__)
302
303
/*ret+=["-Wno-deprecated",
304
"-Wstrict-aliasing=2",
305
-fno-operator-names",]*/
306
#if __GNUC__ > 4 || __GNUC_MINOR__ >=6
307
#define IMP_GCC_PUSH_POP(x) IMP_PRAGMA(x)
308
#define IMP_GCC_CXX0X_COMPAT \
309
IMP_GCC_PRAGMA( diagnostic ignored "-Wc++0x-compat")
310
#define IMP_GCC_PROTOTYPES \
311
IMP_GCC_PRAGMA( diagnostic warning "-Wmissing-declarations")
312
313
#define IMP_HELPER_MACRO_PUSH_WARNINGS \
314
IMP_GCC_PRAGMA( diagnostic push)
315
316
#define IMP_HELPER_MACRO_POP_WARNINGS \
317
IMP_GCC_PRAGMA( diagnostic pop)
318
319
320
#else
321
#define IMP_GCC_PUSH_POP(x)
322
#define IMP_GCC_CXX0X_COMPAT
323
#define IMP_GCC_PROTOTYPES
324
#define IMP_HELPER_MACRO_PUSH_WARNINGS
325
#define IMP_HELPER_MACRO_POP_WARNINGS
326
#endif
327
328
#define IMP_COMPILER_ENABLE_WARNINGS \
329
IMP_GCC_PUSH_POP(GCC diagnostic push) \
330
IMP_GCC_PRAGMA( diagnostic warning "-Wall") \
331
IMP_GCC_PRAGMA( diagnostic warning "-Wextra") \
332
IMP_GCC_PRAGMA( diagnostic warning "-Winit-self") \
333
IMP_GCC_PRAGMA( diagnostic warning "-Wcast-align") \
334
IMP_GCC_PRAGMA( diagnostic warning "-Woverloaded-virtual") \
335
IMP_GCC_PRAGMA( diagnostic warning "-Wundef") \
336
IMP_GCC_PROTOTYPES \
337
IMP_GCC_CXX0X_COMPAT
338
339
#define IMP_COMPILER_DISABLE_WARNINGS \
340
IMP_GCC_PUSH_POP(GCC diagnostic pop)
341
342
#elif defined(_MSC_VER)
343
#define IMP_GCC_PUSH_POP(x)
344
345
#define IMP_COMPILER_ENABLE_WARNINGS\
346
IMP_VC_PRAGMA(warning(push)) \
347
IMP_VC_PRAGMA(warning( disable: 4273 ))
348
349
#define IMP_COMPILER_DISABLE_WARNINGS\
350
IMP_VC_PRAGMA(warning(pop))
351
352
#define IMP_HELPER_MACRO_PUSH_WARNINGS
353
#define IMP_HELPER_MACRO_POP_WARNINGS
354
355
#else
356
#define IMP_COMPILER_ENABLE_WARNINGS
357
#define IMP_COMPILER_DISABLE_WARNINGS
358
#define IMP_HELPER_MACRO_PUSH_WARNINGS
359
#define IMP_HELPER_MACRO_POP_WARNINGS
360
#endif
361
362
#endif
/* IMPBASE_BASE_COMPILER_MACROS_H */