On 25 November 2012 23:31, Robert Haas <robertmh...@gmail.com> wrote: > The only other programming > language I know of in which you can define what it means to cast > between two data types is C++, and it's not generally considered one > of that languages better features. AFAICT, they have implicit casts > and explicit casts, but nothing intermediate.
Well, you can make your class copy-constructable by providing a constructor (and a copy-assignment operator) whose only argument is, say, an int. In additional to that, you could potentially define a conversion operator, which will make the class implicitly cast back into an int. That is kind of a big distinction, because it doesn't have to go both ways, and in fact it usually doesn't - plenty of working C++ programmers don't know what a conversion operator is, but they could all tell you how to get this behaviour: MyClass foo = 5; // actually calls copy constructor - equivalent to MyClass foo(5); foo = 4; // This calls copy assignment operator -- Peter Geoghegan http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training and Services -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers