Reimplement is_constructible fallback implementation. Fixes PR21574.

The previous implementation relied highly on specializations to handle
special cases. This new implementation lets the compiler do the work when possible.

llvm-svn: 276084
Cr-Mirrored-From: sso://chromium.googlesource.com/_direct/external/github.com/llvm/llvm-project
Cr-Mirrored-Commit: b66b6210381232bd611dd8bcba9dbd5b0560a4a6
3 files changed