Mojo C++ bindings: more readable error message for missing *Traits specialization.

BUG=None

Change-Id: I3cae8cee3d77006c659bb9784a7089478276016e
Reviewed-on: https://chromium-review.googlesource.com/574682
Reviewed-by: Ken Rockot <rockot@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Yuzhu Shen <yzshen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#487638}

CrOS-Libchrome-Original-Commit: 09d5925010193da41d5f4e765ef2b68cd8ceca8c
diff --git a/ipc/ipc_param_traits.h b/ipc/ipc_param_traits.h
index 45e975c..9aaeb5e 100644
--- a/ipc/ipc_param_traits.h
+++ b/ipc/ipc_param_traits.h
@@ -9,8 +9,19 @@
 // a data type is read, written and logged in the IPC system.
 
 namespace IPC {
+namespace internal {
+
+template <typename T>
+struct AlwaysFalse {
+  static const bool value = false;
+};
+
+}  // namespace internal
 
 template <class P> struct ParamTraits {
+  static_assert(internal::AlwaysFalse<P>::value,
+                "Cannot find the IPC::ParamTraits specialization. Did you "
+                "forget to include the corresponding header file?");
 };
 
 template <class P>