This code breaks with the following error:
void main()
{
import std.range;
int[] vals = [];
vals.put(3);
}
/src/phobos/std/range/primitives.d(2328): Attempting to fetch the
front of an empty array of int
The following code has no error:
void main()
{
import
Most of the documentation at
https://dlang.org/spec/declaration.html#alias uses examples of
the form: `alias aliasName = other;`, where `aliasName` becomes
the new name to reference `other`. Alternatively, one may write
`alias other aliasName;`. My understanding is that the syntax
with `=`
I have encountered a problem where whenever I attempt to use a
templated function with alias that partially limits the type of
the arguments, the program fails to compile. But if I avoid
using an alias, the same function can infer all arguments.
Is this working as intended or have I
On Wednesday, 25 April 2018 at 07:39:28 UTC, Vijay Nayar wrote:
addAllWithAlias(v1); // Error!
One more note, this following line works correctly.
addAllWithAlias!double(v1); // OK.
On Wednesday, 25 April 2018 at 10:25:11 UTC, Simen Kjærås wrote:
In the general case, the issue is unsolvable, since the
relationship between template parameters and alias results may
be arbitrarily complex. A simple degenerate case is this:
Ok, wow, you weren't kidding. That becomes really
On Friday, 19 October 2018 at 06:53:32 UTC, dangbinghoo wrote:
hi,
why the code bellow compiles?
---
import std.stdio;
class A {
int m;
}
void main() {
A a;
a.m = 1;
}
---
and running this code get:
`segmentation fault (core dumped) ./test`
I consider this couldn't be compiled
On Wednesday, 17 October 2018 at 20:41:24 UTC, Ali Çehreli wrote:
On 10/17/2018 01:24 PM, Vijay Nayar wrote:
I have a snippet of code like this:
scope chordAngle = new S1ChordAngle(_center,
other._center);
return _radius + other._radius >= chordAngle;
The reason the "scope"
On Wednesday, 17 October 2018 at 20:51:29 UTC, Stanislav Blinov
wrote:
On Wednesday, 17 October 2018 at 20:24:56 UTC, Vijay Nayar
wrote:
I have a snippet of code like this:
scope chordAngle = new S1ChordAngle(_center,
other._center);
return _radius + other._radius >= chordAngle;
The
I have a snippet of code like this:
scope chordAngle = new S1ChordAngle(_center, other._center);
return _radius + other._radius >= chordAngle;
The reason the "scope" temporary variable exists is to avoid a
heap allocation and instead prefer a value be created on the
stack. Is there a
On Sunday, 30 September 2018 at 11:11:09 UTC, Nicholas Wilson
wrote:
On Sunday, 30 September 2018 at 09:30:38 UTC, Vijay Nayar wrote:
Is there a way to either have a constant reference to a class
that can be set to a new value, or is there a way to convert
the class variable to a class
I have two brief questions.
Code that uses "new" to create struct objects appears to compile
and run. Is this an actual language feature, to get structs on
the heap?
void main()
{
struct S {int data = 1;}
S* s1 = new S();
S* s2 = s1;
S s3 = *s1; // Still
On Sunday, 30 September 2018 at 09:16:42 UTC, Nicholas Wilson
wrote:
On Sunday, 30 September 2018 at 07:29:00 UTC, Vijay Nayar wrote:
Second question. const class variables may not be re-assigned,
so if you need a variable that may be reassigned, but may
never modify the underlying object, a
On Sunday, 30 September 2018 at 10:28:25 UTC, Alex wrote:
On Sunday, 30 September 2018 at 09:30:38 UTC, Vijay Nayar wrote:
Is there a way to either have a constant reference to a class
that can be set to a new value, or is there a way to convert
the class variable to a class pointer?
I
On Wednesday, 16 January 2019 at 17:01:06 UTC, Steven
Schveighoffer wrote:
On 1/14/19 2:30 PM, Neia Neutuladh wrote:
On Mon, 14 Jan 2019 09:10:39 +, Vijay Nayar wrote:
a.foo(1); // issues runtime error (instead of calling
A.foo(int))
Calling the function doesn't issue any sort of
On Sunday, 23 December 2018 at 18:31:24 UTC, Alex wrote:
On Sunday, 23 December 2018 at 18:13:25 UTC, Vijay Nayar wrote:
For example, if you have a const function in your container
like "T find() const", and this function needs to use that
comparator, then you're out of luck because the
I have a few cases where I would like to pass in a function as a
value to a template, but I want to ensure that the function takes
certain kinds of parameters, is a const function, or matches any
other set of conditions.
What is the best way to do this? Just to avoid any potential
confusion,
On Sunday, 23 December 2018 at 19:10:06 UTC, Alex wrote:
On Sunday, 23 December 2018 at 18:53:15 UTC, Vijay Nayar wrote:
You're right, it does compile. I'm a bit surprised. I wonder
if this is a relatively recent improvement in the language,
because last time I ran into this I had no such
On Sunday, 23 December 2018 at 18:04:32 UTC, Alex wrote:
On Sunday, 23 December 2018 at 17:13:49 UTC, Vijay Nayar wrote:
I have a few cases where I would like to pass in a function as
a value to a template, but I want to ensure that the function
takes certain kinds of parameters, is a const
On Sunday, 18 November 2018 at 11:00:26 UTC, aliak wrote:
On Saturday, 17 November 2018 at 21:56:23 UTC, Neia Neutuladh
wrote:
On Sat, 17 Nov 2018 21:16:13 +, aliak wrote:
[...]
I meant something like:
void debugln(T...)(T args) @nogc
{
import std.stdio;
On Sunday, 6 January 2019 at 21:53:31 UTC, Per Nordlöw wrote:
When converting a single integer to a string is `formatValue`
preferred over `formattedWrite` in terms of compilation and
run-time performance?
Also, if you do not need to write to a stream or a range and just
need the value,
https://dlang.org/spec/function.html#function-inheritance
Consider this snippet from the documentation:
class A
{
int foo(int x) { ... }
int foo(long y) { ... }
}
class B : A
{
override int foo(long x) { ... }
}
void test()
{
B b = new B();
b.foo(1); // calls B.foo(long),
On Wednesday, 27 February 2019 at 20:45:33 UTC, Alex wrote:
On Wednesday, 27 February 2019 at 20:03:15 UTC, Q. Schroll
wrote:
For any type constructors like const, I can use ConstOf!T to
get `T` with const attached. For a delegate/function type DG,
e.g. int delegate(int), how can I get the
Greetings everyone,
I have a question regarding the use of [relative
links](https://dlang.org/spec/ddoc.html#reference_links) in DDoc.
According to the specification, you can include a reference to an
object that is in scope using square brackets, e.g. `[Object]`.
One of my current projects
I encountered an odd bug in a project of mine which is
illustrated in the example below:
```d
class Thing {
int val;
this(int) {
this.val = val;
}
}
void main()
{
auto t = new Thing(3);
assert(t.val != 3);
}
```
The problem is that the parameter of the constructor actually has
On Saturday, 26 February 2022 at 11:44:35 UTC, Stanislav Blinov
wrote:
https://dlang.org/phobos/std_range_primitives.html#isOutputRange
This method requires the caller to explicitly declare the output
range element type, which I was hoping to have to avoid, if it
can be detected using
On Saturday, 26 February 2022 at 12:39:51 UTC, Stanislav Blinov
wrote:
Considering that `put` is quite typically implemented as a
template, I don't think that would be possible in general.
That is what I found as well, for example, the implementation of
`put` from `Appender` and
On Tuesday, 1 March 2022 at 09:06:59 UTC, vit wrote:
On Tuesday, 1 March 2022 at 08:40:12 UTC, Vijay Nayar wrote:
I've randomly encountered a strange error, and I cannot find
any explanation for it in the official documentation of syntax.
[...]
Here is more info (3.):
I've randomly encountered a strange error, and I cannot find any
explanation for it in the official documentation of syntax.
Essentially, a class cannot call function overload in a
super-class if the class itself contains an override. Is this a
bug? Is this on purpose? Take a look at
On Monday, 21 February 2022 at 16:58:43 UTC, Adam D Ruppe wrote:
On Monday, 21 February 2022 at 15:35:41 UTC, Vijay Nayar wrote:
I'm a bit surprised I've never heard of `adrdox` before now.
yeah i don't advertise much. it is what runs on my dpldocs.info
website though which auto-generates
On Monday, 21 February 2022 at 13:18:01 UTC, Adam D Ruppe wrote:
tbh ddoc is pretty bad, you should try my `dub run adrdox`
instead which also creates html but its links actually work.
I gave it a try and I must say that the documentation is
formatted in a very good way, and as you said, all
I was working on a project where it dealt with output ranges, but
these ranges would ultimately sink into a source that would be
inefficient if every single `.put(T)` call was made one at a time.
Naturally, I could make a custom OutputRange for just this
resource, but I also got the idea that
On Wednesday, 30 March 2022 at 12:53:10 UTC, vit wrote:
use two delegates :)
```d
(){
// Deliberately create a copy to keep in delegate scope.
string myStr = i.dup;
// The delegate will hopefully carry this copy around in its
own
Consider the following code example:
```d
import std.stdio;
void main()
{
alias DelegateT = string delegate();
// An array of delegates, each has their own scope.
DelegateT[] funcs;
foreach (i; ["ham", "cheese"]) {
// Deliberately create a copy to keep in delegate scope.
string
Consider the following program:
```d
void main()
{
import std.stdio;
import std.container.rbtree;
import std.variant;
// alias Type = int; // Works with no problem.
alias Type = Variant; // Produces error.
auto rbTree = new RedBlackTree!(Type);
On Saturday, 2 April 2022 at 10:03:19 UTC, JG wrote:
You need an order on the elements in a red black tree. Am I
correct in thinking you want a container of the form given a
key (a string) recover some data (of different types). If so
make the elements you store in the red black tree tuples
On Saturday, 2 April 2022 at 14:23:31 UTC, Salih Dincer wrote:
If your type includes opCmp() there is no reason not to use
rbTree.
I am using rbTree, the problem is when I try to use it with
Variant, at which point it blows up.
On Saturday, 2 April 2022 at 10:04:49 UTC, vit wrote:
Try use ```std.sumtype```.
I'm playing with SumType to see how it works, and I must be doing
something silly, because it fails to compile with the first
example type I attempted. Consider the following:
```d
import std.sumtype;
import
On Saturday, 2 April 2022 at 14:35:10 UTC, Vijay Nayar wrote:
The `tryMatch` method fails to compile, and instead I get the
following error:
```d
/dlang/dmd/linux/bin64/../../src/phobos/std/sumtype.d(2004):
Error: static assert: "`handlers[0]` of type `int function(ref
ubyte[] _1, ref
On Wednesday, 2 February 2022 at 10:14:25 UTC, Vijay Nayar wrote:
Greetings folks,
In my project, I have a parent package with several
sub-packages, each of which builds into either a library or an
executable.
[...]
I should point out there is 1 exception to subPackages not being
Greetings folks,
In my project, I have a parent package with several sub-packages,
each of which builds into either a library or an executable.
I first started observing odd problems when I was running `dub
build`, it would complain about different versions of vibe-d
present, and it
On Wednesday, 2 February 2022 at 14:07:08 UTC, Steven
Schveighoffer wrote:
On 2/2/22 5:14 AM, Vijay Nayar wrote:
If you have them in the same repository, my recommendation is
to use path dependencies instead of versions.
So, e.g.:
```sdl
dependency "funnel:proto" path="./proto" // in main
On Wednesday, 2 February 2022 at 19:03:35 UTC, Steven
Schveighoffer wrote:
On 2/2/22 1:42 PM, Vijay Nayar wrote:
Dub is kind of a hot mess in terms of the dependency resolution
and ways to specify projects. I would love to see it cleaned
up/reimplemented.
-Steve
For your larger more
Greetings everyone,
## Question
What is your approach to integration testing in D? Do you use
`unittest` blocks? Do you write stand-alone programs that
interact with a running version of your program? Is there a
library that makes certain kinds of testing easier?
For example, if I have a D
On Friday, 4 February 2022 at 17:39:00 UTC, H. S. Teoh wrote:
On Fri, Feb 04, 2022 at 12:38:08PM +, Vijay Nayar via
Digitalmars-d-learn wrote: [...]
I am still in the process of experimenting, but the advice on
this thread has all been very helpful. Right now I'm
experimenting
On Sunday, 6 February 2022 at 17:36:05 UTC, Vijay Nayar wrote:
On Friday, 4 February 2022 at 17:39:00 UTC, H. S. Teoh wrote:
On Fri, Feb 04, 2022 at 12:38:08PM +, Vijay Nayar via
When working on a dub configuration needed to separately run
integration tests that operate on the fully
On Friday, 20 May 2022 at 01:41:59 UTC, Ali Çehreli wrote:
On 5/19/22 16:44, Vijay Nayar wrote:
> If I remove the call from `static this()`, then the web call
works as
> normal. Any idea why calling vibe.d's `requestHTTP` function
inside of a
> module's static construction would cause an
I've encountered an unusual behavior that I have no good
explanation for. Consider the following code example:
```d
import vibe.core.log : logInfo;
import vibe.http.client : requestHTTP, HTTPClientRequest,
HTTPClientResponse;
import vibe.http.common : HTTPMethod;
import vibe.stream.operations
On Sunday, 4 September 2022 at 01:52:11 UTC, Ali Çehreli wrote:
Let's say I have three modules that work together, which I want
to register on dub: A, B, and C.
Here I would take inspiration from the Java world, where a
"domain" is used per project. Typically this domain is written
from
On Thursday, 5 January 2023 at 16:41:32 UTC, Adam D Ruppe wrote:
On Thursday, 5 January 2023 at 16:38:49 UTC, Vijay Nayar wrote:
Does that class inherit the scope of the function it is
inside, similar to how an inner class does with an outer class?
yup. They can see the local variables from
On Thursday, 5 January 2023 at 13:47:24 UTC, Adam D Ruppe wrote:
On Thursday, 5 January 2023 at 13:27:23 UTC, Vijay Nayar wrote:
Why is this error only found when declaring a class in the
unittest?
A unittest is just a special function, it can run code and have
local variables.
classes and
I've run into an unexpected problem that only seems to happen in
unittests, but not outside of them. Consider the following
example:
```
unittest {
class Ab {
int a;
string b;
static class Builder {
int _a;
string _b;
Builder a(int a) {
_a = a;
On Saturday, 15 April 2023 at 14:05:17 UTC, NonNull wrote:
I want a way to default initialize a class variable to a
default object (e.g. by wrapping it in a struct, because
initialization to null cannot be changed directly). Such a
default object is of course not available at compile time
On Thursday, 27 July 2023 at 21:24:44 UTC, Dennis wrote:
On Thursday, 27 July 2023 at 21:19:08 UTC, Vijay Nayar wrote:
Attempted Fix 2: Enclose the entire attribute name in
parenthesis.
```
static import vibe.data.serialization;
class ChatCompletionFunctions {
On Friday, 28 July 2023 at 11:54:12 UTC, Steven Schveighoffer
wrote:
On 7/28/23 4:15 AM, Vijay Nayar wrote:
I tried it and it worked for me. The template-argument syntax
is normal. It's just a list of types or expressions (i.e. not a
function argument list)
What is the error?
-Steve
54 matches
Mail list logo