/******************************************************************************/
/* */
/* FILE: august.cpp */
/* */
/* This is interesting, but will probably not become popular */
/* ========================================================= */
/* */
/* Compiled and tested with Visual C++ 6.0 */
/* */
/* V1.00 31-AUG-2003 P. Tellenbach http://www.heimetli.ch/ */
/* */
/******************************************************************************/
#include <iostream>
#include <string>
using namespace std ;
template< typename T >
ostream &operator<<( ostream &os, const basic_string<T> &str )
{
for( basic_string<T>::const_iterator it = str.begin(); it != str.end(); ++it )
cout << (char) *it ;
return os ;
}
int main()
{
double values[] = { 'H', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd', ' ', '!' } ;
basic_string<double> dblstring( values, values + 13 ) ;
cout << dblstring << endl ;
return 0 ;
}
Update 31. August 2023
The compiler did not recognize basic_string<T>::const_iterator as a type and suggested to put typename in front of it.
Instead of adding typename I replaced the declaration with auto.
It is also possible to replace the loop with a for each loop, but I wanted the code to be as similar to the original as possible.
/******************************************************************************/
/* */
/* FILE: august.cpp */
/* */
/* This is interesting, but will probably not become popular */
/* ========================================================= */
/* */
/* Compiled and tested with Visual C++ 6.0 */
/* */
/* V1.00 31-AUG-2003 P. Tellenbach https://www.heimetli.ch */
/* */
/* Compiled and tested with g++ version 11.2.0 */
/* */
/* V1.10 31-AUG-2023 P. Tellenbach https://www.heimetli.ch */
/* */
/******************************************************************************/
#include <iostream>
#include <string>
using namespace std ;
template< typename T >
ostream &operator<<( ostream &os, const basic_string<T> &str )
{
for( auto it = str.begin(); it != str.end(); ++it )
cout << (char) *it ;
return os ;
}
int main()
{
double values[] = { 'H', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd', ' ', '!' } ;
basic_string<double> dblstring( values, values + 13 ) ;
cout << dblstring << endl ;
return 0 ;
}