Reading a chapter in Bjarne Stroustrup's book The C++ Programming Language.
Not reading it page by page, rather skipping around and currently looking at the IO Streams chapter. On page 1075 he shows the definition of the basic_iostream class. There are three things that strike me as odd and was hoping that someone might be able to help me out.
==1==
In the header file for the class in the public section there is a statement : using char_type = C;
What is the "using" keyword for? I know what it means in the context of using a namespace, but I have never seen it used in this context.
==2==
In the protected section there is this statement : basic_iostream( const basic_iostream& rhs ) = delete;
What does the "= delete" do in this context?
==3==
Also in the protected there is this statement : basic_iostream operator = ( basic_iostream&& rhs );
If I am not mistaken the "&&" is move syntax right? And what will happen is that all the contents from rhs will be moved into "this"... right?
1. Create a typedef called char_type which is synonm for C.
2. disable copy constructor
3. only derived classes can move the content. The object moved from will be empty, whatever "empty" means.