Allow the specification of custom container types in Thrift IDL files

Summary: If you want your map to be a hash_map instead of an stl::map, we now have a directive in Thrift to let you do that.

Instead of:
map<i32,i32>

You can do:
map[cpp:hash_map<int32_t,int32_t>]<i32,i32>

This tells the Thrift compiler to explicitly use whatever type was specified in the brackets when generating C++ code, instead of the implied Thrift type.

Reviewed By: aditya


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664828 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/compiler/cpp/src/parse/t_map.h b/compiler/cpp/src/parse/t_map.h
index ff1c569..fd55932 100644
--- a/compiler/cpp/src/parse/t_map.h
+++ b/compiler/cpp/src/parse/t_map.h
@@ -1,13 +1,15 @@
 #ifndef T_MAP_H
 #define T_MAP_H
 
+#include "t_container.h"
+
 /**
  * A map is a lightweight container type that just wraps another two data
  * types.
  *
  * @author Mark Slee <mcslee@facebook.com>
  */
-class t_map : public t_type {
+class t_map : public t_container {
  public:
   t_map(t_type* key_type, t_type* val_type) :
     key_type_(key_type),