delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2001/12/12/11:50:57

X-Authentication-Warning: delorie.com: mailnull set sender to djgpp-bounces using -f
From: "Randy Maddox" <rmaddox AT isicns DOT com>
To: <djgpp AT delorie DOT com>
Cc: "Randy Maddox" <rmaddox AT isicns DOT com>
Subject: Is this a bug?
Date: Wed, 12 Dec 2001 11:47:33 -0500
Message-ID: <000b01c1832c$b2777f20$3502a8c0@nancy>
MIME-Version: 1.0
X-Priority: 3 (Normal)
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2911.0)
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6700
Importance: Normal
X-MS-TNEF-Correlator: 000000009C48F545F726D442AB16EBB632D02A0DC42F2000
Reply-To: djgpp AT delorie DOT com

This is a multi-part message in MIME format.

------=_NextPart_000_000C_01C18302.C9A17720
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

Hello,

I am using the DJGPP 3.02 version for Windows 2000 and seem to be
experiencing a problem that I hope you can help with.  The problem is that
when I declare a function parameter of type
std::basic_string<Char_t>::iterator the compiler does not seem to recognize
that std::string::begin() returns a value of that type and complains that it
cannot find a match for std::__normal_iterator<char*,
std::basic_string<char,  std::char_traits<char>, std::allocator<char> > >,
which is in fact what std::basic_string<Char_t>::iterator is a typedef for.
If I modify my parameter declaration to use the long
std::__normal_iterator<> declaration directly, then it works just fine.

Is this a bug?  The following code demonstrates the problem:

// test driver for iterator problem

#include <string>
#include <iostream>

template <typename Char_t>
std::basic_string<Char_t>::iterator
ShowChars(std::basic_string<Char_t>::iterator startPos,
          std::basic_string<Char_t>::iterator endPos)
{
  for( ; !(startPos == endPos); ++startPos)
  {
    std::cout << *startPos;
  }

  std::cout << std::endl;
}

int main()
{
  std::cout << "Start of test program" << std::endl << std::endl;

  std::string    str("Hello, World!");

  ShowChars(str.begin(), str.end());

  std::cout << std::endl << "End of test program" << std::endl;

  return 0;
}

// end of this file

Compiling this file with the -v option generates the following output:

>gxx -v -o test4.exe test4.cpp
Reading specs from C:/djgpp/bin/../lib/gcc-lib/djgpp/3.02/specs
Configured with: ../configure i586-pc-msdosdjgpp --prefix=/dev/env/DJDIR
--disable-nls
Thread model: single
gcc version 3.0.2
 C:/djgpp/bin/../lib/gcc-lib/djgpp/3.02/cc1plus.exe -v -iprefix
C:\djgpp\bin/../lib/gcc-lib/djg
pp/3.02/ -D__GNUC__=3 -D__GNUC_MINOR__=0 -D__GNUC_PATCHLEVEL__=2 -D__MSDOS__
-D__GO32__ -D__uni
x__ -D__MSDOS__ -D__GO32__ -D__unix__ -Asystem=msdos -Asystem=unix
-D__NO_INLINE__ -D__STDC_HOS
TED__=1 -remap -imacros C:/djgpp/bin/../lib/gcc-lib/djgpp/3.02/djgpp.ver
-Acpu=i386 -Amachine=i
386 -Di386 -D__i386 -D__i386__ -D__tune_i586__ -D__tune_pentium__ -DMSDOS
-DGO32 -Dunix test4.c
pp -D__GNUG__=3 -D__GXX_DEPRECATED -D__EXCEPTIONS -D__GXX_ABI_VERSION=100
-quiet -dumpbase test
4.cpp -version -o c:/djgpp/tmp\ccZVVDK2.s
GNU CPP version 3.0.2 (cpplib) (80386, BSD syntax)
GNU C++ version 3.0.2 (djgpp)
        compiled by GNU C version 3.0.2.
ignoring nonexistent directory "C:/djgpp/djgpp/include"
ignoring nonexistent directory "c:/djgpp/djgpp/include"
#include "..." search starts here:
#include <...> search starts here:
 C:/djgpp/lang/cxx-v3
 C:/djgpp/lang/cxx-v3/djgpp
 C:/djgpp/lang/cxx-v3/backward
 C:/djgpp/lib/gcc-lib/djgpp/3.02/include
 c:/djgpp/lang/cxx-v3
 c:/djgpp/lang/cxx-v3/djgpp
 c:/djgpp/lang/cxx-v3/backward
 c:/djgpp/lib/gcc-lib/djgpp/3.02/include
 c:/djgpp/include
End of search list.
test4.cpp: In function `int main()':
test4.cpp:25: no matching function for call to
   `ShowChars(std::__normal_iterator<char*, std::basic_string<char,
   std::char_traits<char>, std::allocator<char> > >,
   std::__normal_iterator<char*, std::basic_string<char,
   std::char_traits<char>, std::allocator<char> > >)'

Looking through the header files I can see that bits\basic_string.h provides
the following typedef: 

       typedef __normal_iterator<pointer, basic_string>
iterator;

So it looks to me, IMHO, as if the code should work as is.
 
Randy Maddox
C++ Author, Architect, Developer
703-883-8088 ext. 119 (8 am to 4:30 pm Eastern USA time)
rmaddox AT isicns DOT com


------=_NextPart_000_000C_01C18302.C9A17720
Content-Type: application/ms-tnef;
	name="winmail.dat"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="winmail.dat"

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
AAAYhQAAAAAAAAIB+A8BAAAAEAAAAJxI9UX3JtRCqxbrtjLQKg0CAfoPAQAAABAAAACcSPVF9ybU
QqsW67Yy0CoNAgH7DwEAAACjAAAAAAAAADihuxAF5RAaobsIACsqVsIAAFBTVFBSWC5ETEwAAAAA
AAAAAE5JVEH5v7gBAKoAN9luAAAAQzpcRG9jdW1lbnRzIGFuZCBTZXR0aW5nc1xSYW5keU0uTkFW
SUdBVElPTlxMb2NhbCBTZXR0aW5nc1xBcHBsaWNhdGlvbiBEYXRhXE1pY3Jvc29mdFxPdXRsb29r
XG1haWxib3gucHN0AAADAP4PBQAAAAMADTT9NwAAAgF/AAEAAAAxAAAAMDAwMDAwMDA5QzQ4RjU0
NUY3MjZENDQyQUIxNkVCQjYzMkQwMkEwREM0MkYyMDAwAAAAAAMABhBQC561AwAHECELAAADABAQ
AAAAAAMAERAAAAAAHgAIEAEAAABlAAAASEVMTE8sSUFNVVNJTkdUSEVESkdQUDMwMlZFUlNJT05G
T1JXSU5ET1dTMjAwMEFORFNFRU1UT0JFRVhQRVJJRU5DSU5HQVBST0JMRU1USEFUSUhPUEVZT1VD
QU5IRUxQV0lUSAAAAAA+uA==

------=_NextPart_000_000C_01C18302.C9A17720--

- Raw text -


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