unique_ptrについて質問です。
std::unique_ptr<T> uptr(new T);
に対して、uptr.get() と *reinterpret_cast<T**>(&uptr) は常に一致するでしょうか。

用途としては生ポインタの配列を受けとる関数にstd::vector<std::unique_ptr<T>>を渡したいです。
例:
void display_ptr(size_t n, int** pp){
  for(size_t i=0; i<n; ++i){
    std::cout << pp[i] << '\n';
  }
}
int main(){
  std::vector<std::unique_ptr<int>> vec;
  for(size_t i=0; i<3; ++i){
    vec.emplace_back(new int);
  }
  display_ptr(vec.size(), reinterpret_cast<int**>(&vec[0]));
  return 0;
}