■
http://d.hatena.ne.jp/Nagise/20100321
ここにjavaでセミコロンなしってのがあって、
javaの文法なんてC言語/C++クローンだろ
歴史を同じくする言語なのでC++でも出来るだろJKとおもってやってみました。
まず、helloworld
#include
int main() { if( std::cout << "Hello World!" << std::endl ) {} }
if使う方法はもろパクリです、サーセンw<<演算子が、std::ostreamの参照返すからセミコロンいらず。
#include
#include
#include
//static constは使えないorz
#define NUM_MAX 100
#define PRINT(x) { if( std::cout << (x) ) {} }
int main()
{
BOOST_FOREACH( const int i, pstade::oven::counting(1, NUM_MAX) ) {
PRINT(i)
PRINT(" : ")
if( i % 3 == 0 ) { PRINT("Fizz" ) }
if( i % 5 == 0 ) { PRINT("Buzz" ) }
PRINT("\n")
}
}
ifはPRINTマクロに閉じ込めたので、ちょっとすっきり。
BOOST_FOREACHのrangeを決めるのに最初、
BOOST_FOREACH( int t, std::pair
なんてやったら、pairの中身が、iteratorじゃないから*演算子(参照はがし)が定義されてないとのこと。
なので、どうしようかと思ったら、pstade::oven::countingがboost::counting_iterator rangeを
作ってくれるそうなので、そっちに任せました。
実行結果、
1 :
2 :
3 : Fizz
4 :
5 : Buzz
6 : Fizz
7 :
8 :
9 : Fizz
10 : Buzz
......