标签: d

使用D语言开发应用程序

对于那些用D开发应用程序的人,

  • 您使用哪些库来构建应用程序?
  • 那些图书馆记录良好?
  • 你用过Tango吗?
  • 你觉得D已准备好构建大型应用程序吗?
  • 您使用哪个IDE?可能下降?

d tango

20
推荐指数
2
解决办法
2290
查看次数

D支持64位有多好?

我想尝试D编程语言.我有一个简单的宠物项目,我一直想完成,我认为这是一个很好的学习机会D 2.0.

但是,我的主要操作系统是使用Windows 7 64位的kubuntu 64位双启动,我似乎无法让它工作.该项目将使用SDL,我怀疑我的64位操作系统可能是问题.

D64位的当前状态是什么?有没有人有这方面的工作经验?

顺便说一下,我没有兴趣D 1.0,所以它D 2.0或者是破产.

64-bit d

20
推荐指数
1
解决办法
4111
查看次数

C++和D之间的链接兼容性

D容易接口C.

D同样容易接口C++,但(并且它很大但是)C++需要非常微不足道.代码不能使用:

  • 命名空间
  • 模板
  • 多重继承
  • 将虚拟与非虚拟方法混合使用
  • 更多?

我完全理解继承限制.然而,其余的,感觉像人为限制.现在我不想std::vector<T>直接使用,但我真的希望能够std::vector<int>作为一个外部模板链接.

C++接口页有这个特别令人沮丧的评论.

D模板与C++模板几乎没有共同点,并且不太可能找到任何合理的方法以与D链接兼容的方式表达C++模板.

这意味着可能永远无法从D中访问C++ STL和C++ Boost.

不可否认,我可能永远不需要std::vector编码D,但我喜欢使用QT提升.

那是什么交易.为什么C++在D中表达非平凡的类很难?是否值得添加一些特殊的注释或某些东西来表达至少名称空间?


更新:"D在工程中有命名空间支持"来自Walter Bright.

c++ templates d

20
推荐指数
2
解决办法
1687
查看次数

D中const和immutable有什么区别?

是什么之间的区别const,并immutable在d型预选赛?

d const immutability

20
推荐指数
2
解决办法
1975
查看次数

使用D-programming语言的经验

这里有人有过D编程语言的经验吗?

它似乎有许多不错的功能,但它是否会达到目前普遍使用的语言如C++,Java或C#的流行程度?

所以它值得学习,还是一种前景不明确的孤立语言.

d

19
推荐指数
1
解决办法
5616
查看次数

优雅的运算符在D中重载

有一段时间我对D'运算符重载的方向感到困惑,但现在我意识到它是一个漂亮的系统...如果它只适用于核心类型(int,float等).考虑以下代码:

struct Vector {
    float X, Y;

    void opOpAssign(string op)(Vector vector) {
        X.opOpAssign!op(vector.X); // ERROR: no property "opOpAssign" for float
        Y.opOpAssign!op(vector.Y); // ERROR: ditto
    }
}
Run Code Online (Sandbox Code Playgroud)

这将是漂亮的代码,如果它工作,看到它在一个方法中重载所有+ =, - =,*=等运算符.但是,正如您所看到的,它不是开箱即用的.我用模板创建了一个解决方案(上帝,我爱D):

template Op(string op, T) {
    void Assign(ref T a, T b) {
        static if (op == "+") a += b;
          else if (op == "-") a -= b;
          else if (op == "*") a *= b;
          else if (op == "/") a /= b;
    }
}

struct Vector {
    float …
Run Code Online (Sandbox Code Playgroud)

d operator-overloading dmd gdc

19
推荐指数
2
解决办法
2163
查看次数

D的范围是否失败/成功/退出是否必要?

当使用具有try/catch/finally的语言时,D的失败/成功/退出范围语句是否仍然有用?D似乎没有最终可以解释为什么在D中使用这些语句.但是使用像C#这样的语言是否有用?我正在设计一种语言,所以如果我看到很多专业人士,我会加入它.

c# c++ d

18
推荐指数
5
解决办法
3485
查看次数

如何使用D的C库?

今天我听说过D编程,它与C代码兼容.不过我还没有找到任何关于是否可以使用D的GT库或PortAudio等C库的信息?如果有可能,你能解释一下如何做到这一点吗?

c d

18
推荐指数
1
解决办法
4283
查看次数

在D中实现C API

因此,有很多关于从D内部调用C API的信息,但反过来怎么样?在D中编写一个像普通C共享库一样工作的库需要做什么?这是一个简单的案例:

main.c中

extern int foo(int x);
void main() {
    printf("foo(5)=%d\n",foo(5));
}
Run Code Online (Sandbox Code Playgroud)

餐饮

extern(C)
{
    int foo(int x)
    {
         return x*x;
    }
}
Run Code Online (Sandbox Code Playgroud)

天真地尝试使用gcc和dmd构建和链接这些只会导致链接器错误.

链接gcc main.o foo.o:

doFoo.o: In function `no symbol':
doFoo.d:(.text+0x7): undefined reference to `_Dmodule_ref'
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

与dmd main.o foo.o链接:

/usr/lib64/libphobos2.a(deh2_2eb_525.o): In function `_D2rt4deh213__eh_finddataFPvZPS2rt4deh213DHandlerTable':
src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh213DHandlerTable+0xa): undefined reference to `_deh_beg'
src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh213DHandlerTable+0x14): undefined reference to `_deh_beg'
src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh213DHandlerTable+0x1e): undefined reference to `_deh_end'
src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh213DHandlerTable+0x46): undefined reference to `_deh_end'
/usr/lib64/libphobos2.a(lifetime.o): In function `_D2rt8lifetime18_sharedStaticCtor9FZv':
src/rt/lifetime.d:(.text._D2rt8lifetime18_sharedStaticCtor9FZv+0x15): undefined reference to `_tlsend'
src/rt/lifetime.d:(.text._D2rt8lifetime18_sharedStaticCtor9FZv+0x29): …
Run Code Online (Sandbox Code Playgroud)

c d

18
推荐指数
3
解决办法
1309
查看次数

'const ref'和'in'之间的区别?

我试图理解之间的区别const refin,特别是当它涉及到性能.

  1. 我知道这in相当于const scope,但是什么the scope stor­age class means that ref­er­ences in the pa­ra­me­ter can­not be es­caped (e.g. as­signed to a global vari­able).意思?示例代码是受欢迎的.

  2. 如何在实现功能之间const ref和之间做出决定in?我知道ref对象不会被复制,因为它是一个引用,但是同样如此in

d

18
推荐指数
2
解决办法
1435
查看次数

标签 统计

d ×10

c ×2

c++ ×2

64-bit ×1

c# ×1

const ×1

dmd ×1

gdc ×1

immutability ×1

operator-overloading ×1

tango ×1

templates ×1