general: Remove '#pragma interface'/'#pragma implementation'

The GCC documentation states that, as of GCC 2.7.2, these aren't
necessary for proper program behavior. The documentation further
discourages their use because they don't suppress unnecessary code
duplication.

The Panda codebase these days uses "extern template class" instead,
which tells the compiler not to perform implicit template expansion
because an explicit template expansion is available for linking
elsewhere in the program. This is a more compiler-neutral way of
achieving the same thing as '#pragma interface', making
'#pragma interface' not only redundant, it could also mask problems
in the "extern template class" machinery.
This commit is contained in:
Sam Edwards 2018-03-19 21:41:23 -06:00
parent a4c1b44371
commit cfd70ebead
72 changed files with 0 additions and 361 deletions

View File

@ -19,8 +19,3 @@
#define NAME vector_double
#include "vector_src.cxx"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma implementation
#endif

View File

@ -30,9 +30,4 @@
#include "vector_src.h"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma interface
#endif
#endif

View File

@ -19,8 +19,3 @@
#define NAME vector_float
#include "vector_src.cxx"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma implementation
#endif

View File

@ -30,9 +30,4 @@
#include "vector_src.h"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma interface
#endif
#endif

View File

@ -19,8 +19,3 @@
#define NAME vector_int
#include "vector_src.cxx"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma implementation
#endif

View File

@ -30,9 +30,4 @@
#include "vector_src.h"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma interface
#endif
#endif

View File

@ -19,8 +19,3 @@
#define NAME vector_string
#include "vector_src.cxx"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma implementation
#endif

View File

@ -30,9 +30,4 @@
#include "vector_src.h"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma interface
#endif
#endif

View File

@ -19,8 +19,3 @@
#define NAME vector_uchar
#include "vector_src.cxx"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma implementation
#endif

View File

@ -30,9 +30,4 @@
#include "vector_src.h"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma interface
#endif
#endif

View File

@ -15,11 +15,6 @@
#include "compose_matrix.h"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma implementation
#endif
template class AnimChannel<ACMatrixSwitchType>;
template class AnimChannel<ACScalarSwitchType>;

View File

@ -122,10 +122,4 @@ typedef AnimChannel<ACScalarSwitchType> AnimChannelScalar;
#include "animChannel.I"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma interface
#endif
#endif

View File

@ -21,11 +21,6 @@
#include "bamWriter.h"
#include "config_chan.h"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma implementation
#endif
template class MovingPart<ACMatrixSwitchType>;
TypeHandle MovingPartMatrix::_type_handle;

View File

@ -72,9 +72,4 @@ private:
#include "movingPartMatrix.I"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma interface
#endif
#endif

View File

@ -19,11 +19,6 @@
#include "bamWriter.h"
#include "config_chan.h"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma implementation
#endif
template class MovingPart<ACScalarSwitchType>;
TypeHandle MovingPartScalar::_type_handle;

View File

@ -70,9 +70,4 @@ private:
#include "movingPartScalar.I"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma interface
#endif
#endif

View File

@ -19,8 +19,3 @@
#define NAME vector_PartGroupStar
#include "vector_src.cxx"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma implementation
#endif

View File

@ -32,9 +32,4 @@
#include "vector_src.h"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma interface
#endif
#endif

View File

