<a href="http://web.archive.org/web/20041204153706/http://as.cmpnet.com/event.ng/Type=click&amp;FlightID=31348&amp;AdID=49271&amp;TargetID=1261&amp;Segments=1411,1511,2424,3218,3607,3729&amp;Targets=1261,2779&amp;Values=31,43,51,60,72,86,90,101,140,203,442,646,918,944,945,981,1184,1405,1426,1431,1736,1767,1785,1935,1936,1970,2217,2310,2352&amp;RawValues=&amp;Redirect=http://www.rockstargames.com/grandtheftauto/gba" target="_top"><img src="http://web.archive.org/web/20041204153706im_/http://i.cmpnet.com/ads/graphics/as5/ps/gta_gba_468x60.gif" width="468" height="60" border="0"></a>  
   
Member Login
LOG IN
Forgot your password?
Registration FAQ

254 Users Online Today

  Archives
 
 
  Special
 
 
 
 
  About Us
 
 
 

Newsletter
Free E-mail Newsletter from BYTE.com




 
    
           
How to Read BYTE.com
Welcome to BYTE.com, online home of the world's premier computer magazine. Since 1975 we've covered emerging hardware and software systems with unmatched breadth and depth. Sign up today!
—more info—


BYTE.com > Flexible C++

Flexible C++
Matthew Wilson

My approach to software engineering is far more pragmatic than it is theoretical, and I've no doubt that this column will reflect that. (That's double-speak for "I don't know what I'm talking about half the time"!) It's my belief that all languages are imperfect, and that C++ is no exception.

Where C++ has the advantage over other languages is in its support for close-to-the bone efficiency and at the same time supporting the expression of high-level concepts. It also has its own built-in self-repair mechanism in its powerful (though still imperfect) templates mechanism.

So as well as providing you with some useful efficient code, the intent in this column is to share with you the various pros and cons of the solutions presented in the hope that you may find some of it illuminating. (There's not much point in having a column if you can't achieve that every now and then, one would think!)

Open-RJ and Ch
Matthew takes a look at the Open-RJ library, along with its mapping to Ch and C++.NET.

Flexible C++ #8: Union Casts Considered Harmful, but Necessary
Unions in C and C++ are aggregate quantities like structs, except that each element of the union has offset 0, and the total size of the union is only as large as is required to hold its largest member [1]. Only one member of a union may be "active" at a time.

Flexible C++ #7: Handling Parameter Sets in Member Initializer Lists: With A Little Help From MUMI!
In the recls mapping, the invariants are only forced by assertions. Now, with a little help from MUMI, you can have your flexibility without sacrificing the robustness you get from using MILs.

Flexible C++ #6: Flexible Implementations Without Using Directives
It is widely accepted that using directives are an unacceptable part of the public interface of library code. This is because a using directive indiscriminately makes visible all symbols within the referenced namespace from the point of directive declaration, raising the potential for symbol clash (which is what namespaces were created to circumvent).

Flexible C++ #5: Friendly Templates
Matthew looks at the subject of friendly templates from the perspective of granting friendship from a template to one of the template's parameterizing types.

Flexible C++ #4: Efficient Integer To String Conversions
This is the final installment in the integer-to-string series. The previous two installments and the original article described different approaches to the efficient conversion of integers into strings. This time arround, I continue with the "Flexible C++" philosophy, and consider one last variation.

Flexible C++ #3: Efficient Integer to String Conversions
Matthew looks at more integer to string conversion options, including his candidate for the “optimum solution.”

Flexible C++ #2: Efficient Integer to String Conversions, part 3
In this inaugural installment of a new Experts series, Matthew Wilson presents a fast and useful technique for converting integers to strings.

Flexible C++ #1: Efficient Integer to String Conversions
The fastest to_string in town.




BYTE.com > Flexible C++
64-Bit Spotlight
AMD Unveils Its Fastest Desktop Chip
Advanced Micro Devices Inc. introduced its fastest desktop processor, heating up competition with rival chip maker Intel Corp. for the hearts of PC enthusiasts and hard-core gamers.

CMP DevNet Spotlight
Secure Start: Less is More
Software Development Magazine
The stingier you are with access, the safer your system becomes.

Flexible C++
Matthew Wilson
My approach to software engineering is far more pragmatic than it is theoretical--and no language better exemplifies this than C++.

more...

BYTE Digest

BYTE Digest editors every month analyze and evaluate the best articles from Information Week, EE Times, Dr. Dobb's Journal, Network Computing, Sys Admin, and dozens of other CMP publications—bringing you critical news and information about wireless communication, computer security, software development, embedded systems, and more!

Find out more

BYTE.com Store

BYTE CD-ROM
NOW, on one CD-ROM, you can instantly access more than 8 years of BYTE.
 

101 Perl Articles
This unique collection of 101 Perl Articles written by the world's leading experts on Perl programming has something for every Perl programmer.

Copyright © 2004 CMP Media LLC, Privacy Policy, Terms of Service
Site comments: webmaster@byte.com
SDMG Web Sites: BYTE.com, C/C++ Users Journal, Dr. Dobb's Journal, MSDN Magazine, New Architect, SD Expo, SD Magazine, Sys Admin, The Perl Journal, UnixReview.com, Windows Developer Network



MarketPlace
Illegal copying is software piracy and it's against the law. Report Software Piracy Today.
ThreatSentry Intrusion Prevention Software surpasses the capabilities of rules-based systems to defend IIS against new and progressive attack techniques, protect network weak points and block system misuse. $99 per server. Free 30-day trial.
CodeCharge Studio is the most productive solution for visually creating database-driven Web applications without coding in ASP.NET , ASP, PHP, Java & ColdFusion. Rapidly convert any database into a Web application with login-protected user access.
Easily create an automated, repeatable process for building and deploying software.
UCalc FMP allows your program to evaluate expressions defined at runtime. A fully functional copy (and with no expiration date) can be downloaded for you to try. A beta for the next version can also be downloaded. Platform: Windows.
Wanna see your ad here?
 

HotelsLas Vegas Hotelsoffice equipmentnew york hotelsparis hotelschicago hotelsUnbiased Price ComparisonsFashion ShoppingA+, MCSE, MCSA, MCAD Certification Traininghacking information network security training computer forensicslaser eye surgery lasik chicago IllinoisDiscussion Corner: :Price ComparisonLastminute Max: LastminuteBoard123GroupTop DUI-DWI Attorneys-USAOffice Supplies Airline TicketsDigital PhotographySoftware DownloadBusiness Intelligence



web2