Skip to content

Commit

Permalink
core system
Browse files Browse the repository at this point in the history
force strict ISO C++ (-Wpedantic)
TODO: still a lot of variadic macros are not valid ISO C++
  • Loading branch information
wwmayer committed Sep 17, 2019
1 parent f4bc889 commit b50b215
Show file tree
Hide file tree
Showing 88 changed files with 466 additions and 463 deletions.
4 changes: 2 additions & 2 deletions src/3rdParty/salomesmesh/CMakeLists.txt
Expand Up @@ -7,9 +7,9 @@ SET(SMESH_VERSION_PATCH 1)
SET(SMESH_VERSION_TWEAK 0)

if(CMAKE_COMPILER_IS_GNUCXX)
set(CMAKE_CXX_FLAGS " ${CMAKE_CXX_FLAGS} -Wno-sign-compare -Wno-reorder -Wno-switch -Wno-unused-variable -Wno-unused-but-set-variable -Wno-comment -Wno-unused-parameter -Wno-empty-body")
set(CMAKE_CXX_FLAGS " ${CMAKE_CXX_FLAGS} -Wno-sign-compare -Wno-reorder -Wno-switch -Wno-unused-variable -Wno-unused-but-set-variable -Wno-comment -Wno-unused-parameter -Wno-empty-body -Wno-pedantic")
elseif(CMAKE_COMPILER_IS_CLANGXX)
set(CMAKE_CXX_FLAGS " ${CMAKE_CXX_FLAGS} -Wno-sign-compare -Wno-reorder -Wno-switch -Wno-unused-variable -Wno-unused-private-field -Wno-unused-function -Wno-sometimes-uninitialized -Wno-overloaded-virtual -Wno-dynamic-class-memaccess -Wno-comment -Wno-unused-parameter")
set(CMAKE_CXX_FLAGS " ${CMAKE_CXX_FLAGS} -Wno-sign-compare -Wno-reorder -Wno-switch -Wno-unused-variable -Wno-unused-private-field -Wno-unused-function -Wno-sometimes-uninitialized -Wno-overloaded-virtual -Wno-dynamic-class-memaccess -Wno-comment -Wno-unused-parameter -Wno-extra-semi")
endif()

if(CMAKE_COMPILER_IS_CLANGXX)
Expand Down
2 changes: 1 addition & 1 deletion src/App/Application.cpp
Expand Up @@ -149,7 +149,7 @@ using namespace boost::program_options;
# include <new>
#endif

FC_LOG_LEVEL_INIT("App",true,true);
FC_LOG_LEVEL_INIT("App",true,true)

//using Base::GetConsole;
using namespace Base;
Expand Down
2 changes: 1 addition & 1 deletion src/App/AutoTransaction.cpp
Expand Up @@ -27,7 +27,7 @@
#include "Document.h"
#include "AutoTransaction.h"

FC_LOG_LEVEL_INIT("App",true,true);
FC_LOG_LEVEL_INIT("App",true,true)

using namespace App;

Expand Down
4 changes: 2 additions & 2 deletions src/App/ComplexGeoData.cpp
Expand Up @@ -35,10 +35,10 @@

using namespace Data;

TYPESYSTEM_SOURCE_ABSTRACT(Data::Segment , Base::BaseClass);
TYPESYSTEM_SOURCE_ABSTRACT(Data::Segment , Base::BaseClass)


TYPESYSTEM_SOURCE_ABSTRACT(Data::ComplexGeoData , Base::Persistence);
TYPESYSTEM_SOURCE_ABSTRACT(Data::ComplexGeoData , Base::Persistence)


ComplexGeoData::ComplexGeoData(void)
Expand Down
2 changes: 1 addition & 1 deletion src/App/Document.cpp
Expand Up @@ -126,7 +126,7 @@ recompute path. Also, it enables more complicated dependencies beyond trees.
#include "Link.h"
#include "GeoFeature.h"

FC_LOG_LEVEL_INIT("App", true, true, true);
FC_LOG_LEVEL_INIT("App", true, true, true)

