Fix ODR violations in cases where templates are involved
diff --git a/compiler/cpp/src/thrift/generate/t_cpp_generator.cc b/compiler/cpp/src/thrift/generate/t_cpp_generator.cc
index 2a65bfb..a085ada 100644
--- a/compiler/cpp/src/thrift/generate/t_cpp_generator.cc
+++ b/compiler/cpp/src/thrift/generate/t_cpp_generator.cc
@@ -1432,7 +1432,10 @@
 
   if (!pointers)
   {
-    generate_default_constructor(out, tstruct, false);
+		// 'force_cpp_out' always goes into the .cpp file, and never into a .tcc
+		// file in case templates are involved. Since the constructor is not templated,
+		// putting it into the (later included) .tcc file would cause ODR violations.
+    generate_default_constructor(force_cpp_out, tstruct, false);
   }
 
   // Create a setter function for each field