You can simply use T{}which is built by default T. eg.
T sum = std::accumulate(vector.begin(), vector.end(), T{});
If you need it to be initialized with some initial value, you can
T sum = std::accumulate(vector.begin(), vector.end(), T{some_initial_value});
or
T sum = std::accumulate(vector.begin(), vector.end(), static_cast<T>(some_initial_value));