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