cxx: Avoid pedantic warning with -Wold-style-cast
authorJean-Philippe Andre <jp.andre@samsung.com>
Wed, 22 Nov 2017 11:50:11 +0000 (20:50 +0900)
committerJean-Philippe Andre <jp.andre@samsung.com>
Tue, 5 Dec 2017 01:14:03 +0000 (10:14 +0900)
This affects the generated headers.

src/lib/eolian_cxx/grammar/base_class_definition.hpp
src/lib/eolian_cxx/grammar/class_definition.hpp

index aa61334..d5fa914 100644 (file)
@@ -64,10 +64,11 @@ struct base_class_definition_generator
        return false;
      if(!as_generator(";\n" << scope_tab << "}\n").generate(sink, attributes::unused, context)) return false;
 
-     if(!as_generator
-        (
-         scope_tab << "Eo* _eo_ptr() const { return *(Eo**)this; }\n"
-        ).generate(sink, attributes::unused, context)) return false;
+     if(!as_generator(
+         scope_tab << "Eo* _eo_ptr() const { return *(reinterpret_cast<Eo **>"
+              << "(const_cast<" << string << " *>(this))); }\n"
+        ).generate(sink, cls.cxx_name, context))
+       return false;
 
      // operator ::ns::Class_Name() const;
      // operator ::ns::Class_Name&();
index 1e21336..30a9daf 100644 (file)
@@ -128,10 +128,11 @@ struct class_definition_generator
        return false;
      if(!as_generator(";\n" << scope_tab << "}\n").generate(sink, attributes::unused, context)) return false;
 
-     if(!as_generator
-        (
-         scope_tab << "Eo* _eo_ptr() const { return *(Eo**)this; }\n"
-        ).generate(sink, attributes::unused, context)) return false;
+     if(!as_generator(
+         scope_tab << "Eo* _eo_ptr() const { return *(reinterpret_cast<Eo **>"
+              << "(const_cast<" << string << " *>(this))); }\n"
+        ).generate(sink, cls.cxx_name, context))
+       return false;
      
      for (auto&& e : cls.events)
        {