delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2004/01/07/22:11:57

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
Message-ID: <3FFCD90C.6000905@terra.com.br>
Date: Thu, 08 Jan 2004 01:14:04 -0300
From: =?ISO-8859-1?Q?Marcelo_Rezende_M=F3dolo?= <mrmodolo AT terra DOT com DOT br>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5) Gecko/20031007
MIME-Version: 1.0
To: cygwin AT cygwin DOT com
Subject: auto_ptr gcc version 3.3.1 (cygming special) problem
X-IsSubscribed: yes

Hi,
I am not shure that this is a error , but it is very strange...

//autoPtr.cpp
#include <iostream>
#include <memory>
using namespace std;
 
class B  {
public:
    B(int cid) : cid_(cid) { cout << "B(" << cid_ << ")\n"; }
    ~B() { cout << "~B(" << cid_ << ")\n"; }
private:
    int cid_;          
};
 
class A  {
public:
    A(int cid) : cid_(cid) { cout << "A(" << cid_ << ")\n"; }
    ~A() { cout << "~A(" << cid_ << ")\n"; }  
    B* getB() { return new B(cid_); }
private:
    int cid_;  
};
 
int main(int argc, char *argv[])
{
    A a(1);
    auto_ptr<B> b = static_cast< auto_ptr<B> >(a.getB());
    A a2(2);
    auto_ptr<B> b2 = static_cast< auto_ptr<B> >(a2.getB());
    cin.get();
  return 0;
}

If I compile this file with gcc version 3.2.3 (mingw special 20030504-1) 
no errors ocur (g++ -o autoPtr autoPtr.cpp).
But if I try to compile using gcc version 3.3.1 (cygming special), with 
the same command line (g++ -o autoPtr autoPtr.cpp),
this errors ocur:
autoPtr.cpp: In function `int main(int, char**)':
autoPtr.cpp:26: error: invalid static_cast from type `B*' to type `
   std::auto_ptr<B>'
autoPtr.cpp:29: error: invalid static_cast from type `B*' to type `
   std::auto_ptr<B>'

what is the problem??

thanks,
marcelo



--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

- Raw text -


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