Logo BKs Home - Ein neuer Versuch. Logo

MSVC 6.0 Sp5 Loki Port

I have not failed. I've just found 10,000 ways that won't work
- Thomas Alva Edison


Here you can find a MSVC 6.0 Sp5 compatible port of Andrei Alexandrescu's excellent Loki Library. Unfortunately I could not retain the originial interface in all places, therefore this port is not fully compatible to the original library. Code using this port cannot generally be used together with the original library.

Nevertheless I hope that some of the vast community of MSVC 6.0 users will find this port useful. If you know of a complete and full interface-compatible VC 6.0 port or if you have any suggestions, bug reports, comments or questions please email me to Hume@c-plusplus.de.

News and Fixes

Mar 18, 2004:

  • In SmartPtr.h: Added operator=-workaround for pointer-assignment
  • In Functor.h: Changed value parameter to reference parameter in FunctorBase and FunctorVoidBase Ctors.

Mar 21, 2003:

  • In MultiMethods.h: Added a new explicit template argument specification (ETAS)-workaround for FnDispatcher::Add which is more compliant with other ETAS-workarounds used in this port.

Mar 20, 2003:

  • In MultiMethods.h: Fixed bugs in FnDispatcher and FunctorDispatcher. Fixing FnDispatcher led to an Interface change (see Readme.txt section "Interface changes") and MultiMethods Example 3.

Mar 10, 2003:

Mar 08, 2003:

  • In HierarchyGenerators.h: implemented transparent workaround for 'explicit template argument specification for nonmeber functions'-bug. The Field-Functions can now be called as in the original lib.

Mar 06, 2003:

  • In SmartPointer.h: Added helper-macros for convenient specialization of std::less for Smart-Pointers.
  • I found a way to use void as a default value for template parameters. Therefore I changed MultiMethods.h and Visitor.h accordingly.

Feb 2003:

  • created new versions of Functor.h, Visitor.h and MultiMethods.h that now can handle void return types transparently.
  • ported SmartPtr's Ownership-Policy RefCountedMT
  • added isFunctionPointer to TypeTraits.
  • replaced all pointer-type dummy-parameters needed as a workaround for VC's 'explicit template argument specification'-bug with Typ2Type-dummy parameters.
  • fixed the problems with BindFirst (Functor.h) that led to C1001-Internal compiler errors.
  • fixed numerous other bugs.

Jan 31, 2003:

  • Fixed bugs in TypeTraits' scalar, array, const and volatile detection. const and volatile detection is now based on techniques from boost's type traits
  • Added Enum- and pointer-to-member-function-detection code to TypeTraits. Thanks to M. Yamada for hints and ideas.

Jan 12, 2003:

  • changed the signature of SmallObject's op new. Now it matches the corresponding op delete. Thanks to M.Yamada for the hint and the solution.

Jan 06, 2003:

Dec 08, 2002:

  • Sergey Khachatrian reported a bug in GenScatterHierarchy when used with a typelist containing equal types (e.g. Tuple<TYPELIST_2(int, int)>) Fixing the bug I found another MSVC6-Problem in the Field-function. The workaround for this problems results in an interface change. GenScatterHierarchy will also create a lot more classes than Alexandrescu's original implementation. Unfortunately I can't think of a better workaround.
    Please refer to the file Readme.txt (section "Interface changes") for further information.

Dec 03, 2002:

  • Fixed some bugs in MSVC6Helpers.h and Threads.h. Thanks to Adi Shavit for pointing the bugs out.
  • Changed the template ctors in SmartPtr.h. Thanks to Nelson Elói for this solution.

See Readme.txt for further information.

Download - Version 0.5e

Follow this link to download the complete MSVC 6.0 port.

Or download Loki via Anonymous CVS Access.

The original Loki library can be found here: http://moderncppdesign.com.

Rani Sharoni has ported Loki to VC 7.0.

Visit project loki-lib on sourceforge.net

And finally, take a look at the new example section

Using this port

To use this port, simply extract the files from the archive, give your compiler access to their path, and include them appropriately in your code via #include. Please refer to the ReadMe.txt for further information.

Here you can find some examples.

    Zuletzt aktualisiert am: 13.01.2007 zurück zur Startseite    
    © Benjamin Kaufmann - Fragen, Kritik und Anregungen bitte direkt an mich oder ins Gästebuch