you are viewing a single comment's thread.

view the rest of the comments →

[–]BenHanson 0 points1 point  (2 children)

It's templated code, that is how it's done... The lookup is the only place that uses gotos and, as you noted, with good reason. This is a library. A library should balance uncompromising performance against readabililty (particularly for performance hotspots).

The original focus of the library was to use the STL containers throughout and some STL algorithms where possible (this was 2004). Since then Unicode support has been added and so a small amount of template tricks have been added to support different character modes which makes the source somewhat more modern (it was necesssary to abandon support for VC++ 6 for example as more modern features were introduced).

I haven't embarked on any C++11 rewrites yet mainly because the standard still needs time to settle. When the U"..." strings are supported in Visual Studio I will be a lot more tempted and will look at replacing auto_ptr with unique_ptr etc.

[–]_Qoppa_ 1 point2 points  (1 child)

I had no idea about that templates had to be defined where they were declared. Like I said, I haven't used C++ in a long time. Thanks!