Development C++ Tutorial

/* The following code example is taken from the book
 * "The C++ Standard Library - A Tutorial and Reference"
 * by Nicolai M. Josuttis, Addison-Wesley, 1999
 *
 * (C) Copyright Nicolai M. Josuttis 1999.
 * Permission to copy, use, modify, sell and distribute this software
 * is granted provided this copyright notice appears in all copies.
 * This software is provided "as is" without express or implied
 * warranty, and with no claim as to its suitability for any purpose.
 */
#include 
#include 
#include 
#include 
#include 
template 
inline
std::basic_istream&
ignoreLine (std::basic_istream& strm)
{
    // skip until end-of-line
    strm.ignore(std::numeric_limits::max(),strm.widen('\n'));
    // return stream for concatenation
    return strm;
}
int main()
{
    int i;
    std::cout << "read int and ignore rest of the line" << std::endl;
    std::cin >> i;
    // ignore the rest of the line
    std::cin >> ignoreLine;
    std::cout << "int: " << i << std::endl;
    std::cout << "read int and ignore two lines" << std::endl;
    std::cin >> i;
    // ignore two lines
    std::cin >> ignoreLine >> ignoreLine;
    std::cout << "int: " << i << std::endl;
}
read int and ignore rest of the line
123 qwe
int: 123
read int and ignore two lines
123wer
asdf
int: 123