From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7854 invoked by alias); 6 Jul 2008 03:26:04 -0000 Received: (qmail 6981 invoked by uid 48); 6 Jul 2008 03:25:20 -0000 Date: Sun, 06 Jul 2008 03:26:00 -0000 Message-ID: <20080706032520.6980.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug preprocessor/36453] PR36320 breaks boost In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "tromey at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2008-07/txt/msg00732.txt.bz2 ------- Comment #3 from tromey at gcc dot gnu dot org 2008-07-06 03:25 ------- Sorry, I somehow missed the followup comment. >> #elif defined(BOOST_PP_ITERATION_DEPTH) && BOOST_PP_ITERATION_DEPTH() == 1 The expression has to be valid after preprocessing. So, if BOOST_PP_ITERATION_DEPTH is not defined, this will yield an error. >> it is confusing that #elif behaves more like "#if" and not like "#else\n#if" I agree, but by my reading this is what the standard actually says. I am open to arguments contrariwise, or to rulings from gcc developers more expert at standardese than I. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36453