{"type":"rich","height":"190","title":"cycle","blog_url":"https://inamori.hateblo.jp/","url":"https://inamori.hateblo.jp/entry/20100920/p1","author_name":"inamori","blog_title":"inamori\u2019s diary","image_url":null,"author_url":"https://blog.hatena.ne.jp/inamori/","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Finamori.hateblo.jp%2Fentry%2F20100920%2Fp1\" title=\"cycle - inamori\u2019s diary\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","published":"2010-09-20 00:00:01","width":"100%","version":"1.0","categories":["C++"],"description":"\u7e70\u308a\u8fd4\u3057\u5024\u3092\u51fa\u3057\u307e\u3059\u3002 template<typename T> class cCycle : public cIterable<T> { shared_ptr<cIterable<T>> gen; vector<T> v; typename vector<T>::const_iterator p; bool first; public: cCycle(shared_ptr<cIterable<T>> g) : gen(g), first(true) { } bool exists_next() { if(first) { if(gen->exists_next()) { v.push_bac\u2026","provider_name":"Hatena Blog","provider_url":"https://hatena.blog"}