#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
template <class T>
class A
{
public:
A(const T* a, size_t count): a_(a, a + count) {}
void f()
{
std::for_each(a_.begin(),
a_.end(),
[](const T& a_t) { std::cout << a_t << "\n"; });
}
private:
std::vector<T> a_;
};
int main()
{
A<char> a("hello", 5);
a.f();
int ints[] = { 1, 2, 3, 4, 5 };
A<int> my_ints(ints, sizeof(ints)/sizeof(ints[0]));
my_ints.f();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8dmVjdG9yPgoKdGVtcGxhdGUgPGNsYXNzIFQ+CmNsYXNzIEEKewpwdWJsaWM6CiAgICBBKGNvbnN0IFQqIGEsIHNpemVfdCBjb3VudCk6IGFfKGEsIGEgKyBjb3VudCkge30KICAgIHZvaWQgZigpCiAgICB7CiAgICAgICAgc3RkOjpmb3JfZWFjaChhXy5iZWdpbigpLAogICAgICAgICAgICAgICAgICAgICAgYV8uZW5kKCksCiAgICAgICAgICAgICAgICAgICAgICBbXShjb25zdCBUJiBhX3QpIHsgc3RkOjpjb3V0IDw8IGFfdCA8PCAiXG4iOyB9KTsKICAgIH0KcHJpdmF0ZToKICAgIHN0ZDo6dmVjdG9yPFQ+IGFfOwp9OwoKaW50IG1haW4oKQp7CiAgICBBPGNoYXI+IGEoImhlbGxvIiwgNSk7CiAgICBhLmYoKTsKCiAgICBpbnQgaW50c1tdID0geyAxLCAyLCAzLCA0LCA1IH07CiAgICBBPGludD4gbXlfaW50cyhpbnRzLCBzaXplb2YoaW50cykvc2l6ZW9mKGludHNbMF0pKTsKICAgIG15X2ludHMuZigpOwogICAgcmV0dXJuIDA7Cn0K