Code Monkey home page Code Monkey logo

aarith's People

Contributors

faubrand avatar keszocze avatar kissen avatar loeschmaximilian avatar schustan avatar witterauf avatar

Stargazers

 avatar  avatar

Watchers

 avatar

aarith's Issues

`std::uniform_int_distribution<>` is not defined for `unsigned char`

Several unit tests make use of std::uniform_int_distribution<>, which has the following requirement for its type parameter:

IntType โ€“ The result type generated by the generator. The effect is undefined if this is not one of short, int, long, long long, unsigned short, unsigned int, unsigned long, or unsigned long long.

In aarith's test suite there are several instances where std::uniform_int_distribution<> is indirectly instantiated with std::uint8_t, which is unsigned char on most platforms, and hence not supported as a parameter type for std::uniform_int_distribution<>:

  • /tests/core/word_array-generation-test.cpp
  • /tests/integer/uint-random-generation-test.cpp
  • tests/test-signature-ranges.hpp (AARITH_INT_TEST_TEMPLATE_PARAM_RANGE and AARITH_WORD_ARRAY_TEST_TEMPLATE_PARAM_RANGE)
  • ...

Although uint16_t, uint32_t, uint64_t are usually identified with one of unsigned short, unsigned int, unsigned long, or unsigned long long, this is not guaranteed by the standard. It would probably be better not to use sized integer types for std::uniform_int_distribution<> and to stick with the explicitly supported types instead.

Repro: try to build aarith on Windows with MSVC or Clang. Microsoft's STL has a static_assert() enforcing above requirement.

Use CI to test build

We want automatic builds and tests for

  • g++/clang/MSVC
  • Linux / Windows

We did have something up and running for this but it seems to be broken.

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.