/******************************************************************************/
/* */
/* FILE: august.cpp */
/* */
/* Demonstrates a severe abuse of the preprocessor and a numeric algorithm */
/* ======================================================================= */
/* */
/* Compiled and tested with Visual C++ V6.0 */
/* */
/* V1.00 23-AUG-2001 P. Tellenbach http://www.heimetli.ch/ */
/* */
/******************************************************************************/
#include <iostream>
#include <numeric>
#define _ 'H'
#define X _+'e'
#define __ _,X
#define X_ X+'l'
#define ___ __, X_
#define X__ X_+'l'
#define ____ ___,X__
#define X___ X__+'o'
#define _____ ____,X___
#define X____ X___+' '
#define ______ _____,X____
#define X_____ X____+'W'
#define _______ ______,X_____
#define X______ X_____+'o'
#define ________ _______,X______
#define X_______ X______+'r'
#define _________ ________,X_______
#define X________ X_______+'l'
#define __________ _________,X________
#define X_________ X________+'d'
#define ___________ __________,X_________
#define X__________ X_________+' '
#define ____________ ___________,X__________
#define X____________ X__________+'!'
#define ______________ ____________,X____________
#define X______________ X____________+'\n'
#define ________________ ______________,X______________
int mistery[] = { ________________ } ;
int main()
{
return &std::
adjacent_difference( mistery,
mistery + sizeof(mistery)/sizeof(mistery[0]),
std::ostream_iterator<char>(std::cout) ) == 0 ;
}
Update 31. August 2021
The ostream_iterator is now defined in the iterator-header, and the compiler refused to take the address of the temporary ostream_iterator.
One warning remains: the compiler complains that &oi can never be 0.
/******************************************************************************/
/* */
/* FILE: august.cpp */
/* */
/* Demonstrates a severe abuse of the preprocessor and a numeric algorithm */
/* ======================================================================= */
/* */
/* Compiled and tested with Visual C++ V6.0 */
/* */
/* V1.00 23-AUG-2001 P. Tellenbach http://www.heimetli.ch/ */
/* */
/* Compiled and tested with g++ 8.3.0 */
/* */
/* V2.00 31-AUG-2021 P. Tellenbach https://www.heimetli.ch/ */
/* */
/******************************************************************************/
#include <iostream>
#include <iterator>
#include <numeric>
#define _ 'H'
#define X _+'e'
#define __ _,X
#define X_ X+'l'
#define ___ __, X_
#define X__ X_+'l'
#define ____ ___,X__
#define X___ X__+'o'
#define _____ ____,X___
#define X____ X___+' '
#define ______ _____,X____
#define X_____ X____+'W'
#define _______ ______,X_____
#define X______ X_____+'o'
#define ________ _______,X______
#define X_______ X______+'r'
#define _________ ________,X_______
#define X________ X_______+'l'
#define __________ _________,X________
#define X_________ X________+'d'
#define ___________ __________,X_________
#define X__________ X_________+' '
#define ____________ ___________,X__________
#define X____________ X__________+'!'
#define ______________ ____________,X____________
#define X______________ X____________+'\n'
#define ________________ ______________,X______________
int mistery[] = { ________________ } ;
int main()
{
std::ostream_iterator<char> oi = std:: adjacent_difference(
mistery,
mistery + sizeof(mistery)/sizeof(mistery[0]),
std::ostream_iterator<char>(std::cout) ) ;
return &oi == 0 ;
}