forked from Alepha/Alepha
Correct some of the underlying-forwarding parts of stream stacks.
This commit is contained in:
@ -32,19 +32,27 @@ namespace Alepha::Hydrogen::IOStreams ::detail:: StackableStreambuf_m
|
|||||||
protected:
|
protected:
|
||||||
// EEEW. But to sidestep/circumvent, all this below is necessary.
|
// EEEW. But to sidestep/circumvent, all this below is necessary.
|
||||||
auto
|
auto
|
||||||
forwardOverflow( const int ch ) const
|
forwardOverflow( const int ch )
|
||||||
{
|
{
|
||||||
int (std::streambuf::*ov)( int )= &StackableStreambufUnderlyingShim::overflow;
|
int (std::streambuf::*ov)( int )= &StackableStreambufUnderlyingShim::overflow;
|
||||||
return ( getUnderlying()->*ov )( ch );
|
return ( getUnderlying()->*ov )( ch );
|
||||||
}
|
}
|
||||||
|
|
||||||
auto
|
auto
|
||||||
forwardUnderflow() const
|
forwardUnderflow()
|
||||||
{
|
{
|
||||||
int (std::streambuf::*uf)()= &StackableStreambufUnderlyingShim::underflow;
|
int (std::streambuf::*uf)()= &StackableStreambufUnderlyingShim::underflow;
|
||||||
return (getUnderlying()->*uf)();
|
return (getUnderlying()->*uf)();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
auto
|
||||||
|
underlying_sbumpc() const
|
||||||
|
{
|
||||||
|
int (std::streambuf::*sbc)()= &StackableStreambufUnderlyingShim::sbumpc;
|
||||||
|
return (getUnderlying()->*sbc)();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
auto
|
auto
|
||||||
underlying_eback() const
|
underlying_eback() const
|
||||||
{
|
{
|
||||||
@ -72,6 +80,28 @@ namespace Alepha::Hydrogen::IOStreams ::detail:: StackableStreambuf_m
|
|||||||
void (std::streambuf::*sg)( char *, char *, char * )= &StackableStreambufUnderlyingShim::setg;
|
void (std::streambuf::*sg)( char *, char *, char * )= &StackableStreambufUnderlyingShim::setg;
|
||||||
return (getUnderlying()->*sg)( b, g, e );
|
return (getUnderlying()->*sg)( b, g, e );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
auto
|
||||||
|
underlying_pbase() const
|
||||||
|
{
|
||||||
|
char *(std::streambuf::*pb)() const= &StackableStreambufUnderlyingShim::pbase;
|
||||||
|
return (getUnderlying()->*pb)();
|
||||||
|
}
|
||||||
|
|
||||||
|
auto
|
||||||
|
underlying_pptr() const
|
||||||
|
{
|
||||||
|
char *(std::streambuf::*pp)() const= &StackableStreambufUnderlyingShim::pptr;
|
||||||
|
return (getUnderlying()->*pp)();
|
||||||
|
}
|
||||||
|
|
||||||
|
auto
|
||||||
|
underlying_epptr() const
|
||||||
|
{
|
||||||
|
char *(std::streambuf::*ep)() const= &StackableStreambufUnderlyingShim::epptr;
|
||||||
|
return (getUnderlying()->*ep)();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
struct exports::StackableStreambuf
|
struct exports::StackableStreambuf
|
||||||
|
|||||||
Reference in New Issue
Block a user