Code Monkey home page Code Monkey logo

arsenalgear-cpp's Introduction

Hi there, I'm Gianluca! ๐Ÿ‘‹

Some information

I'm a PhD student in particle physics at the University of Bologna and associate member of INFN. I am currently working for the ATLAS detector experiment at CERN. My research topics are related to the following fields:

  • Investigation of top-quark properties through the analysis of data sampled by the ATLAS detector.
  • Usage of quantum computing to boost particle physics researches.
  • Development of software tools to monitor the ALTAS RPC detector performance using the DCS data.

During my free time I am also an active open-source developer:

  • ๐Ÿ“ซ To contact me send an email.
  • ๐Ÿ’ฌ For collaborations send a pull request or fork one of my repo.
  • โฌ†๏ธ Found a bug in one of my projects? Open an issue.

If you want to support me you can buy me a coffee!

Buy Me A Coffee


Tools I use


Links to my webpages


My statistics





3D profile statistics graph


Personal projects

Quantum computing


Applications

Machine learning

Utility



Games

Physics

Collections



Other


Contributing projects

Quantum computing

Utility


My latest scientific papers

  1. A method for the study of the quantum interference between singly and doubly resonant top-quark production in proton-proton collisions at the LHC with the ATLAS detector
  2. Software training in HEP

Trophies


If you like a repo, don't forget to leave a star! โญ

arsenalgear-cpp's People

Contributors

allcontributors[bot] avatar justwhit3 avatar spaceim avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

arsenalgear-cpp's Issues

Makefiles are so 2000 :P

I'm interested in checking out osmanip and so I need arsenalgear-cpp due to a dependency.

My daily driver is OpenBSD 7.1... which isn't supported by your Makefile. After hacking up your Makefile to add support for OpenBSD, I was able to compile arsenalgear-cpp with clang and gmake. The tests appear to pass.

$ bin/tests
[doctest] doctest version is "2.4.9"
[doctest] run with "--help" for options
Test================================================================================
[doctest] test cases: 21 | 21 passed | 0 failed | 0 skipped
[doctest] assertions: 59 | 59 passed | 0 failed | 
[doctest] Status: SUCCESS!

While I understand there's a certain appeal to the simplicity of Makefiles, I myself used them for my thesis project some 20 years ago until I discovered scons, they're almost always a bad idea IMHO.

You would do well to consider adopting tools to generate your build files, e.g.:

CMake is basically the de facto standard for C++ projects (unfortunately). I personally prefer meson, but I've never used it on Windows so I'm not sure how it fairs on that OS.

The power of generating the build scripts is that it allows developers to generate the build for their preferred environment / toolchain.

Let me know if you have any interest in meson, I'd be happy to put together a branch using it so you could check it out.

Use of `NULL` and `nullptr` as numeric value

NULL is implementation defined. This means every compiler is free to choose how the macro expands. IMHO, you should try to avoid implementation defined behavior as they don't have the best portability, and may change between compilers or even different versions of the same compiler.

Most compilers since C++11 expand NULL to nullptr which is a nullptr_t type and cannot be assigned to non-pointer types; i.e., use of int max = NULL; is an error.

error: cannot initialize a variable of type 'int' with an rvalue of type 'nullptr_t'
    int max = NULL;
        ^     ~~~~

Check out cppreference article on NULL for information about the changes to NULL.

That said, it looks like you should be using 0 in most of this code b/c you're assigning NULL to integer/floating point types, which is an compile-time error on compilers expanding NULL to nullptr.

Describe the bug
Assigning NULL to non-pointer types.
Assigning nullptr to non-pointer types.

Fix
Without refactoring the code, worked around the problem by changing uses of NULL to 0 and nullptr to 0.

Environment

  • OS: OpenBSD
  • Version: 7.1
  • Clang: OpenBSD clang version 13.0.0

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.