Remove MSVC6 support.

Don't support this compiler any more, this allows to get rid of tons of
MSVC6-specific workarounds, in particular we can now use Bind() and natural
template functions calls in the library code.

Also remove MSVC6 project and solution files and don't generate them when
bakefile_gen is ran any more (removing the remaining occurrences of msvc6prj
from the bakefiles results in weird bake-time errors, so it's simpler to just
leave them there).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76532 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2014-05-15 22:32:17 +00:00
parent 28f9670787
commit f4b80e5337
289 changed files with 394 additions and 38949 deletions

View File

@@ -121,14 +121,11 @@ struct wxPixelFormat
// the type which may hold the entire pixel value
typedef Pixel PixelType;
// NB: using static ints initialized inside the class declaration is not
// portable as it doesn't work with VC++ 6, so we must use enums
// size of one pixel in bits
enum { BitsPerPixel = Bpp };
static const int BitsPerPixel = Bpp;
// size of one pixel in ChannelType units (usually bytes)
enum { SizePixel = Bpp / (8 * sizeof(Channel)) };
static const int SizePixel = Bpp / (8 * sizeof(Channel));
// the channels indices inside the pixel
enum
@@ -271,10 +268,10 @@ protected:
into the CPU registers by the compiler any more.
Implementation note: we use the standard workaround for lack of partial
template specialization support in VC (both 6 and 7): instead of partly
specializing the class Foo<T, U> for some T we introduce FooOut<T> and
FooIn<U> nested in it, make Foo<T, U> equivalent to FooOut<T>::FooIn<U> and
fully specialize FooOut.
template specialization support in VC7: instead of partly specializing the
class Foo<T, U> for some T we introduce FooOut<T> and FooIn<U> nested in
it, make Foo<T, U> equivalent to FooOut<T>::FooIn<U> and fully specialize
FooOut (FIXME-VC7).
Also note that this class doesn't have any default definition because we
can't really do anything without knowing the exact image class. We do
@@ -693,18 +690,8 @@ struct wxPixelDataOut<wxBitmap>
#endif //wxUSE_GUI
// FIXME-VC6: VC6 doesn't like typename in default template parameters while
// it is necessary with standard-conforming compilers, remove this
// #define and just use typename when we drop VC6 support
#if defined(__VISUALC__) && !wxCHECK_VISUALC_VERSION(7)
#define wxTYPENAME_IN_TEMPLATE_DEFAULT_PARAM
#else
#define wxTYPENAME_IN_TEMPLATE_DEFAULT_PARAM typename
#endif
template <class Image,
class PixelFormat = wxTYPENAME_IN_TEMPLATE_DEFAULT_PARAM
wxPixelFormatFor<Image>::Format >
class PixelFormat = typename wxPixelFormatFor<Image>::Format >
class wxPixelData :
public wxPixelDataOut<Image>::template wxPixelDataIn<PixelFormat>
{
@@ -747,7 +734,7 @@ typedef wxPixelData<wxBitmap, wxAlphaPixelFormat> wxAlphaPixelData;
Note that although it would have been much more intuitive to have a real
class here instead of what we have now, this class would need two template
parameters, and this can't be done because we'd need compiler support for
partial template specialization then and neither VC6 nor VC7 provide it.
partial template specialization then and VC7 doesn't provide it.
*/
template < class Image, class PixelFormat = wxPixelFormatFor<Image> >
struct wxPixelIterator : public wxPixelData<Image, PixelFormat>::Iterator