terriko: (Default)
[personal profile] terriko
I got this error message, "crosses initialization of $variable" yesterday and was utterly mystified. Turns out that I hadn't put brackets around the details of my case statement and it was complaining because it wanted a smaller scope for those variables.

I'm amused that I've gone over 15 years as a programmer and the error message still meant nothing to me at first glance (although the error itself makes perfect sense). I guess this is what happens when I rarely use case statements (and, I must admit, I haven't done much c/c++ lately either). Or maybe the error message has changed? After years of teaching undergraduates, I sort of felt like I'd probably seen most of the errors a compiler had to offer, so I was as pleased by the novelty of having no clue what the message meant as much as I was annoyed at myself for not knowing. ;)

Blame C++

Date: October 19th, 2010 07:38 pm (UTC)
From: (Anonymous)
Every other language I know other than C++ doesn't have that problem, either because you can't express it, or they have some well-defined way to solve the problem (like emitting initialization code in all possible code paths, or forcing the cases of a switch statement to be lexical blocks, or not having some or all of: jumps, uninitialized variables, initialized variables, or error messages).

I've sometimes hit a g++ error message and said "that *has* to be new"--only to do some Googling and CVS/SVN/git blaming and discover that the error message was added to GCC more than 10 years ago. Soon the error messages will be older than your students. ;)

Date: October 20th, 2010 11:25 am (UTC)
heliumbreath: (Default)
From: [personal profile] heliumbreath
It's likely that a different compiler would phrase things differently. All the world isn't quite gcc.

Date: October 21st, 2010 02:44 pm (UTC)
unregisteredpseudonymspls: (Default)
From: [personal profile] unregisteredpseudonymspls
I've started programming in Scala because some machine learning tools require it, and case statements are pretty fundamental to the point of the language in the "match...case" construct and have scope implications.

Profile

terriko: (Default)
terriko

June 2025

S M T W T F S
1234567
89 1011121314
15161718 19 20 21
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 4th, 2025 06:41 am
Powered by Dreamwidth Studios