Use std::declval<A>() instead of A{} to workaround gcc-12 + CWG 903 (#1777)
Use std::declval<A>() instead of A{} to workaround gcc-12 + CWG 903 (#1777)

Summary:
- it is workaround CWG 903 in gcc-12, which is considering `int{}`  as null pointer constant, and so can't choose between `safe_assert_msg_types_one(uint64_t)` and `safe_assert_msg_types_one(char const *)`
- see https://godbolt.org/z/fov5xPjEe

closes https://github.com/facebook/folly/issues/1772

Pull Request resolved: https://github.com/facebook/folly/pull/1777

Reviewed By: Orvid

Differential Revision: D36458136

Pulled By: yfeldblum

fbshipit-source-id: ed93afdc5953e50c5a8fe73a75f4038849e56b45

facebook/folly,facebook/folly,facebook/folly,facebook/folly,facebook/folly