help-gplusplus
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Error in concept_check.h (GNU file)


From: address@hidden
Subject: Re: Error in concept_check.h (GNU file)
Date: 1 Nov 2006 23:36:40 -0800
User-agent: G2/1.0

OK, this is the code, the error is in the line that contains '(...)':

// Concept-checking control -*- C++ -*-

// Copyright (C) 2001 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library.  This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 2, or (at your option)
// any later version.

// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.

// You should have received a copy of the GNU General Public License
along
// with this library; see the file COPYING.  If not, write to the Free
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307,
// USA.

// As a special exception, you may use this file as part of a free
software
// library without restriction.  Specifically, if other files
instantiate
// templates or use macros or inline functions from this file, or you
compile
// this file and link it with other files to produce an executable,
this
// file does not by itself cause the resulting executable to be covered
by
// the GNU General Public License.  This exception does not however
// invalidate any other reasons why the executable file might be
covered by
// the GNU General Public License.

/** @file concept_check.h
 *  This is an internal header file, included by other library headers.
 *  You should not attempt to use it directly.
 */

#ifndef _GLIBCPP_CONCEPT_CHECK
#define _GLIBCPP_CONCEPT_CHECK 1


#pragma GCC system_header

#include <bits/c++config.h>

// All places in libstdc++-v3 where these are used, or /might/ be used,
or
// don't need to be used, or perhaps /should/ be used, are commented
with
// "concept requirements" (and maybe some more text).  So grep like
crazy
// if you're looking for additional places to use these.

// Concept-checking code is off by default unless users turn it on via
// configure options or editing c++config.h.

#ifndef _GLIBCPP_CONCEPT_CHECKS

#define __glibcpp_function_requires(...)      --> The error is here
#define __glibcpp_class_requires(_a,_b)
#define __glibcpp_class_requires2(_a,_b,_c)
#define __glibcpp_class_requires3(_a,_b,_c,_d)
#define __glibcpp_class_requires4(_a,_b,_c,_d,_e)

#else // the checks are on

#include <bits/boost_concept_check.h>

// Note that the obvious and elegant approach of
//
//#define glibcpp_function_requires(C) boost::function_requires<
boost::C >()
//
// won't work due to concept templates with more than one parameter,
e.g.,
// BinaryPredicateConcept.  The preprocessor tries to split things up
on
// the commas in the template argument list.  We can't use an inner
pair of
// parenthesis to hide the commas, because "boost::(Temp<Foo,Bar>)"
isn't
// a valid instantiation pattern.  Thus, we steal a feature from C99.

#define __glibcpp_function_requires(...)
 \
            __gnu_cxx::__function_requires< __gnu_cxx::__VA_ARGS__ >();
#define __glibcpp_class_requires(_a,_C)
 \
            _GLIBCPP_CLASS_REQUIRES(_a, __gnu_cxx, _C);
#define __glibcpp_class_requires2(_a,_b,_C)
 \
            _GLIBCPP_CLASS_REQUIRES2(_a, _b, __gnu_cxx, _C);
#define __glibcpp_class_requires3(_a,_b,_c,_C)
 \
            _GLIBCPP_CLASS_REQUIRES3(_a, _b, _c, __gnu_cxx, _C);
#define __glibcpp_class_requires4(_a,_b,_c,_d,_C)
 \
            _GLIBCPP_CLASS_REQUIRES4(_a, _b, _c, _d, __gnu_cxx, _C);

#endif // enable/disable

#endif // _GLIBCPP_CONCEPT_CHECK



Ulrich Eckhardt wrote:
> red floyd wrote:
> > Ulrich Eckhardt wrote:
> >> address@hidden wrote:
> >>> I'm using Tornado2.2(gcc-2.96)
> >>
> >> http://gcc.gnu.org/gcc-2.96.html
> >>
> >> Uli
> >>
> > Yeah, we know 2.96 doesn't officially exist, and any mention of it is
> > evil. Nevertheless, those of us who are using Tornado 2.2/VxWorks 5.5
> > are stuck with this non-existent version.
>
> Well, problem is that this makes it almost impossible to analyse the error.
> I for sure can't reproduce it here, nor could I find out what code caused
> the problems in the first place. The best anyone without the exact same
> GCC bastard fork can only make educated guesses.
>
> At least I'd need to look at the code.
>
> Uli
>
> -- 
> http://gcc.gnu.org/faq.html
> http://parashift.com/c++-faq-lite/



reply via email to

[Prev in Thread] Current Thread [Next in Thread]