Re: problems migrating to 3.2.3 from 2.96

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

 



Hi.

On Mon, Sep 20, 2004 at 03:19:59PM -0700, Ashish Lakhani wrote:
> void ALCload(FILE * infile)
> {
>     istream *iptr;
>     ifstream * ifptr;
>     int fd = fileno(infile);
>     ifptr = new ifstream(fd);
>     iptr = ifptr;
>     ALCload(iptr);
>     return;
> }
> 
> it used to compile fine with gcc version 2.96 but in new gcc 3.2.3 it
> generates following errors

[...]

You can't create an ifstream from a file descriptor or FILE pointer. 
This feature has been removed because the C++ standard does not define it 
since it is inherently system dependent and non-portable.

The only constructor ifstream provides is this

explicit ifstream ( const char * filename, openmode mode = in );


However, there is a GCC extension available you could use. Just have 
a look at the ext/stdio_filebuf.h header.

Here is an example:

http://gcc.gnu.org/ml/gcc-help/2004-02/msg00230.html

--
Claudio

[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux