せっかくだからconst char*をRangeに
この前書いた記事はconcept_map Range
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とやりたかったのだけれども、どうもエラーが出るなあ…。