演算子の優先順位、Range

オウフ・・・

using namespace pstade::oven;
int v[] = { 1, 2, 3, 4, 5, 6, 7 };
int a = 4;
BOOST_AUTO(it, find(v, a));
return 
	(it == v|end)
	?	*it
	:	-1;

なんか通らない通らない、何がおかしいのやらってよくわかんないけどどうしたもんだって思っていたら!

	(it == (v|end))

・・・ですよねー。
比較演算子の方がビットOR演算子より優先度高いもんね・・・
Rangeは普通の関数呼出と同じじゃないってことのひとつを実感した一件。
Operators in C and C++ - Wikipedia