using Base::Console;
using Base::streq;
Expand Down
2 changes: 1 addition & 1 deletion src/App/DocumentObserverPython.h
Expand Up @@ -111,7 +111,7 @@ class AppExport DocumentObserverPython
static std::vector<DocumentObserverPython*> _instances;

typedef boost::signals2::connection Connection;

//FIXME: ISO C++11 requires at least one argument for the "..." in a variadic macro
#define FC_PY_DOC_OBSERVER \
FC_PY_ELEMENT(CreatedDocument,_1) \
FC_PY_ELEMENT(DeletedDocument,_1) \
Expand Down
24 changes: 12 additions & 12 deletions src/App/Expression.cpp
Expand Up @@ -663,7 +663,7 @@ bool isAnyEqual(const App::any &v1, const App::any &v2) {
// Expression base-class
//

TYPESYSTEM_SOURCE_ABSTRACT(App::Expression, Base::BaseClass);
TYPESYSTEM_SOURCE_ABSTRACT(App::Expression, Base::BaseClass)

Expression::Expression(const DocumentObject *_owner)
: owner(const_cast<App::DocumentObject*>(_owner))
Expand Down Expand Up @@ -917,7 +917,7 @@ Expression *Expression::copy() const {
// UnitExpression class
//

TYPESYSTEM_SOURCE(App::UnitExpression, App::Expression);
TYPESYSTEM_SOURCE(App::UnitExpression, App::Expression)

UnitExpression::UnitExpression(const DocumentObject *_owner, const Base::Quantity & _quantity, const std::string &_unitStr)
: Expression(_owner)
Expand Down Expand Up @@ -991,7 +991,7 @@ int UnitExpression::priority() const
// NumberExpression class
//

TYPESYSTEM_SOURCE(App::NumberExpression, App::Expression);
TYPESYSTEM_SOURCE(App::NumberExpression, App::Expression)

NumberExpression::NumberExpression(const DocumentObject *_owner, const Quantity &_quantity)
: UnitExpression(_owner, _quantity)
Expand Down Expand Up @@ -1063,7 +1063,7 @@ bool NumberExpression::isInteger(long *l) const {
// OperatorExpression class
//

TYPESYSTEM_SOURCE(App::OperatorExpression, App::Expression);
TYPESYSTEM_SOURCE(App::OperatorExpression, App::Expression)

OperatorExpression::OperatorExpression(const App::DocumentObject *_owner, Expression * _left, Operator _op, Expression * _right)
: UnitExpression(_owner)
Expand Down Expand Up @@ -1388,7 +1388,7 @@ bool OperatorExpression::isRightAssociative() const
// FunctionExpression class. This class handles functions with one or two parameters.
//

TYPESYSTEM_SOURCE(App::FunctionExpression, App::UnitExpression);
TYPESYSTEM_SOURCE(App::FunctionExpression, App::UnitExpression)

FunctionExpression::FunctionExpression(const DocumentObject *_owner, Function _f, std::vector<Expression *> _args)
: UnitExpression(_owner)
Expand Down Expand Up @@ -2030,7 +2030,7 @@ void FunctionExpression::_visit(ExpressionVisitor &v)
// VariableExpression class
//

TYPESYSTEM_SOURCE(App::VariableExpression, App::UnitExpression);
TYPESYSTEM_SOURCE(App::VariableExpression, App::UnitExpression)

VariableExpression::VariableExpression(const DocumentObject *_owner, ObjectIdentifier _var)
: UnitExpression(_owner)
Expand Down Expand Up @@ -2305,7 +2305,7 @@ void VariableExpression::setPath(const ObjectIdentifier &path)
// PyObjectExpression class
//

TYPESYSTEM_SOURCE(App::PyObjectExpression, App::Expression);
TYPESYSTEM_SOURCE(App::PyObjectExpression, App::Expression)

PyObjectExpression::~PyObjectExpression() {
if(pyObj) {
Expand Down Expand Up @@ -2361,7 +2361,7 @@ boost::any PyObjectExpression::getValueAsAny() const {
// StringExpression class
//

TYPESYSTEM_SOURCE(App::StringExpression, App::Expression);
TYPESYSTEM_SOURCE(App::StringExpression, App::Expression)

StringExpression::StringExpression(const DocumentObject *_owner, const std::string &_text)
: Expression(_owner)
Expand Down Expand Up @@ -2406,7 +2406,7 @@ Expression *StringExpression::_copy() const
return new StringExpression(owner, text);
}

TYPESYSTEM_SOURCE(App::ConditionalExpression, App::Expression);
TYPESYSTEM_SOURCE(App::ConditionalExpression, App::Expression)

ConditionalExpression::ConditionalExpression(const DocumentObject *_owner, Expression *_condition, Expression *_trueExpr, Expression *_falseExpr)
: Expression(_owner)
Expand Down Expand Up @@ -2489,7 +2489,7 @@ void ConditionalExpression::_visit(ExpressionVisitor &v)
falseExpr->visit(v);
}

TYPESYSTEM_SOURCE(App::ConstantExpression, App::NumberExpression);
TYPESYSTEM_SOURCE(App::ConstantExpression, App::NumberExpression)

ConstantExpression::ConstantExpression(const DocumentObject *_owner, std::string _name, const Quantity & _quantity)
: NumberExpression(_owner, _quantity)
Expand All @@ -2512,7 +2512,7 @@ int ConstantExpression::priority() const
return 20;
}

TYPESYSTEM_SOURCE_ABSTRACT(App::BooleanExpression, App::NumberExpression);
TYPESYSTEM_SOURCE_ABSTRACT(App::BooleanExpression, App::NumberExpression)

BooleanExpression::BooleanExpression(const DocumentObject *_owner, bool _value)
: NumberExpression(_owner, Quantity(_value ? 1.0 : 0.0))
Expand All @@ -2524,7 +2524,7 @@ Expression *BooleanExpression::_copy() const
return new BooleanExpression(owner, getValue() > 0.5 ? true : false);
}

TYPESYSTEM_SOURCE(App::RangeExpression, App::Expression);
TYPESYSTEM_SOURCE(App::RangeExpression, App::Expression)

RangeExpression::RangeExpression(const DocumentObject *_owner, const std::string &begin, const std::string &end)
: Expression(_owner), begin(begin), end(end)
Expand Down
2 changes: 1 addition & 1 deletion src/App/Extension.cpp
Expand Up @@ -38,7 +38,7 @@
/* We do not use a standard property macro for type initiation. The reason is that we have the first
* PropertyData in the extension chain, there is no parent property data.
*/
EXTENSION_TYPESYSTEM_SOURCE_P(App::Extension);
EXTENSION_TYPESYSTEM_SOURCE_P(App::Extension)
const App::PropertyData * App::Extension::extensionGetPropertyDataPtr(void){return &propertyData;}
const App::PropertyData & App::Extension::extensionGetPropertyData(void) const{return propertyData;}
App::PropertyData App::Extension::propertyData;
Expand Down
6 changes: 3 additions & 3 deletions src/App/Extension.h
Expand Up @@ -72,7 +72,7 @@ void * _class_::create(void){return 0;}

/// define to implement a subclass of Base::BaseClass
#define EXTENSION_TYPESYSTEM_SOURCE(_class_, _parentclass_) \
EXTENSION_TYPESYSTEM_SOURCE_P(_class_);\
EXTENSION_TYPESYSTEM_SOURCE_P(_class_)\
void _class_::init(void){\
initExtensionSubclass(_class_::classTypeId, #_class_ , #_parentclass_, &(_class_::create) ); \
}
Expand Down Expand Up @@ -104,7 +104,7 @@ private: \
static App::PropertyData propertyData

#define EXTENSION_PROPERTY_SOURCE(_class_, _parentclass_) \
EXTENSION_TYPESYSTEM_SOURCE_P(_class_);\
EXTENSION_TYPESYSTEM_SOURCE_P(_class_)\
const App::PropertyData * _class_::extensionGetPropertyDataPtr(void){return &propertyData;} \
const App::PropertyData & _class_::extensionGetPropertyData(void) const{return propertyData;} \
App::PropertyData _class_::propertyData; \
Expand All @@ -114,7 +114,7 @@ void _class_::init(void){\
}

#define EXTENSION_PROPERTY_SOURCE_TEMPLATE(_class_, _parentclass_) \
EXTENSION_TYPESYSTEM_SOURCE_TEMPLATE(_class_);\
EXTENSION_TYPESYSTEM_SOURCE_TEMPLATE(_class_)\
template<> App::PropertyData _class_::propertyData = App::PropertyData(); \
template<> const App::PropertyData * _class_::extensionGetPropertyDataPtr(void){return &propertyData;} \
template<> const App::PropertyData & _class_::extensionGetPropertyData(void) const{return propertyData;} \
Expand Down
4 changes: 2 additions & 2 deletions src/App/ExtensionContainer.h
Expand Up @@ -134,7 +134,7 @@ class AppExport ExtensionContainer : public App::PropertyContainer
template<typename ExtensionT>
ExtensionT* getExtensionByType(bool no_except=false, bool derived=true) const {
return static_cast<ExtensionT*>(getExtension(ExtensionT::getExtensionClassTypeId(),derived,no_except));
};
}

//get all extensions which have the given base class
std::vector<Extension*> getExtensionsDerivedFrom(Base::Type type) const;
Expand All @@ -146,7 +146,7 @@ class AppExport ExtensionContainer : public App::PropertyContainer
typevec.push_back(static_cast<ExtensionT*>(entry.second));
}
return typevec;
};
}

