Try the following
void f(std::array<int, 3> pt = {0, 1, 2});
Or I would write simply
void f(std::array<int, 3> = {0, 1, 2});
In GCC this code is not compiled. It seems it is a bug of the compiler. However you can write for GCC either as
void f( std::array<int, 3> = std::array<int, 3>( { 1, 2, 3 } ) );
or
void f( std::array<int, 3> = { { 1, 2, 3 } } );