Historical forum-msg-id-136873-edit, Revision 1

Original date:2022-06-20 09:27:50 Edited by: petelomax Subject: Re: Eu 4.2.0 Beta?

SDPringle said...

Features I like about C++:

  • The ability to set constants in routines rather than only variables.
  • exceptions
  • full classes

Phix has all three, see below for my thoughts re classes.

SDPringle said...
  • operator overloading (need classes for this)

From operator overloading, comes the ability to create huge integers for cryptography.

Not a fan, and not sure what the connection is (in general) with huge integers. Plus whenever I've messed with cryptography it seems to be the other way round, in that I have to explicitly and frequently and_bits(x,#FFFFFFFF) to discard the high bits that plain C does without giving you any choice, change signs, etc.

SDPringle said...
  • delete should be something that not only calls the destructor but takes the passed variable out of scope at the point in the routine it is called.

not the delete() builtin itself, but I've been changing things like IupDestroy() into functions that return NULL(s), eg ih = IupDestroy(ih) as a way to prevent accidental use of ih after it has been destroyed.

SDPringle said...
  • an interpreter that wont mess up when I modify the length of a sequence I am iterating over. I get an index error if I remove an element.
for i = 1 to length(s) do 
end for 

My go-to solution for that is

for i = length(s) to 1 by -1 do 
end for 

Regarding classes/structs, I'm not finding them particularly useful. In fact I've just translated some OOP code, https://rosettacode.org/wiki/Red_black_tree_sort, and found that is littered with code duplication along the lines of (but much bugger chunks):

if (condition) { 
   thing.right = ... 
} else { 
   thing.left = ... 

Whereas using sequences and indices lends itself quite naturally to far less code duplication:

integer d = iff(condition?LEFT:RIGHT) 
thing[d] = ... 

There are of course (a rare few) cases where they shine, I'm just saying they ain't no panacea.

Not Categorized, Please Help


Quick Links

User menu

Not signed in.

Misc Menu