17816021b9
coord/ops: add std::{cos,sin} overloads for coords
2018-03-13 14:39:38 +11:00
3e9e9bff5a
coord/ops: add elementwise apply
2018-03-13 14:39:38 +11:00
16c6a6d627
coord/ops: move `get' query to top for usage later
2018-03-13 14:39:38 +11:00
f4465329c8
tuple: add a map function over a tuple
2018-03-13 14:39:38 +11:00
741012151b
types/traits: add inner_type query for ::value_type
2018-03-12 23:11:26 +11:00
5bc2cf12d4
maths: use true constexpr values for pi
2018-03-12 23:06:15 +11:00
d1c6df8bf1
coord/ops: add simple cosine wrapper
2018-03-12 23:04:17 +11:00
92de21982a
coord/ops: use manual integer casting for floor
2018-03-12 23:04:04 +11:00
d0f075108e
maths: remove gcd in favour of the std implementation
2018-03-11 15:21:36 +11:00
d00d724296
alloc/allocator: take type into account for sizes and ptrs
2018-03-07 17:57:10 +11:00
87fc5df03d
alloc/allocator: add forgotten type parameter for forward call
2018-03-07 17:56:42 +11:00
3867b9e74e
alloc/forwarding: add statically typed forwarding allocator
2018-03-07 16:24:39 +11:00
ba19aebe88
point/vector: give homog a default dimensionality
2018-03-06 18:13:46 +11:00
d29f2ed235
colour: style
2018-03-06 18:13:39 +11:00
01b1c01a07
matrix: use longer names for look_at variables
2018-03-06 13:54:12 +11:00
048abab55e
matrix: instantiate orth for floats
2018-03-06 13:53:57 +11:00
c2a880c290
matrix: fix missed negation on one component of ortho
2018-03-06 13:53:39 +11:00
b23c274742
alloc/foreign: don't use a null base pointer
...
We can't use null for the proxy view passed to the successor allocators
because it triggers undefined behaviour.
2018-03-05 15:58:36 +11:00
923ba6b745
types/traits: add dedicated function argument counting trait
2018-03-03 13:42:10 +11:00
15fad39e8a
alloc/foreign: add warning about non-trivial child allocators
2018-03-02 12:45:52 +11:00
950ac2229f
alloc/foreign: correctly rebase 'offset'
2018-03-02 12:45:27 +11:00
a40b1254c1
build: remove reference to deleted header...
2018-03-02 12:26:12 +11:00
c2265b9ed2
alloc: add aligned::foreign allocator
...
sometimes we need to ensure memory allocation has a particular alignment
in an _offset_ buffer (which we have no control over, eg renderdoc's
OpenGL buffers).
this applies an offset to various operations that make the
aligned::direct allocator correctly align allocations for buffers that
aren't themselves aligned.
2018-03-02 12:21:38 +11:00
825ca4a7e7
tap: add expect_mod test
2018-03-02 12:21:38 +11:00
7e11707c39
view: remove ambiguous operator-
...
this operation is identical to the more appropriately named 'consume'
which should be used in its stead.
2018-03-02 12:21:38 +11:00
89a28322ad
pointer: add align overload for pointer-views
2018-03-02 12:15:43 +11:00
35537b07ca
alloc/aligned: add accessor for alignment
2018-03-01 14:43:37 +11:00
7af076e2de
alloc: prefer std::byte representations for iterators
...
this allows the users to more easily walk the byte ranges (or perform
simply pointer arithmetic), without as much danger of using the values
in an expression inadvertantly.
2018-02-28 17:55:56 +11:00
2941a5a3e1
alloc/raw: add 'data' accessor
2018-02-28 16:19:27 +11:00
0e3fa05f05
build: migrate from ipp files to pure hpp files
...
ipp files weren't a great way of keeping things clean, and IDEs have a
little trouble dealing with the split configuration. this simplifies
debugging a great deal.
2018-02-28 11:49:13 +11:00
3b3f9cd3d3
coord/ops: use the coord type for literal equality comparisons
2018-02-26 13:37:08 +11:00
79d19b4f4f
view: add noexcept to data()
...
This prevents GCC from warning about possible noexcept additions
(-Wnoexcept)
2018-02-26 10:55:10 +11:00
1f270f760f
posix/fd: increment iterators by sizeof(ValueT) not byte count
2018-02-26 10:54:55 +11:00
db4f09628f
view: add make_byte_view convenience method.
2018-02-01 13:49:28 +11:00
8c8a252d9f
build: prefer nodiscard over warn_unused_result
2018-02-01 13:47:42 +11:00
fd03c344b2
fd: remove const from members that modify fd state
2018-02-01 13:47:14 +11:00
35e3f69ad2
maths, view: rationalise equal,almost_equal,==
...
views should not do elementwise comparisons for equality operators.
they are pairs of iterators and are only equal if their iterators are
equal.
instead, use `equal` for elementwise equality. we update the name of
exactly_equal to perform this operation too.
2018-01-31 19:33:42 +11:00
5d32408126
io: allow write
to take rvalue file objects
...
This simplifies using temporaries in a few locations.
2018-01-31 19:31:57 +11:00
9045e16476
io: expose only view style read/write from io module
...
Allow the destination file-like object to implement whatever style
writers and readers they want, but don't expose those directly via the
io module.
2018-01-31 19:30:48 +11:00
6f14c7c65b
view: allow implicit conversion from const*const* to const**
2018-01-30 16:25:48 +11:00
c9cc38eac7
cast: tighten type constraints for narrow cast
2018-01-30 16:25:28 +11:00
18a7790a2a
macro: trivial preprocessor for includes
2018-01-30 12:53:43 +11:00
8682381618
io: add slurp overload for string views
2018-01-30 12:53:43 +11:00
c4e0cd31f9
string: move tokeniser into the header
...
This allows more varied template parameters to be used.
2018-01-30 12:53:43 +11:00
32a4aa23e5
view: add slicing operation, stolen from python
2018-01-30 12:53:43 +11:00
f9a202877a
iterator: add make_infix example
2018-01-26 14:05:21 +11:00
d206b316a9
strongdef: style
2018-01-24 17:31:22 +11:00
6f51b82f65
siphash: add initial implementation
2018-01-23 18:57:04 +11:00
dd9a4a4646
xxhash: update copyright date
2018-01-23 18:57:04 +11:00
bc4a0c3179
xxhash: rewrite for safety and accurate tests
...
there were a few potential buffer overflows, inaccurate test data, and
the 64 bit path wasn't correct.
fixes buffer overflow from clang-analyze
2018-01-23 18:57:04 +11:00