background preloader

Misc

Facebook Twitter

The Anatomy of the Assignment Operator. The Anatomy of the Assignment Operator by Richard Gillam Senior Software Engineer, Text & International Taligent, Inc. My team recently hired someone. Normally, this wouldn't be such a big deal, but we've been looking for someone for a year and a half. In this time, we've interviewed at least a dozen candidates and phone-screened at least a couple dozen more. Practically every candidate we've talked to had at least two years of C++ experience, rated himself a 7 or 8 on a scale of 10 in C++ skill, and had one or two lucrative offers on the table. Unfortunately, we would have rated almost all of them somewhere between a 4 and a 6. In my opinion, this goes to show you that working with C++ for a long time doesn't guarantee you really understand the language. Over this time, I've developed a stock interview question that's proven to be a pretty good gauge of C++ knowledge.

The question is as follows: This seems like a simple enough exercise, but it gets at some interesting issues. The Assignment Operator Revisited. The Assignment Operator Revisited by Richard Gillam Advisory Software Engineer, Text & International IBM Center for Java Technology–Silicon Valley If you think you know it all in the C++ world, it must mean you’re not talking to your colleagues very much. If I had any pretensions to knowing it all when I wrote my assignment-operator article ("The Anatomy of the Assignment Operator," C++ Report, Nov/Dec 1997), they didn’t last long afterwards. The assignment-operator article drew a huge response, with a lot of people sending me corrections and disagreements of various kinds.

The issues have been mounting up, so I thought maybe a follow-on article to discuss the issues would be appropriate. The big mistake One I heard about almost instantly from several people (and which I’m really glad I heard about before delivering a talk on this subject at C++ World) was a rather serious mistake. This was wrong, and it was caught in the review process.

Unfortunately, that’s wrong too. The magic three. Design Patterns. In software engineering, a design pattern is a general repeatable solution to a commonly occurring problem in software design. A design pattern isn't a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that can be used in many different situations. Uses of Design Patterns Design patterns can speed up the development process by providing tested, proven development paradigms. Effective software design requires considering issues that may not become visible until later in the implementation. Reusing design patterns helps to prevent subtle issues that can cause major problems and improves code readability for coders and architects familiar with the patterns. Often, people only understand how to apply certain software design techniques to certain problems.

In addition, patterns allow developers to communicate using well-known, well understood names for software interactions. Creational design patterns Criticism. eWEEK. SAN FRANCISCO - When James Gosling led the team that created the Java language and platform, Sun Microsystems was riding high and Java stood as a landscape-changing revolutionary technology, but financial realities eventually brought Sun to its knees and Oracle entered in as a potential savior--saying all the right things, but behind the scenes, as far as Gosling was concerned, doing all the wrong ones.

Gosling created Java, a feat that many would assume would demand some modicum of respect, but instead, from Oracle, Gosling says all he got was the opposite. In an exclusive interview with eWEEK, Gosling came clean about why he left Oracle and what he thinks of the company's stewardship of his creation going forward. In his April blog post announcing his resignation, Gosling would only say, "As to why I left, it's difficult to answer: Just about anything I could say that would be accurate and honest would do more harm than good.

" Darryl K. Adaptive Art Exercise | Mathisonian. VS Shortcuts | Shortcut keys for Visual Studio. Expressive C++: Why Template Errors Suck and What You Can Do About It. Welcome to part 3 of Expressive C++, a series of articles devoted Embedded Domain-Specific Languages (EDSLs)1 and Boost.Proto, a library for implementing them in C++. The title of this article is intentionally provocative to give me the creative license I need to get this righteous rage out of my system, lay some much-deserved blame, and—after my catharsis—offer some constructive suggestions for improving the situation. You might be surprised at where I direct my ire, and also pleased to know that whether you’re a library author or a user, there are things you can do to help to improve the situation. Eventually, we’ll bring the discussion back to EDSLs and apply my recommendations to the simple string formatting routine we developed in the last installment.

By the end of the article, you’ll know how to syntax-check an EDSL by defining its grammar, validate that an expression matches the grammar, and issue a short and meaningful diagnostic if it doesn’t. <yawn>. Remedial Software 101. STL Error Decryptor for C++ Open Source Freeware by Leor Zolman, Supporting: Comeau C++ gcc 2.95.x/3.x/4.x (Dev-C++ compatible) MSVC++ 6/7/8/9 (incl. Dinkum Libraries) Metrowerks CodeWarrior Pro 7/8 Borland C++ / C++Builder Intel C++ 7/8 EDG Front End (Generic) Digital Mars C++ STLFilt-ing is now selectable on both the Comeau and Dinkumware online compiler pages!

Please Note: Active Development on STLFilt has ended. The author sincerely hopes the C++ Standards Committee adopts "Concepts" sooner rather than later, rendering tools such as STLFilt unnecessary... STLFilt simplifies and/or reformats long-winded C++ error and warning messages, with a focus on STL-related diagnostics (and for MSVC 6, it fully eliminates C4786 warnings and their detritus). The result renders many of even the most cryptic diagnostics comprehensible. The active ingredient in each distribution is a Perl script, so you'll need a Perl interpreter installed; ActivePerl works best, and it's free.

The downloads follow, organized by platform: