Giter Site home page Giter Site logo

hpp-util's Introduction

hpp-util

Building Status Pipeline status Coverage report Code style: black pre-commit.ci status

This package gathers technical tools for the HPP project. Features include:

  • debugging
  • benchmarks

Setup

To compile this package, it is recommended to create a separate build directory:

mkdir _build
cd _build
cmake [OPTIONS] ..
make install

Please note that CMake produces a CMakeCache.txt file which should be deleted to reconfigure a package from scratch.

Dependencies

The package depends on several packages which have to be available on your machine.

  • System tools:
    • CMake (>=2.6)
    • pkg-config
    • usual compilation tools (GCC/G++, make, etc.)
  • libtinyxml-dev

hpp-util's People

Contributors

dianebury avatar florent-lamiraux avatar jcarpent avatar jmirabel avatar nim65s avatar pre-commit-ci[bot] avatar thomas-moulard avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

hpp-util's Issues

C++11 & `HPP_POSTCONDITION` with `BOOST_SCOPE_EXIT`

Hi,

If we try to compile this project in c++11, the tests do not pass, because at
https://github.com/humanoid-path-planner/hpp-util/blob/master/include/hpp/util/assertion.hh#L71 if an exception is raised, it can't be catched there:
https://github.com/humanoid-path-planner/hpp-util/blob/master/tests/assertion.cc#L101

Boost's doc on BOOST_SCOPE_EXIT provides the following warning since at least 1.50 (released in 2012):

Warning: The implementation executes the scope exit body within a destructor thus the scope exit body must never throw in order to comply with STL exception safety requirements.

I don't think that this HPP_POSTCONDITION is used anywhere, so I think that we should remove it, otherwise we would have to add CMAKE_CXX_STANDARD=98 to the CMakeLists (and to the packages that use this HPP_POSTCONDITION), to allow compilation of this package on compilers which have c++11 as the default standard, which is the case for the those provided with ubuntu 18.04.

License BSD 2

In agreement with the main authors, we intend to change the license of this package from LGPL-v3 to BSD 2 clauses. A pull request will follow soon to this effect.

C++11 & HPP_ASSERT

Hi,

There is an issue using HPP_ASSERT on boost::shared_ptr with C++11, raising en error during the compilation of hpp-manipulation because of a failed conversion to bool.

Line causing the error in hpp-manipulation:
https://github.com/humanoid-path-planner/hpp-manipulation/blob/6e38ce3a838ff365ec0941be881ec4760e407ef6/src/manipulation-planner.cc#L163

Because of the definition of macro HPP_ASSERT here:

bool _x = (CONDITION); \

Indeed, in C++11, as stated here, the bool operator is implicit, so the cast fails. Adding an explicit cast would solve the issue.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.