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.
- 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.