@ -23,11 +23,6 @@
#include "vector_src.cxx"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma implementation
#endif
/**
* Defines a new InputDevice for the window. Most windows will have exactly
* one InputDevice: a keyboard/mouse pair. Some may also add joystick data,

View File

@ -142,9 +142,4 @@ private:
#include "vector_src.h"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma interface
#endif
#endif

View File

@ -13,11 +13,6 @@
#include "pt_EggMaterial.h"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma implementation
#endif
template class PointerToBase<EggMaterial>;
template class PointerTo<EggMaterial>;
template class ConstPointerTo<EggMaterial>;

View File

@ -31,9 +31,4 @@ EXPORT_TEMPLATE_CLASS(EXPCL_PANDAEGG, EXPTP_PANDAEGG, ConstPointerTo<EggMaterial
typedef PointerTo<EggMaterial> PT_EggMaterial;
typedef ConstPointerTo<EggMaterial> CPT_EggMaterial;
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma interface
#endif
#endif

View File

@ -13,11 +13,6 @@
#include "pt_EggTexture.h"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma implementation
#endif
template class PointerToBase<EggTexture>;
template class PointerTo<EggTexture>;
template class ConstPointerTo<EggTexture>;

View File

@ -31,9 +31,4 @@ EXPORT_TEMPLATE_CLASS(EXPCL_PANDAEGG, EXPTP_PANDAEGG, ConstPointerTo<EggTexture>
typedef PointerTo<EggTexture> PT_EggTexture;
typedef ConstPointerTo<EggTexture> CPT_EggTexture;
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma interface
#endif
#endif

View File

@ -13,11 +13,6 @@
#include "pt_EggVertex.h"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma implementation
#endif
template class PointerToBase<EggVertex>;
template class PointerTo<EggVertex>;
template class ConstPointerTo<EggVertex>;

View File

@ -31,9 +31,4 @@ EXPORT_TEMPLATE_CLASS(EXPCL_PANDAEGG, EXPTP_PANDAEGG, ConstPointerTo<EggVertex>)
typedef PointerTo<EggVertex> PT_EggVertex;
typedef ConstPointerTo<EggVertex> CPT_EggVertex;
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma interface
#endif
#endif

View File

@ -19,8 +19,3 @@
#define NAME vector_PT_EggMaterial
#include "vector_src.cxx"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma implementation
#endif

View File

@ -35,9 +35,4 @@
#include "vector_src.h"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma interface
#endif
#endif

View File

@ -19,8 +19,3 @@
#define NAME vector_PT_EggTexture
#include "vector_src.cxx"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma implementation
#endif

View File

@ -35,9 +35,4 @@
#include "vector_src.h"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma interface
#endif
#endif

View File

@ -19,8 +19,3 @@
#define NAME vector_PT_EggVertex
#include "vector_src.cxx"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma implementation
#endif

View File

@ -35,9 +35,4 @@
#include "vector_src.h"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma interface
#endif
#endif

View File

@ -14,11 +14,6 @@
#include "eventParameter.h"
#include "dcast.h"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma implementation
#endif
template class ParamValue<int>;
template class ParamValue<double>;

View File

@ -86,9 +86,4 @@ typedef ParamWstring EventStoreWstring;
#include "eventParameter.I"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma interface
#endif
#endif

View File

@ -13,11 +13,6 @@
#include "pt_Event.h"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma implementation
#endif
template class PointerToBase<Event>;
template class PointerTo<Event>;
template class ConstPointerTo<Event>;

View File

@ -32,9 +32,4 @@ EXPORT_TEMPLATE_CLASS(EXPCL_PANDA_EVENT, EXPTP_PANDA_EVENT, ConstPointerTo<Event
typedef PointerTo<Event> PT_Event;
typedef ConstPointerTo<Event> CPT_Event;
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma interface
#endif
#endif

View File

@ -13,11 +13,6 @@
#include "pta_double.h"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma implementation
#endif
template class PointerToBase<ReferenceCountedVector<double> >;
template class PointerToArrayBase<double>;
template class PointerToArray<double>;

View File

@ -34,9 +34,4 @@ EXPORT_TEMPLATE_CLASS(EXPCL_PANDAEXPRESS, EXPTP_PANDAEXPRESS, ConstPointerToArra
typedef PointerToArray<double> PTA_double;
typedef ConstPointerToArray<double> CPTA_double;
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma interface
#endif
#endif

View File

@ -13,11 +13,6 @@
#include "pta_float.h"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma implementation
#endif
template class PointerToBase<ReferenceCountedVector<float> >;
template class PointerToArrayBase<float>;
template class PointerToArray<float>;

View File

@ -34,9 +34,4 @@ EXPORT_TEMPLATE_CLASS(EXPCL_PANDAEXPRESS, EXPTP_PANDAEXPRESS, ConstPointerToArra
typedef PointerToArray<float> PTA_float;
typedef ConstPointerToArray<float> CPTA_float;
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma interface
#endif
#endif

View File

@ -13,11 +13,6 @@
#include "pta_int.h"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma implementation
#endif
template class PointerToBase<ReferenceCountedVector<int> >;
template class PointerToArrayBase<int>;
template class PointerToArray<int>;

View File

@ -34,9 +34,4 @@ EXPORT_TEMPLATE_CLASS(EXPCL_PANDAEXPRESS, EXPTP_PANDAEXPRESS, ConstPointerToArra
typedef PointerToArray<int> PTA_int;
typedef ConstPointerToArray<int> CPTA_int;
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma interface
#endif
#endif

View File

@ -13,11 +13,6 @@
#include "pta_uchar.h"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma implementation
#endif
template class PointerToBase<ReferenceCountedVector<uchar> >;
template class PointerToArrayBase<uchar>;
template class PointerToArray<unsigned char>;

View File

@ -38,9 +38,4 @@ EXPORT_TEMPLATE_CLASS(EXPCL_PANDAEXPRESS, EXPTP_PANDAEXPRESS, ConstPointerToArra
typedef PointerToArray<unsigned char> PTA_uchar;
typedef ConstPointerToArray<unsigned char> CPTA_uchar;
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma interface
#endif
#endif

View File

@ -12,8 +12,3 @@
*/
#include "linmath_events.h"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma implementation
#endif

