A couple syntax questions

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?

> using char_type = C;

Type alias. Equivalent to typedef C char_type ;
http://www.stroustrup.com/C++11FAQ.html#template-alias


> basic_iostream( const basic_iostream& rhs ) = delete;

http://www.stroustrup.com/C++11FAQ.html#default


> basic_iostream operator = ( basic_iostream&& rhs );
> If I am not mistaken the "&&" is move syntax right?

Yes.

> And what will happen is that all the contents from rhs will be moved into "this"... right?

The object rhs will be moved to the object *this ;
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.
Thanks guys!
Topic archived. No new replies allowed.