From: dbv Date: Fri, 16 Jan 2015 13:27:06 +0000 (+0300) Subject: 0025183: WOK - add "Standard_Override" specifier to redefined methods X-Git-Url: http://git.dev.opencascade.org/gitweb/?a=commitdiff_plain;h=a03ed7ad2062c7fd143aef1991acdb3d4a7ef147;p=occt-wok.git 0025183: WOK - add "Standard_Override" specifier to redefined methods WOK now adds "Standard_OVERRIDE" specifier to redefined methods --- diff --git a/src/CPPExt/CPPExt.cxx b/src/CPPExt/CPPExt.cxx index 64d6e41..5b46451 100755 --- a/src/CPPExt/CPPExt.cxx +++ b/src/CPPExt/CPPExt.cxx @@ -4,6 +4,8 @@ // 10/1995 // #include +#include +#include #include #include #include @@ -438,29 +440,45 @@ void CPP_BuildMethod(const Handle(MS_MetaSchema)& aMeta, api->AddVariable(VIsCreateMethod,"no"); - if (!im->IsDeferred() || !forDeclaration) { - if (!im->IsStatic() && forDeclaration) { - api->AddVariable(VVirtual,"virtual "); + TCollection_AsciiString aVMetSpec = ""; + Standard_Boolean isDerived = TCollection_AsciiString (api->GetVariable (VInherits).GetValue()).Length(); + + if (!im->IsDeferred() || !forDeclaration) + { + if (!im->IsStatic() && forDeclaration) + { + api->AddVariable(VVirtual,"virtual "); } - if (im->IsConst()) { - api->AddVariable(VMetSpec," const"); + if (im->IsConst()) + { + aVMetSpec += " const"; } - else { - api->AddVariable(VMetSpec,""); + + if (im->IsRedefined() && isDerived) + { + aVMetSpec += " Standard_OVERRIDE"; } } - else if (forDeclaration) { + else if (forDeclaration) + { api->AddVariable(VVirtual,"virtual "); - if (im->IsConst()) { - api->AddVariable(VMetSpec," const = 0"); + if (im->IsConst()) + { + aVMetSpec += " const"; } - else { - api->AddVariable(VMetSpec," = 0"); + + if (im->IsRedefined() && isDerived) + { + aVMetSpec += " Standard_OVERRIDE"; } + + aVMetSpec += " = 0"; } + api->AddVariable(VMetSpec, aVMetSpec.ToCString()); + api->Apply(VMethod,MetTemplate->ToCString()); if (InlineMethod) {