Re: [Boost-users] Library Interface Design

-----Original Message----- From: boost-users-bounces@lists.boost.org [mailto:boost-users-bounces@lists.boost.org] On Behalf Of Roman Neuhauser if (!initialized_) { throw new exception("This object is broken."); }
That's somewhat like OOP in C, and FMPOV a huge step back.
Actually, even in strict C, good programmers tend to do something like: T * make_T(T1 p1, T2 p2); T1 do_op1(T*this__,...) And make T opaque, i.e. C++ in C. Sohail

"Sohail Somani"
-----Original Message----- From: boost-users-bounces@lists.boost.org [mailto:boost-users-bounces@lists.boost.org] On Behalf Of Roman Neuhauser if (!initialized_) { throw new exception("This object is broken."); }
That's somewhat like OOP in C, and FMPOV a huge step back.
Actually, even in strict C, good programmers tend to do something like:
T * make_T(T1 p1, T2 p2); T1 do_op1(T*this__,...)
And make T opaque, i.e. C++ in C.
Yes. Most of the principles of good C++ design translate back to C very well. They just take a lot more work. -- Dave Abrahams Boost Consulting www.boost-consulting.com

David Abrahams wrote:
"Sohail Somani"
writes: -----Original Message----- From: boost-users-bounces@lists.boost.org [mailto:boost-users-bounces@lists.boost.org] On Behalf Of Roman Neuhauser if (!initialized_) { throw new exception("This object is broken."); }
That's somewhat like OOP in C, and FMPOV a huge step back.
Actually, even in strict C, good programmers tend to do something like:
T * make_T(T1 p1, T2 p2); T1 do_op1(T*this__,...)
void destroy_T( T * this_ );
And make T opaque, i.e. C++ in C.
Yes. Most of the principles of good C++ design translate back to C very well. They just take a lot more work.
The above implementation hiding technique actually didn't translate forward to C++ particularly well (resulting in far less work). In the pre-shared_ptr era, I mean. :-) class T; // opaque shared_ptr<T> make_T( T1 p1, T2 p2 ); T1 do_op1( shared_ptr<T> this_, ... ); // no destroy_T needed
participants (3)
-
David Abrahams
-
Peter Dimov
-
Sohail Somani