www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1996/02/02/17:22:50

Xref: news2.mv.net comp.os.msdos.djgpp:738
From: Erik Max Francis <max AT alcyone DOT com>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: v2 vs v1 C++ interpretation
Date: Fri, 02 Feb 1996 12:42:37 -0800
Organization: &tSftDotIotE
Lines: 31
Message-ID: <3112773D.26886015@alcyone.com>
References: <4eads7$4e6 AT trog DOT dra DOT hmg DOT gb>
NNTP-Posting-Host: newton.alcyone.com
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

itmiller AT taz DOT dra DOT hmg DOT gb wrote:

> I am confident that it is valid code as it is just a cut down version
> of one of the functions in the desk calculator in Bjarne Stroustrup's
> "The C++ Programming Language", second edition.

The problem is that the default case label is jumping past the initialization
of a local variable.

In _The Annotated C++ Reference Manual_, Ellis & Stroustrup, p. 86:

    Declarations may appear in the _statement_ of a switch-statement.  It 
    is illegal, however, to jump past a declaration with an explicit or
    implicit initializer unless the declaration is in an inner block 
    that is not entered (that is, completely bypassed by the transfer of 
    control . . .).

This is exactly what you're trying to do here.  (In this case the jump is
irrelevant since your default switch section does not reference d, but it is
still illegal.)

Your choices are either to declare the variable outside of the switch
statement, in its surrounding block, or to make a subblock inside the switch
statement which contains the declaration of the variable.

-- 
Erik Max Francis, &tSftDotIotE. && max AT alcyone DOT darkside DOT com || max AT alcyone DOT com
San Jose, California, U.S.A. && 37 20 07 N 121 53 38 W && the 4th R is respect
H.3`S,3,P,3$S,#$Q,C`Q,3,P,3$S,#$Q,3`Q,3,P,C$Q,#(Q.#`-"C`- && 1love && folasade
Omnia quia sunt, lumina sunt. && GIGO Omega Psi && http://www.alcyone.com/max/
"Out from his breast/his soul went to seek/the doom of the just." -- _Beowulf_

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019