On Monday, 19 November 2018 at 06:46:55 UTC, dangbinghoo wrote:
So, can you experts give a more comprehensive compare with
perl6 and D?
Sure!
1). You can actually read and understand D code.
On Friday, 9 November 2018 at 00:18:28 UTC, H. S. Teoh wrote:
It's not true that you're stuck with dub. And I'm not among
the people who think dub is the way to go (though it's true
that that's a minority opinion around here). Where I have a
choice, my own D projects do not use dub.
Me neit
On Wednesday, 17 October 2018 at 03:37:21 UTC, Ky-Anh Huynh wrote:
Hi,
I need to build some static binaries with LDC. I also need to
execute builds on both platform 32-bit and 64-bit.
From Docker Hub there are two image groups:
* language/ldc (last update 5 months ago)
* dlang2/ldc-ubuntu (
On Friday, 21 September 2018 at 12:15:52 UTC, NX wrote:
How can I properly convert a character, say, first one to upper
case in a unicode correct manner?
In which code level I should be working on? Grapheme? Or maybe
code point is sufficient?
There are few phobos functions like asCapitalized()
Why do some attributes have an @ symbol and others don't?
I thought it might be because some are used as keywords for other
things but then 'pure' doesn't follow that rule. Any ideas? Is it
just a legacy thing?
On Wednesday, 1 August 2018 at 14:58:56 UTC, Ky-Anh Huynh wrote:
This works well with user interaction. However I don't really
like the idea of using temporary files. Is there any better way?
Maybe take a look at:
https://dlang.org/library/std/process/pipe_shell.html
On Friday, 13 July 2018 at 18:37:35 UTC, vino.B wrote:
Hi All,
How do i check whether a range is empty. eg.
(!PFResutl.toRange).empty. I tired the below, but it is no
printing Empty if the range is empty it just prints blank line.
if (!(!PFResutl.toRange).empty) { writeln("Empty"); }
Fro
On Friday, 2 March 2018 at 08:44:53 UTC, Gary Willoughby wrote:
It would be interesting to test whether those methods handle
these scenarios.
Yeah, it doesn't work.
https://dpaste.dzfl.pl/55116efd0c9c
On Thursday, 1 March 2018 at 12:20:08 UTC, Steven Schveighoffer
wrote:
On 3/1/18 7:05 AM, Gary Willoughby wrote:
On Thursday, 1 March 2018 at 10:10:27 UTC, John Burton wrote:
My question is how do I tell if a pointer is "garbage
collected" or not?
You could try `GC.addrOf()` or `GC.query()` i
On Thursday, 1 March 2018 at 10:10:27 UTC, John Burton wrote:
My question is how do I tell if a pointer is "garbage
collected" or not?
You could try `GC.addrOf()` or `GC.query()` in core.memory.
On Wednesday, 6 December 2017 at 16:47:17 UTC, A Guy With a
Question wrote:
abstract class Test(T)
{
private:
T thing;
public:
this(T theThing)
{
thing = theThing;
thisdoesnotexist(); // expect compiler error right here
}
}
...but this compiles just fine.
I
On Wednesday, 27 September 2017 at 14:23:01 UTC, Ky-Anh Huynh
wrote:
Can you please explain and give any link where I can learn more
about these things?
Thanks a lot.
http://nomad.so/2013/07/templates-in-d-explained/
On Wednesday, 19 July 2017 at 07:22:48 UTC, John Burton wrote:
In C++ I could use static or an anonymous namespace for
implementation functions, but there doesn't seem to be anything
similar in D.
Is there any way to achieve what I want in D (Private
implementation functions)
Try the package
On Tuesday, 13 June 2017 at 11:36:45 UTC, Steven Schveighoffer
wrote:
Nope, const works just fine. A clue is in your return type --
it's not inout!
This should work:
public Rational opBinary(string op)(Rational rhs) const
If Rational had any indirections, then inout would be required,
and
On Monday, 12 June 2017 at 20:10:17 UTC, H. S. Teoh wrote:
Therefore, nowadays I always recommend writing parenthesis with
type modifiers, so that the intent it unambiguous, i.e., always
write `inout(Rational)` rather than `inout Rational`, unless
you intend for `inout` to apply to the function
On Monday, 12 June 2017 at 19:36:52 UTC, H. S. Teoh wrote:
On Mon, Jun 12, 2017 at 07:38:44PM +, Gary Willoughby via
Digitalmars-d-learn wrote:
In the following code is there any way to make the `opBinary`
method generic to be able to accept immutable as well as a
standard type? The code
I don't know how H. S. Teoh managed to answer 'before' I posted
but thanks guys! :)
In the following code is there any way to make the `opBinary`
method generic to be able to accept immutable as well as a
standard type? The code currently passes the unit test but I
wonder if I could get rid of the duplication to overload the
operator? I'm failing badly.
import std.stdio;
s
On Friday, 26 May 2017 at 09:59:26 UTC, zakk wrote:
1) Why is D making using of the binary ! operator, which as far
as I understand introduces a template?
The exclamation mark here is not a binary operator, it's used in
D templates to define where compile-time parameters are.
2) Why is a te
On Saturday, 20 May 2017 at 12:25:39 UTC, Stanislav Blinov wrote:
Oof. Dangerous stuff.
:)
Thanks for the heads up but I think I'm covering all cases in my
main code.
On Saturday, 20 May 2017 at 11:15:57 UTC, Moritz Maxeiner wrote:
Because `element = tmp` destroys `element`, which you allocated
filled with zeroes.
The destructor will run for each `element`.
Right, I get it because the destructors running on the struct
that is being replaced. Doh!
In the following code, the `_foo` pointer (of the Foo struct) is
null in the first call to the destructor. Why is this? I think
it's got something to do with the foreach loop but I'm not sure.
Any ideas?
import std.stdio;
import core.stdc.stdlib : malloc, calloc, free;
struct Foo
{
p
On Thursday, 18 May 2017 at 21:09:06 UTC, Igor wrote:
On Thursday, 18 May 2017 at 20:20:47 UTC, Gary Willoughby wrote:
This might be a really silly question but:
I've allocated some memory like this (Foo is a struct):
this._data = cast(Foo*) calloc(n, Foo.sizeof);
How can I then later che
This might be a really silly question but:
I've allocated some memory like this (Foo is a struct):
this._data = cast(Foo*) calloc(n, Foo.sizeof);
How can I then later check that there is a valid Foo at
`this._data` or `this._data + n`?
On Wednesday, 5 April 2017 at 21:58:16 UTC, Inquie wrote:
What I am looking for is something like StringBuilder in C#.
std.array.appender
On Wednesday, 29 March 2017 at 19:19:48 UTC, Enigma wrote:
I have a memory buffer allocated using different methods. It is
simply a pointer and a size.
I would like to be able to manage this buffer by treating it as
a memory pool or heap. I think I can use allocators to do this
but not sure h
On Sunday, 26 March 2017 at 23:25:49 UTC, XavierAP wrote:
I've looked into Phobos to emulate it when defining my own
trait template, and when I see this:
module std.range.primitives;
// ...
template isInputRange(R)
{
enum bool isInputRange = is(typeof(
(inout int = 0)
{
R r
On Wednesday, 7 December 2016 at 16:35:52 UTC, Alex wrote:
mixin template S(T...)
{
void run()
{
foreach(s; T)
{
static assert(__traits(hasMember, s, "run"));
}
}
}
How to formulate the check inside the foreach as a template
constraint with
mixin
What is the simplest way of doing @nogc string concatenation?
On Tuesday, 1 November 2016 at 14:06:08 UTC, Steven Schveighoffer
wrote:
On 10/31/16 3:08 PM, Gary Willoughby wrote:
Can someone please explain why the following assertion fails?
import std.stdio;
import std.conv;
void main(string[] args)
{
auto x = 1;
assert(hashOf(x.to!(string)) ==
On Monday, 31 October 2016 at 22:10:30 UTC, Ali Çehreli wrote:
On 10/31/2016 12:08 PM, Gary Willoughby wrote:
Can someone please explain why the following assertion fails?
import std.stdio;
import std.conv;
void main(string[] args)
{
auto x = 1;
assert(hashOf(x.to!(string)) == hashOf(
On Monday, 31 October 2016 at 19:24:13 UTC, Ali Çehreli wrote:
On 10/31/2016 12:08 PM, Gary Willoughby wrote:
[...]
Because it considers the .ptr property of arrays as well:
https://github.com/dlang/druntime/blob/master/src/core/internal/hash.d#L61
[...]
Ah right.
Is there an alternative
On Monday, 31 October 2016 at 19:08:50 UTC, Gary Willoughby wrote:
Can someone please explain why the following assertion fails?
import std.stdio;
import std.conv;
void main(string[] args)
{
auto x = 1;
assert(hashOf(x.to!(string)) == hashOf(x.to!(string)));
}
Thanks.
DMD64
Can someone please explain why the following assertion fails?
import std.stdio;
import std.conv;
void main(string[] args)
{
auto x = 1;
assert(hashOf(x.to!(string)) == hashOf(x.to!(string)));
}
Thanks.
On Tuesday, 20 September 2016 at 13:23:35 UTC, Jacob Carlborg
wrote:
On 2016-09-19 23:09, Gary Willoughby wrote:
$ rdmd --build-only --force -betterC -de -O -inline -release
-w test.d
$ nm test
Indeed. I just noticed now that there's a difference between
2.070.0 and 2.071.0. I get 4 symbols
On Monday, 20 June 2016 at 06:35:32 UTC, Jacob Carlborg wrote:
On 2016-06-19 21:53, Gary Willoughby wrote:
When compiling, what exactly does the -betterC flag do? The
command help
says "omit generating some runtime information and helper
functions" but
what does this really mean? Is there any
On Thursday, 15 September 2016 at 22:05:55 UTC, Ram_B wrote:
test.d(33): Error: variable f cannot be read at compile time
test.d(33): Error: string expected as second argument of
__traits hasMember instead of __error
test.d(46): Error: template instance test.A.t!(B) error
instantiating
Maybe
On Thursday, 15 September 2016 at 15:07:09 UTC, Ram_B wrote:
How i can get fields of derived classes in runtime? This not
works
What about something like this:
import std.traits;
import std.stdio;
class A {
int a,b;
this(){}
void fields(this T)(){
writeln(Field
On Thursday, 11 August 2016 at 05:12:39 UTC, ag0aep6g wrote:
On 08/11/2016 06:15 AM, Engine Machine wrote:
void foo(@nogc void delegate())
doesn't work.
Put it after the parameter list, like so:
void foo(void delegate() @nogc)
You may also need to add the scope keyword too.
Reference:
htt
On Sunday, 7 August 2016 at 18:37:19 UTC, ag0aep6g wrote:
On 08/07/2016 07:10 PM, ag0aep6g wrote:
https://github.com/dlang/druntime/pull/1624
Has been merged. Is going to be part of 2.072.
Very cool!
MurmurHash3 is a great addition too. Thanks guys.
I need a @nogc version of hashOf(). Here's one i'm currently
using but it's not marked as @nogc.
https://github.com/dlang/druntime/blob/master/src/object.d#L3170
What are the options now?
Is there anything D offers that I could use? I need a function
that takes a variable of any type and retu
On Thursday, 7 July 2016 at 10:48:56 UTC, Lodovico Giaretta wrote:
On Thursday, 7 July 2016 at 10:45:12 UTC, Gary Willoughby wrote:
On Thursday, 7 July 2016 at 08:21:53 UTC, Lodovico Giaretta
wrote:
Are you sure that this works in both big-endian and
little-endian systems?
It shouldn't matter
On Thursday, 7 July 2016 at 08:21:53 UTC, Lodovico Giaretta wrote:
Are you sure that this works in both big-endian and
little-endian systems?
It shouldn't matter. You're just interested in the high and low 4
byte chunks (which are to be interpreted as an int) which will
return in the relevant
On Wednesday, 6 July 2016 at 21:44:37 UTC, BitGuy wrote:
I'm trying to implement a feistel cipher that'll give the same
results regardless of the endianness of the machine it runs on.
To make the cipher I need to split a 64bit value into two 32bit
values, mess with them, and then put them back
On Wednesday, 22 June 2016 at 13:36:54 UTC, Marc Schütz wrote:
On Tuesday, 21 June 2016 at 19:21:01 UTC, Gary Willoughby wrote:
Right ok, thanks! It doesn't seem to help though as the
compiler complains about it being not @nogc.
You probably need to declare the delegate and opApply() itself
a
On Tuesday, 21 June 2016 at 12:53:11 UTC, Adam D. Ruppe wrote:
On Tuesday, 21 June 2016 at 12:48:04 UTC, Gary Willoughby wrote:
I have no idea what that means. Can anyone shed more light on
this, please?
So when you use local variables in a delegate, the compiler
usually makes a copy of them
On Monday, 20 June 2016 at 15:27:32 UTC, Adam D. Ruppe wrote:
On Monday, 20 June 2016 at 15:13:53 UTC, Gary Willoughby wrote:
I think the problem is that the delegate which is required by
opApply is allocated using the GC.
make the delegate in opApply scope
int opApply(scope int delegate(what
On Monday, 20 June 2016 at 15:47:44 UTC, Gary Willoughby wrote:
On Monday, 20 June 2016 at 15:27:32 UTC, Adam D. Ruppe wrote:
On Monday, 20 June 2016 at 15:13:53 UTC, Gary Willoughby wrote:
I think the problem is that the delegate which is required by
opApply is allocated using the GC.
make t
On Monday, 20 June 2016 at 15:27:32 UTC, Adam D. Ruppe wrote:
On Monday, 20 June 2016 at 15:13:53 UTC, Gary Willoughby wrote:
I think the problem is that the delegate which is required by
opApply is allocated using the GC.
make the delegate in opApply scope
int opApply(scope int delegate(what
On Monday, 20 June 2016 at 14:34:33 UTC, Mathias Lang wrote:
Can't `opApply` with `auto` return type works since it infers
attributes ?
I think the problem is that the delegate which is required by
opApply is allocated using the GC.
Is there any way to make opApply @nogc? or provide the same
foreach functionality without implementing a range interface?
I want to iterate over a piece of memory using a pointer. I
thought about using opSlice but that doesn't provide information
for an index in a foreach loop.
auto opSlice(
When compiling, what exactly does the -betterC flag do? The
command help says "omit generating some runtime information and
helper functions" but what does this really mean? Is there any
specifics somewhere?
On Sunday, 19 June 2016 at 10:35:59 UTC, Gary Willoughby wrote:
...
A more correct example:
import core.stdc.stdlib;
import std.traits;
ref T foo(T)()
{
alias Type = Unqual!(T);
Type* foo = cast(Type*) malloc(Type.sizeof * 8);
return *foo;
}
void main(string[] args)
In the following code, the `foo` function doesn't work when
casting to an immutable or shared type. Can anyone please explain
what is happening here? Is there any way of returning such
variables byRef from a malloc'd chunk of memory?
import core.stdc.stdlib;
ref T foo(T)()
{
int* foo
I've tried the following code and I get the error:
Error: template Foo(A) does not have property 'of'
struct Foo(A)
{
private int _foo;
@disable this();
public this(int foo)
{
this._foo = foo;
}
public static auto of(B)()
Here I'm testing T is either a class or interface:
void foo(T)(T bar) if (is(T == class) || is(T == interface))
{
...
}
Is there a more elegant way of testing T for multiple types?
Because it doesn't scale well if I need to add more.
I would love to use something like this:
void foo(T)(T
On Friday, 17 June 2016 at 10:53:40 UTC, Lodovico Giaretta wrote:
struct Foo(T)
{
private int _bar = 1;
this(int bar)
{
this._bar = bar;
}
}
auto foo = Foo!(string)();
This should do the trick.
Thanks, I forgot to mention I'm also doing lots of other stuff in
the con
I have a struct where I need to perform default initialization of
some members but the compiler doesn't allow to define a default
constructor which allow optional arguments.
struct Foo(T)
{
private int _bar;
this(int bar = 1)
{
this._bar = bar;
}
}
auto foo = Foo!(stri
On Sunday, 12 June 2016 at 15:05:53 UTC, ketmar wrote:
this is basically how refcounted structs are done. note that i
just typed the code into reply box, so it may not compile or
contain some small bugs, but i think you got the idea.
Thanks for the replies guys.
On Sunday, 12 June 2016 at 14:45:12 UTC, ketmar wrote:
ahem... wut?! we have one copy of our struct freed half the
way, and another copy has refcount of 2, so it won't be freed
at all. it doesn't so innocent as it looks: we may try to use
`f` in `main`... just to find out that resources was
my
On Sunday, 12 June 2016 at 14:29:19 UTC, Gary Willoughby wrote:
Another thing that is puzzling me is that when creating an
instance of the above struct and passing as an argument to a
function, the copy constructor is called and the reference
count is incremented. This is expected. However, whe
I'm wondering if it's this easy to create a reference counted
type:
struct Foo
{
int _refCount = 1;
this(...)
{
// allocate resources, etc.
}
this(this)
{
this._refCount++;
}
~this()
{
On Saturday, 4 June 2016 at 08:27:53 UTC, Russel Winder wrote:
On Sun, 2016-05-29 at 14:01 +0200, Jordi Sayol via
Digitalmars-d-learn wrote:
[…]
https://github.com/nomad-software/tkd
I am not a great fan of tk even in Python. It is true that Tk
is everywhere and so meets the portability r
On Tuesday, 31 May 2016 at 20:52:20 UTC, Johan Engelen wrote:
On Tuesday, 31 May 2016 at 18:55:18 UTC, Gary Willoughby wrote:
If I have a pointer and iterate over it using a slice, like
this:
T* foo = &data;
foreach (element; foo[0 .. length])
{
...
In relation to this thread:
http://forum.dlang.org/thread/ddckhvcxlyuvuiyaz...@forum.dlang.org
Where I asked about slicing a pointer, I have another question:
If I have a pointer and iterate over it using a slice, like this:
T* foo = &data;
foreach (element; foo[0 .. length])
On Sunday, 29 May 2016 at 16:26:58 UTC, Seb wrote:
On Sunday, 29 May 2016 at 11:05:21 UTC, Gary Willoughby wrote:
I'm currently implementing a hash map as an exercise and
wondered if there is a built-in function I could use to hash
keys effectively? What I'm looking for is a function that
hash
I'm currently implementing a hash map as an exercise and wondered
if there is a built-in function I could use to hash keys
effectively? What I'm looking for is a function that hashes any
variable (of any type) to an integer.
I've been looking at the `getHash` function of the `TypeInfo`
class
On Monday, 23 May 2016 at 03:03:12 UTC, Jon Degenhardt wrote:
Currently not possible. Enhancement request perhaps?
Looking at the implementation, setting its 'offset' member
seems to work. Based on example from documentation:
import std.outbuffer;
void main() {
OutBuffer b = new OutBuffe
On Tuesday, 24 May 2016 at 18:43:22 UTC, Adam D. Ruppe wrote:
On Tuesday, 24 May 2016 at 18:42:41 UTC, Gary Willoughby wrote:
I have a T* pointer to the start of a malloc'd chunk of
memory, the type T and the number of T's stored in the chunk.
Is there an efficient way of converting this infor
I have a T* pointer to the start of a malloc'd chunk of memory,
the type T and the number of T's stored in the chunk.
Is there an efficient way of converting this information to a D
array of type T[] or even T[n]?
On Tuesday, 10 May 2016 at 09:39:53 UTC, chmike wrote:
Is there an equivalent in D of the C++11 std.bind template class
See http://dlang.org/phobos/std_functional.html#partial
On Wednesday, 4 May 2016 at 15:23:20 UTC, Rene Zwanenburg wrote:
On Wednesday, 4 May 2016 at 14:54:39 UTC, chmike wrote:
Two constructors, one accepting a function and the other one
accepting a delegate would do the job for the API. Is there a
simple method to convert a function pointer into a
On Friday, 29 April 2016 at 13:52:59 UTC, Nordlöw wrote:
Could somebody briefly outline the different GUI toolkits
available in D and how they differ especially in terms of
cleverly the make use of all idioms available in the language
aswell as in Phobos.
For instance: DlangUI and Adams D Rup
On Tuesday, 1 March 2016 at 20:26:36 UTC, Ali Çehreli wrote:
On 03/01/2016 12:17 PM, Wulfrick wrote:
On Tuesday, 1 March 2016 at 20:15:00 UTC, Wulfrick wrote:
It looks like the link in wiki.dlang.org/Videos to Andrei's
"Three
Cool Things about D" is dead.
Do you know of another link?
Maybe
On Wednesday, 10 February 2016 at 07:20:03 UTC, Jakob Ovrum wrote:
You clearly didn't read the discussion in the link.
I did and I fully agree with jmdavis.
On Tuesday, 9 February 2016 at 17:02:28 UTC, Jakob Ovrum wrote:
to!string behaving like that was a poor design choice[1].
Please use fromStringz.
[1] https://github.com/D-Programming-Language/phobos/pull/1607
It's not a poor design choice. It ensures the string is handled
by the D GC instead
On Tuesday, 9 February 2016 at 16:58:03 UTC, Daniel Kozak wrote:
Or use `to` like this:
import std.conv;
writefln("%s", pString.to!(string));
this will allocate new string which can be performance problem.
Which is good in most cases. It's better to have the GC take care
of the D string ins
On Tuesday, 9 February 2016 at 12:50:27 UTC, Jakob Ovrum wrote:
writefln et al sensibly does *not* assume that a pointer to
char is a C string, for memory safety purposes.
Print the result of std.string.fromStringz[1] instead:
writeln(fromStringz(pString));
writefln("%s", fromStringz(pString))
On Thursday, 4 February 2016 at 05:51:22 UTC, Enjoys Math wrote:
Consider:
class C {
}
class B : C {
}
class A : B {
}
class D : C {
}
C[] objList;
how do we test if objLis[k] is of base type "B"?
Ie for [new A(), new B(), new D(), new C()] would give output
[true, true, false, false]
On Wednesday, 3 February 2016 at 14:19:32 UTC, Vasileios
Anagnostopoulos wrote:
Thank you very much. I investigate
Tcl_CmdProc
more closely.
On Wed, Feb 3, 2016 at 3:50 PM, Gary Willoughby via
Digitalmars-d-learn < digitalmars-d-learn@puremagic.com> wrote:
On Wednesday, 3 February 2
On Wednesday, 3 February 2016 at 12:20:42 UTC, Vasileios
Anagnostopoulos wrote:
Is there any example,framework or tutorial on how to call D
from Tcl (write new commands in D for Tcl)?
I am on Windows 10 x86_64.
thank you.
I've created a wrapper around Tcl/Tk to create GUI's here:
https://gi
On Thursday, 28 January 2016 at 15:10:38 UTC, Adam D. Ruppe wrote:
On Thursday, 28 January 2016 at 13:36:46 UTC, Puming wrote:
I searched the forum and found that people use `const(char)[]`
or `in char[]` to accept both string and char[] arguments.
There's also the hyper-generic signatures Pho
On Monday, 25 January 2016 at 09:33:15 UTC, Dsby wrote:
I want to know How can i track the GC when it's runing?
And Which algorithm is D's GC used,only Scan-Mark?
There is a good resource here:
https://dlang.org/spec/garbage.html
It details compiler flags to use to profile and log the GC usa
On Sunday, 10 January 2016 at 14:32:02 UTC, Jack wrote:
...
Just to make your code a little more clear, try using aliases
when defining delegate parameters. Like this:
alias Action = void delegate();
Then in your code you use the alias, like this:
class Bar()
{
private Action _action;
On Tuesday, 5 January 2016 at 18:47:30 UTC, Charles Smith wrote:
1. `arr[].sort` is changing arr in place. Any way to not do
that?
Use this instead:
auto result = sort(arr[].dup);
.dup duplicates the array and sort(...) uses the std.algorithm
sort and not the built-in array sort method.
2.
On Tuesday, 5 January 2016 at 17:20:07 UTC, Justin Whear wrote:
On Tue, 05 Jan 2016 16:07:36 +, Jack Applegame wrote:
On a server with 4GB of RAM our D application consumes about
1GB.
Today we have increased server memory to 6 Gb and the same
application
under the same conditions began to
On Sunday, 3 January 2016 at 19:24:46 UTC, TheDGuy wrote:
On Sunday, 3 January 2016 at 13:25:04 UTC, Gary Willoughby
wrote:
On Sunday, 3 January 2016 at 13:23:25 UTC, Gary Willoughby
wrote:
I think I've noticed one problem with the code above. You are
using `text.ptr`. You shouldn't do that bec
On Sunday, 3 January 2016 at 13:23:25 UTC, Gary Willoughby wrote:
I think I've noticed one problem with the code above. You are
using `text.ptr`. You shouldn't do that because you are passing
a pointer not an array. Just use `text`.
Forget this line, my mistake. Use `toStringz` and pass a poin
On Sunday, 3 January 2016 at 12:30:34 UTC, TheDGuy wrote:
I get an access violation with this code:
...
There are a few things you can do to improve your code to make it
easier to debug.
1. When converting a D string to a char pointer for use with C,
use `std.string.toStringz`:
http://dl
On Monday, 28 December 2015 at 14:05:42 UTC, Ivan Kazmenko wrote:
1. You can find maximum, then second maximum, then third
maximum and so on - each in constant memory and linear time.
So, if performance is somehow not an issue, there is a way to
do it @nogc but in N^2 operations.
That's perh
On Sunday, 27 December 2015 at 22:42:21 UTC, Ivan Kazmenko wrote:
If you implement a struct with range primitives over it, you
can use it as a range.
See the second code example in std.container.binaryheap's docs
at
http://dlang.org/phobos/std_container_binaryheap.html#.BinaryHeap.
Or do you
On Sunday, 27 December 2015 at 17:23:35 UTC, Gary Willoughby
wrote:
I have a binary tree storing ints implemented using an array.
The internal state looks like this:
8,7,6,4,1,3,5,2
When extracting this data, it is returned as 8,7,6,5,4,3,2,1.
Is it possible to elegantly add a range on top of
On Sunday, 27 December 2015 at 18:54:25 UTC, Adam D. Ruppe wrote:
On Sunday, 27 December 2015 at 16:05:39 UTC, Gary Willoughby
wrote:
[...]
Yes, but more than that, what, exactly, would you expect from
that? The order of operations with the postfix ++ operator and
ref would probably lead to
I have a binary tree storing ints implemented using an array. The
internal state looks like this:
8,7,6,4,1,3,5,2
When extracting this data, it is returned as 8,7,6,5,4,3,2,1.
Is it possible to elegantly add a range on top of the internal
state to return the correct value order I would expect
See the following code:
import std.stdio;
void foo(ref int x)
{
writefln("%s", x);
}
void main(string[] args)
{
int y = 0;
foo(y++);
}
When compiled it produces this error:
test.d(11): Error: function test.foo (ref int x) is not callable
using argument types (int)
I
On Thursday, 17 December 2015 at 09:47:42 UTC, TheGag96 wrote:
I've been trying to get into tkd to make some GUI apps, since
it looked like the simplest/intuitive library out there so far.
I've been attempting to use their TreeViews to make
interactable lists of things, but it almost looks like
On Tuesday, 17 November 2015 at 02:40:14 UTC, Domain wrote:
How to use readText to read utf16 file? Or other encoding file.
Here's a helpful resource when working with text files in D.
http://nomad.so/2015/09/working-with-files-in-the-d-programming-language/
On Tuesday, 10 November 2015 at 14:14:33 UTC, DlangLearner wrote:
Please enlighten me if this can be done, thanks.
If i understand you, you could use a templated function:
import std.stdio;
void foo(alias a)()
{
writefln("%s was passed in.", a.stringof);
}
void main(string[] args)
{
On Monday, 9 November 2015 at 22:42:16 UTC, Fyodor Ustinov wrote:
If this feature will be removed, it will be very lacking code,
like:
writeln = "Hello, world!";
:)
WBR,
Fyodor.
The feature is not being removed. Only the @property attribute
and compiler check is being removed.
On Thursday, 5 November 2015 at 10:04:02 UTC, Andrea Fontana
wrote:
Anyway: are duplicated keys on declaration allowed?
IMHO This should at least be a warning.
1 - 100 of 299 matches
Mail list logo