View File

@ -27,9 +27,4 @@ typedef ParamVecBase2 EventStoreVec2;
typedef ParamVecBase3 EventStoreVec3;
typedef ParamMatrix4 EventStoreMat4;
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma interface
#endif
#endif

View File

@ -13,11 +13,6 @@
#include "pta_LMatrix3.h"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma implementation
#endif
template class PointerToBase<ReferenceCountedVector<LMatrix3f> >;
template class PointerToArrayBase<LMatrix3f>;
template class PointerToArray<LMatrix3f>;

View File

@ -64,9 +64,4 @@ typedef PTA_LMatrix3d PTAMat3d;
typedef CPTA_LMatrix3d CPTAMat3d;
#endif // CPPPARSER
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma interface
#endif
#endif

View File

@ -13,11 +13,6 @@
#include "pta_LMatrix4.h"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma implementation
#endif
template class PointerToBase<ReferenceCountedVector<UnalignedLMatrix4f> >;
template class PointerToArrayBase<UnalignedLMatrix4f>;
template class PointerToArray<UnalignedLMatrix4f>;

View File

@ -70,9 +70,4 @@ typedef PTA_LMatrix4d PTAMat4d;
typedef CPTA_LMatrix4d CPTAMat4d;
#endif // CPPPARSER
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma interface
#endif
#endif

View File

@ -13,11 +13,6 @@
#include "pta_LVecBase2.h"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma implementation
#endif
template class PointerToBase<ReferenceCountedVector<LVecBase2f> >;
template class PointerToArrayBase<LVecBase2f>;
template class PointerToArray<LVecBase2f>;

View File

@ -79,9 +79,4 @@ typedef PTA_LVecBase2d PTAVecBase2d;
typedef CPTA_LVecBase2d CPTAVecBase2d;
#endif // CPPPARSER
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma interface
#endif
#endif

View File

@ -13,11 +13,6 @@
#include "pta_LVecBase3.h"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma implementation
#endif
template class PointerToBase<ReferenceCountedVector<LVecBase3f> >;
template class PointerToArrayBase<LVecBase3f>;
template class PointerToArray<LVecBase3f>;

View File

