Commit Graph

605 Commits

Author SHA1 Message Date
Eugen Wissner 7af5c30820 move(): Give compiler an opportunity to optimize
Fix #75.
2019-02-01 06:33:41 +01:00
Eugen Wissner c1535e8752 typecons.Variant: Make public. Fix #73 2019-01-31 06:33:19 +01:00
Eugen Wissner 5453f6417f typecons.Option: Deprecate alias this 2019-01-30 06:58:02 +01:00
Eugen Wissner 410b865df9 typecons.Option: Fix assigning nothing 2019-01-29 08:24:58 +01:00
Eugen Wissner 4566cf7857 meta.metafunction: Add Enumerate and EnumerateFrom 2019-01-28 08:30:54 +01:00
Eugen Wissner 0a2798cc96 Call postblit when emplacing a struct. Fix #81 2019-01-27 07:18:53 +01:00
Eugen Wissner a505a033ab net.ip.Address: Address4/Address6 compatibility 2019-01-25 13:07:32 +01:00
Eugen Wissner 1f02ba5042 net.ip: Add Address4 and Address6 wrapper 2019-01-24 07:14:15 +01:00
Eugen Wissner 50aaa170fb Merge remote-tracking branch 'n8sh/retro-slicing' 2019-01-09 18:17:41 +01:00
Nathan Sashihara ff7d20f167 retro supports slicing if source range supports slicing 2019-01-08 20:19:53 -05:00
Eugen Wissner 03e21d4368 Remove deprecated memory.op.cmp and Entropy class 2018-12-21 20:05:23 +01:00
Eugen Wissner c293c6c809 container.array: Fix assigning non-copyable values
Fix #59.
2018-12-18 05:37:52 +01:00
Eugen Wissner e93898d837 Update dmd to 2.083.1 2018-12-17 18:04:36 +01:00
Eugen Wissner 49d7452b33 Make containers work with non-copyable elements
It is the first step. The containers can be at least created with
non-copyable structs without compilation errors now.
Fix #69.
2018-11-24 06:25:55 +01:00
Eugen Wissner 884dc30953 Fix emplacing POD structs 2018-11-23 13:36:31 +01:00
Eugen Wissner e67a05138e range.primitive: Support non copyable elements
... in all ranges.
2018-11-19 21:37:58 +01:00
Eugen Wissner 7585bf59e7 Add test.stub. Fix #51 2018-11-18 06:32:10 +01:00
Eugen Wissner 0a121d9d19 Disable length when taking from a lengthless range
Fix #79.
2018-11-13 08:29:51 +01:00
Eugen Wissner 9e6f5c3105 Add algorithm.mutation.rotate 2018-11-12 07:54:52 +01:00
Eugen Wissner 3f66782368 Add support for DMD 2.083.0 2018-11-11 07:27:25 +01:00
Eugen Wissner 3c8f6e3435 Merge remote-tracking branch 'n8sh/take-slice' 2018-11-07 07:08:52 +01:00
Eugen Wissner ee8b7ef719 Merge remote-tracking branch 'retro-retro' 2018-11-06 16:59:57 +01:00
Nathan Sashihara 6b22cd60df take(take(range,...),n) is take(range, n) and use slicing in `take` like in `takeExactly`
Also take!R is the same as takeExactly!R when isInfinite!R.
2018-11-05 22:49:10 -05:00
Nathan Sashihara c290c85088 retro(retro(range)) is range 2018-11-05 18:43:58 -05:00
Nathan Sashihara 65e2e344df Use inout in tanya.range.array functions
This is to reduce distinct generated functions in final executable.
Also add `scope` and `return` to function parameters.
2018-11-05 16:40:48 -05:00
Eugen Wissner 184d307e40 Add range primitive sameHead 2018-11-04 06:31:38 +01:00
Eugen Wissner 8aec781e2a memory.op.equal: Fix parameter documentation 2018-10-30 12:57:09 +01:00
Eugen Wissner 1e46109e50 algorithm.mutation.destroyAll: New
Fix #71.
2018-10-29 11:14:33 +01:00
Eugen Wissner 64ceb0330c
Merge pull request #74 from n8sh/128-bit-fnv
Add FNV constants for size_t == ucent
2018-10-25 20:05:21 +02:00
Nathan Sashihara b230685595 Add FNV constants for size_t == ucent 2018-10-25 07:07:29 -04:00
Eugen Wissner ff58b5e81c Add algorithm.mutation.initializeAll 2018-10-24 08:14:15 +02:00
Eugen Wissner 373a192b3a Make hasLvalueElements work with non-copyable 2018-10-22 08:39:38 +02:00
Nathan Sashihara 4e8c9bd28f Use new __traits(isZeroInit) to check for a null initializer at compile time instead of runtime 2018-10-21 18:52:02 -04:00
Eugen Wissner 3b5709821a Add algorithm.mutation.uninitializedFill 2018-10-20 10:42:01 +02:00
Eugen Wissner a04a04bb96 conv.emplace: Don't call a destructor
Don't call the destructor on uninitialized elements.
2018-10-14 11:30:02 +02:00
Eugen Wissner d0d682ca65 Update dmd to 2.082.1, Update GDC .gitignore 2018-10-12 19:57:49 +02:00
Eugen Wissner 6d01680685 conv.emplace: Fix emplacing structs w/o this() 2018-10-08 17:51:59 +02:00
Eugen Wissner 4f9927a8c3 Add algorithm.mutation.fill() 2018-10-06 16:00:08 +02:00
Eugen Wissner a8b18d7603 Deprecate Entropy (leaving platform sources alone)
Also introduces unavoidable breaking change in EntropySource interface:
poll() returns Option!ubyte instead of Nullable.
2018-10-05 13:23:57 +02:00
Eugen Wissner 9364112690 net.ip: Parse embedded Ipv4. Fix #64 2018-10-03 20:49:14 +02:00
Eugen Wissner 772e87739c Replace memory.op.cmp with optimized equal version
Deprecate cmp.
Fix #68.
2018-10-02 08:55:29 +02:00
Eugen Wissner 2a90a812db Add algorithm.searching.count 2018-09-30 15:25:10 +02:00
Eugen Wissner e68fcc3a38 Remove code deprecated in 0.11.2 and earlier
- conv.to!String
- meta.metafunction.Tuple
- range.adapter.take
- range.adapter.takeExactly
- range.primitive: put()-ting input range into an output one
2018-09-29 09:00:43 +02:00
Eugen Wissner c5eb2f27be Add algorithm.iteration 2018-09-28 05:40:33 +02:00
Eugen Wissner 349e6dfede Create separate travis job for D-Scanner 2018-09-26 06:30:05 +02:00
Eugen Wissner fd133554f3 net.ip: Implement opCmp. Fix #63 2018-09-24 06:45:44 +02:00
Eugen Wissner 9ac56c50f1 typecons: Add option constructor function 2018-09-23 06:59:41 +02:00
Eugen Wissner 03b45ae441 Add typecons.tuple(), Tuple construction function 2018-09-22 07:32:30 +02:00
Eugen Wissner 31d4f30a49 functional.forward: Fix template visibility bug
Because of the private template forwardOne, forward couldn't be used in
other modules. forwardOne cannot be a local template either since it
accepts an alias as its template parameter.
2018-09-21 06:23:59 +02:00
Eugen Wissner 180c4d3956 typecons.Option: Implement toHash forwarder 2018-09-18 22:27:54 +02:00