ExtensionIterator extensionBegin() {return _extensions.begin();};
ExtensionIterator extensionEnd() {return _extensions.end();};
Expand Down
3 changes: 1 addition & 2 deletions src/App/GroupExtensionPyImp.cpp
Expand Up @@ -129,8 +129,7 @@ PyObject* GroupExtensionPy::addObjects(PyObject *args) {
std::string error = std::string("type must be list of 'DocumentObject', not ");
error += object->ob_type->tp_name;
throw Base::TypeError(error);
};

}

PyObject* GroupExtensionPy::setObjects(PyObject *args) {

Expand Down
2 changes: 2 additions & 0 deletions src/App/Link.h
Expand Up @@ -39,6 +39,8 @@
#include "FeaturePython.h"
#include "GroupExtension.h"

//FIXME: ISO C++11 requires at least one argument for the "..." in a variadic macro

#define LINK_THROW(_type,_msg) do{\
if(FC_LOG_INSTANCE.isEnabled(FC_LOGLEVEL_LOG))\
FC_ERR(_msg);\
Expand Down
4 changes: 2 additions & 2 deletions src/App/Property.cpp
Expand Up @@ -43,7 +43,7 @@ using namespace App;
// Property
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

TYPESYSTEM_SOURCE_ABSTRACT(App::Property , Base::Persistence);
TYPESYSTEM_SOURCE_ABSTRACT(App::Property , Base::Persistence)

//**************************************************************************
// Construction/Destruction
Expand Down Expand Up @@ -271,4 +271,4 @@ void PropertyListsBase::_setPyObject(PyObject *value) {
// PropertyLists
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

TYPESYSTEM_SOURCE_ABSTRACT(App::PropertyLists , App::Property);
TYPESYSTEM_SOURCE_ABSTRACT(App::PropertyLists , App::Property)
2 changes: 1 addition & 1 deletion src/App/PropertyContainer.cpp
Expand Up @@ -46,7 +46,7 @@ using namespace App;
using namespace Base;
using namespace std;

TYPESYSTEM_SOURCE(App::PropertyContainer,Base::Persistence);
TYPESYSTEM_SOURCE(App::PropertyContainer,Base::Persistence)


//**************************************************************************
Expand Down
6 changes: 3 additions & 3 deletions src/App/PropertyContainer.h
Expand Up @@ -293,7 +293,7 @@ private: \
static App::PropertyData propertyData
///
#define PROPERTY_SOURCE(_class_, _parentclass_) \
TYPESYSTEM_SOURCE_P(_class_);\
TYPESYSTEM_SOURCE_P(_class_)\
const App::PropertyData * _class_::getPropertyDataPtr(void){return &propertyData;} \
const App::PropertyData & _class_::getPropertyData(void) const{return propertyData;} \
App::PropertyData _class_::propertyData; \
Expand All @@ -303,7 +303,7 @@ void _class_::init(void){\
}

#define PROPERTY_SOURCE_ABSTRACT(_class_, _parentclass_) \
TYPESYSTEM_SOURCE_ABSTRACT_P(_class_);\
TYPESYSTEM_SOURCE_ABSTRACT_P(_class_)\
const App::PropertyData * _class_::getPropertyDataPtr(void){return &propertyData;} \
const App::PropertyData & _class_::getPropertyData(void) const{return propertyData;} \
App::PropertyData _class_::propertyData; \
Expand All @@ -321,7 +321,7 @@ template<> void * _class_::create(void){\
}

#define PROPERTY_SOURCE_TEMPLATE(_class_, _parentclass_) \
TYPESYSTEM_SOURCE_TEMPLATE(_class_);\
TYPESYSTEM_SOURCE_TEMPLATE(_class_)\
template<> App::PropertyData _class_::propertyData = App::PropertyData(); \
template<> const App::PropertyData * _class_::getPropertyDataPtr(void){return &propertyData;} \
template<> const App::PropertyData & _class_::getPropertyData(void) const{return propertyData;} \
Expand Down
2 changes: 1 addition & 1 deletion src/App/PropertyContainerPyImp.cpp
Expand Up @@ -41,7 +41,7 @@
#include "PropertyContainerPy.h"
#include "PropertyContainerPy.cpp"

FC_LOG_LEVEL_INIT("Property", true, 2);
FC_LOG_LEVEL_INIT("Property", true, 2)

using namespace App;

Expand Down
4 changes: 2 additions & 2 deletions src/App/PropertyExpressionEngine.cpp
Expand Up @@ -43,7 +43,7 @@ using namespace App;
using namespace Base;
using namespace boost;

TYPESYSTEM_SOURCE_ABSTRACT(App::PropertyExpressionContainer , App::PropertyXLinkContainer);
TYPESYSTEM_SOURCE_ABSTRACT(App::PropertyExpressionContainer , App::PropertyXLinkContainer)

static std::set<PropertyExpressionContainer*> _ExprContainers;

Expand Down Expand Up @@ -73,7 +73,7 @@ void PropertyExpressionContainer::slotRelabelDocument(const App::Document &doc)

///////////////////////////////////////////////////////////////////////////////////////

TYPESYSTEM_SOURCE(App::PropertyExpressionEngine , App::PropertyExpressionContainer);
TYPESYSTEM_SOURCE(App::PropertyExpressionEngine , App::PropertyExpressionContainer)

/**
* @brief Construct a new PropertyExpressionEngine object.
Expand Down
4 changes: 2 additions & 2 deletions src/App/PropertyFile.cpp
Expand Up @@ -53,7 +53,7 @@ using namespace std;
// PropertyFileIncluded
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

TYPESYSTEM_SOURCE(App::PropertyFileIncluded , App::Property);
TYPESYSTEM_SOURCE(App::PropertyFileIncluded , App::Property)


PropertyFileIncluded::PropertyFileIncluded()
Expand Down Expand Up @@ -626,7 +626,7 @@ unsigned int PropertyFileIncluded::getMemSize (void) const
// PropertyFile
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

TYPESYSTEM_SOURCE(App::PropertyFile , App::PropertyString);
TYPESYSTEM_SOURCE(App::PropertyFile , App::PropertyString)

PropertyFile::PropertyFile()
{
Expand Down

0 comments on commit b50b215

Please sign in to comment.