#include <cstddef>
#include <iostream>
#include <string>
template < typename T >
void myprint( T const *, std::size_t );
int main() {
using namespace std;
cout << "int array:" << endl;
int ia[] = { 1, 2, 3 };
myprint( ia, 3 );
cout << "double array:" << endl;
double da[] = { 1.1, 2.2, 3.3, 4.4 };
myprint( da, 4 );
}
// implementation
template < typename T >
void myprint( T const *elems, std::size_t size ) {
for( std::size_t i = 0; i < size; ++i )
std::cout << elems[ i ] << std::endl;
}
template void myprint<int>( int const *, std::size_t );
template void myprint<double>( double const *, std::size_t );
I2luY2x1ZGUgPGNzdGRkZWY+CgojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlIDxzdHJpbmc+Cgp0ZW1wbGF0ZSA8IHR5cGVuYW1lIFQgPgp2b2lkIG15cHJpbnQoIFQgY29uc3QgKiwgc3RkOjpzaXplX3QgICk7CgppbnQgbWFpbigpIHsKICAgIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAgICAKICAgIGNvdXQgPDwgImludCBhcnJheToiIDw8IGVuZGw7CiAgICBpbnQgaWFbXSA9IHsgMSwgMiwgMyB9OwogICAgbXlwcmludCggaWEsIDMgKTsKICAgIAogICAgY291dCA8PCAiZG91YmxlIGFycmF5OiIgPDwgZW5kbDsKICAgIGRvdWJsZSBkYVtdID0geyAxLjEsIDIuMiwgMy4zLCA0LjQgfTsKICAgIG15cHJpbnQoIGRhLCA0ICk7Cn0KCi8vIGltcGxlbWVudGF0aW9uCnRlbXBsYXRlIDwgdHlwZW5hbWUgVCA+CnZvaWQgbXlwcmludCggVCBjb25zdCAqZWxlbXMsIHN0ZDo6c2l6ZV90IHNpemUgKSB7CiAgICBmb3IoIHN0ZDo6c2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpICkKICAgICAgICBzdGQ6OmNvdXQgPDwgZWxlbXNbIGkgXSA8PCBzdGQ6OmVuZGw7Cn0KCgp0ZW1wbGF0ZSB2b2lkIG15cHJpbnQ8aW50PiggaW50IGNvbnN0ICosIHN0ZDo6c2l6ZV90ICk7CnRlbXBsYXRlIHZvaWQgbXlwcmludDxkb3VibGU+KCBkb3VibGUgY29uc3QgKiwgc3RkOjpzaXplX3QgKTsK