meryngii.neta

今日も新たな"ネタ"を求めて。

せっかくだからconst char*をRangeに

この前書いた記事はconcept_map Rangeがあるのかと思ったらconst char[]なだけだったというわけだが、
http://d.hatena.ne.jp/meryngii/20080927/1222494258
せっかくなので書いてみた。

#include <iostream>
#include <cstring>
#include <concepts>

namespace std
{

concept_map Range<const char*>
{
	typedef const char*	iterator;
	
	iterator begin(iterator& str) { return str; }
	iterator end(iterator& str) { return str + std::strlen(str); }
}

}

int main()
{
	const char* str = "test";
	
	for (char ch : str)
		std::cout << ch << std::endl;
}

本当はnamespace stdなんて書かずにstd::Rangeとやりたかったのだけれども、どうもエラーが出るなあ…。