@ -79,9 +79,4 @@ typedef PTA_LVecBase3d PTAVecBase3d;
typedef CPTA_LVecBase3d CPTAVecBase3d;
#endif // CPPPARSER
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma interface
#endif
#endif

View File

@ -13,11 +13,6 @@
#include "pta_LVecBase4.h"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma implementation
#endif
template class PointerToBase<ReferenceCountedVector<UnalignedLVecBase4f> >;
template class PointerToArrayBase<UnalignedLVecBase4f>;
template class PointerToArray<UnalignedLVecBase4f>;

View File

@ -88,9 +88,4 @@ typedef PTA_LVecBase4d PTAVecBase4d;
typedef CPTA_LVecBase4d CPTAVecBase4d;
#endif // CPPPARSER
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma interface
#endif
#endif

View File

@ -13,11 +13,6 @@
#include "bitMask.h"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma implementation
#endif
template class BitMask<uint16_t, 16>;
template class BitMask<uint32_t, 32>;
template class BitMask<uint64_t, 64>;

View File

@ -172,9 +172,4 @@ typedef BitMask64 BitMaskNative;
#error No definition for NATIVE_WORDSIZE--should be defined in dtoolbase.h.
#endif // NATIVE_WORDSIZE
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma interface
#endif
#endif

View File

@ -13,10 +13,5 @@
#include "doubleBitMask.h"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma implementation
#endif
template class DoubleBitMask<BitMaskNative>;
template class DoubleBitMask<DoubleBitMaskNative>;

View File

@ -144,9 +144,4 @@ typedef DoubleBitMask<BitMaskNative> DoubleBitMaskNative;
EXPORT_TEMPLATE_CLASS(EXPCL_PANDA_PUTIL, EXPTP_PANDA_PUTIL, DoubleBitMask<DoubleBitMaskNative>);
typedef DoubleBitMask<DoubleBitMaskNative> QuadBitMaskNative;
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma interface
#endif
#endif

View File

@ -14,11 +14,6 @@
#include "paramValue.h"
#include "dcast.h"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma implementation
#endif
template class ParamValue<std::string>;
template class ParamValue<std::wstring>;

View File

@ -209,9 +209,4 @@ typedef ParamMatrix3f ParamMatrix3;
typedef ParamMatrix4f ParamMatrix4;
#endif
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma interface
#endif
#endif

View File

@ -13,11 +13,6 @@
#include "pta_ushort.h"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma implementation
#endif
template class PointerToBase<ReferenceCountedVector<ushort> >;
template class PointerToArrayBase<ushort>;
template class PointerToArray<unsigned short>;

View File

@ -34,9 +34,4 @@ EXPORT_TEMPLATE_CLASS(EXPCL_PANDA_PUTIL, EXPTP_PANDA_PUTIL, ConstPointerToArray<
typedef PointerToArray<unsigned short> PTA_ushort;
typedef ConstPointerToArray<unsigned short> CPTA_ushort;
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma interface
#endif
#endif

View File

@ -19,8 +19,3 @@
#define NAME vector_typedWritable
#include "vector_src.cxx"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma implementation
#endif

View File

@ -34,9 +34,4 @@ class TypedWritable;
#include "vector_src.h"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma interface
#endif
#endif

View File

@ -19,8 +19,3 @@
#define NAME vector_ulong
#include "vector_src.cxx"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma implementation
#endif

View File

@ -32,9 +32,4 @@
#include "vector_src.h"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma interface
#endif
#endif

View File

@ -19,8 +19,3 @@
#define NAME vector_ushort
#include "vector_src.cxx"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma implementation
#endif

View File

@ -32,9 +32,4 @@
#include "vector_src.h"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma interface
#endif
#endif

View File

@ -18,8 +18,3 @@
#define NAME vector_writable
#include "vector_src.cxx"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma implementation
#endif

View File

@ -34,9 +34,4 @@ class Writable;
#include "vector_src.h"
// Tell GCC that we'll take care of the instantiation explicitly here.
#ifdef __GNUC__
#pragma interface
#endif
#endif