2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

D言語 Part34©2ch.net

1 :デフォルトの名無しさん 転載ダメ©2ch.net:2015/01/25(日) 12:07:29.52 ID:gAd5OZDm
プログラミング言語 D (D Programming Language) について語るスレッドです。

■本家
http://dlang.org/ - 公式(英語)
http://www.kmonos.net/alang/d/ - 公式の和訳 (やや古いので注意)
https://issues.dlang.org/ - D言語バグ報告
https://github.com/D-Programming-Language - D言語開発リポジトリ

■Wiki
http://wiki.dlang.org/ - 公式Wiki
http://dusers.dip.jp/ - D言語友の会(日本語フォーラムあり)

■プログラミング言語D (TDPL: The D Programming Language)
Andrei Alexandrescu 日本語版
http://www.shoeisha.co.jp/book/detail/9784798131108

ソース貼付サイト http://dpaste.dzfl.pl/
<$><$> https://www.bountysource.com/trackers/383571-d-programming-language

■前スレ
D言語 Part33
http://toro.2ch.net/test/read.cgi/tech/1396145538/

■過去スレ、関連スレ
http://makimo.to:8000/cgi-bin/search/search.cgi?q=D%8C%BE%8C%EA&sf=2&all=on&view=table&shw=5000

2 :デフォルトの名無しさん:2015/01/25(日) 12:09:12.95 ID:gAd5OZDm
■DUB パッケージマネージャ
http://code.dlang.org/

■IDE
http://rainers.github.io/visuald/visuald/StartPage.html - Visual D(Visual Studioプラグイン)
https://code.google.com/p/ddt/ - DDT(Eclipseプラグイン)
http://wiki.dlang.org/Mono-D - Mono-D (MonoDevelop プラグイン)

■ライブラリ
https://github.com/d-widget-toolkit/dwt - DWT(GUIライブラリ)
https://github.com/gtkd-developers/GtkD - GtkD(GUIライブラリ)
https://github.com/Rayerd/dfl - DFL(GUIライブラリ・非公式最新版)
https://github.com/DerelictOrg - Derelict(SDL/OpenGLなどのポーティング)
http://www.vector.co.jp/soft/win95/prog/se491774.html - DXライブラリ バインディング(作者サイトメンテナンスのため Vector)
http://www.ku6.jp/keyword6/1.html - 傾き指向プログラミング(SDLなどのポーティング)

■OMF<->COFF変換ツール
http://www.agner.org/optimize/#objconv

■D言語で作られたゲーム
http://www.nicovideo.jp/mylist/4453698 - D言語で作られた芝ゲー niconico動画
http://www.asahi-net.or.jp/~cs8k-cyu/ - ABA Games

3 :デフォルトの名無しさん:2015/01/25(日) 13:05:52.30 ID:JhgO84F7
               ノ      ゚.ノヽ  , /}      ...
            ,,イ`"     、-'   `;_' '    ..::::::::::::::...
   ,-、  _.._   (        (,(~ヽ'~     ..:::::::::::::::::::::::
 )'~  レー'  〉   ヽ       i`'}       .:::::::::::::::::::::::
 ~つ     '-ー、  i       | i'     ...:::::::::::::::::::::::
 /       <  /     。/   !  ......:::::::::::::::::::::::::    これは>>1乙じゃなくて
/         ~^´     /},-'' ,●::::::::::::::::::::::::::::::::::::
i、        ,i' _,,...,-‐-、/    i  ::::::::  .:::::::::::::
..ゝ        <,,-==、   ,,-,/      .:::::::::::            放射能がうんたら
 )       {~''~>`v-''`ー゙`'~       ..:::::::::                          ........::.
 {        レ_ノ            ..::::::::.                         ......:::::::::
ノ         ''           ..:::::::                        ...::.:...:::::::::
                     .:::::::::                     ...:......:::::::::::: .
                    .:::::::::::.        .....      ..  ..::::::::::::::::::::::::   :::.
                    ::::::::::::::::.::::::....:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.. ::  ::..
                    .:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::    ::.
                    ::::::::::::::::: :::::::::::::::::::::::::::::: :::::
                          .::    ::.  :::

4 :デフォルトの名無しさん:2015/01/25(日) 15:09:19.73 ID:N7hbj8cO
最新verにしたらgl3nってライブラリがコンパイル通らなくなった
破壊的変更入れる方も糞だが
製作者もカッコつけて変な機能使わずに、betterC程度で実装すべき

5 :デフォルトの名無しさん:2015/01/25(日) 15:38:38.09 ID:y+Auf1Wh
>>4
DMD2.064以降が必要っぽいね
エラー箇所を見てみたが、破壊的変更というよりコンパイラのバグだなコレ

6 :デフォルトの名無しさん:2015/01/25(日) 17:06:42.38 ID:gAd5OZDm
鯖名かわってるやんけ

■前スレ
D言語 Part33
http://peace.2ch.net/test/read.cgi/tech/1396145538/

7 :デフォルトの名無しさん:2015/01/26(月) 17:40:14.89 ID:lqioQh4J
破壊的変更は一般的に前方互換性を壊すことであって……

8 :デフォルトの名無しさん:2015/01/26(月) 17:48:08.66 ID:lqioQh4J
いや、この場合は実際に前方互換性が壊れてるんだな

9 :デフォルトの名無しさん:2015/01/26(月) 21:10:29.94 ID:pUuTj9VR
betterC程度で実装すべき って正気か?!

10 :デフォルトの名無しさん:2015/01/26(月) 21:26:28.76 ID:aEhcjcMk
だって直してやろうにもわけわかんないもん

11 :デフォルトの名無しさん:2015/01/26(月) 23:02:12.05 ID:pUuTj9VR
直そうかと思ったけどgl3nってGNU make使えないのかまじかよ
makeコマンドまで専用に置き換えることないだろJK・・・

12 :デフォルトの名無しさん:2015/01/27(火) 03:28:12.02 ID:jDmPNZx5
それは言えてる

13 :デフォルトの名無しさん:2015/01/27(火) 18:05:27.96 ID:66YrvWGd
>>11
普通に使えるんだが……
バージョンの問題なのかな? 少なくともGNU make 4.0ではコンパイルできる

14 :デフォルトの名無しさん:2015/01/29(木) 18:20:55.08 ID:zwkKAiAG
何かDの公式サイトがちょっとモダンになってるなw

…で、日本語版はいつまで放置状態なんですかね

15 :デフォルトの名無しさん:2015/01/29(木) 19:30:06.63 ID:yGLSlnJU
君がプルリクエストを送れば放置じゃなくなるよ!
https://github.com/kinaba/dlang-ref-jp

16 :デフォルトの名無しさん:2015/01/29(木) 20:41:25.06 ID:4Rp6hoR2
言語の方はPRでなんとかなるけどライブラリの方はどうにも手が出せんな
翻訳元がどのバージョンかもわからん ソース一本一本バラバラで頭痛くなった

17 :デフォルトの名無しさん:2015/02/01(日) 08:56:16.73 ID:p1TMacHT
2.067のchangelog はもう上がってるんだなw
http://dlang.org/changelog.html

本体はよ

18 :デフォルトの名無しさん:2015/02/01(日) 09:56:58.98 ID:sjXjc1T+
順調に行ったとして3月頭だよ もっと遅れると思う

19 :デフォルトの名無しさん:2015/02/01(日) 13:21:53.88 ID:zYqn1tT/
ベータテストをサボってない?
2.067.0-b1とか、changelogにある変更点は一つも入ってない時のバージョンじゃないか
こりゃregression地獄だろうな

20 :デフォルトの名無しさん:2015/02/01(日) 13:54:34.43 ID:sjXjc1T+
まだβテスト始まってない
2.067.0-b1はアルファ版だけど担当者不在の状態でベータとして公開された
手違いか確信犯かは知らない

21 :デフォルトの名無しさん:2015/02/01(日) 14:15:31.14 ID:pkXhoNhP
異常な早さで出てたもんなb1
2.066と同じくらいの時期に出たんじゃなかった?

22 :デフォルトの名無しさん:2015/02/06(金) 00:40:38.22 ID:0AkTWr8h
まだ高速リリースとか言ってるのか

23 :デフォルトの名無しさん:2015/02/10(火) 00:28:01.15 ID:fSGdLYp2
D言語初心者なんですが教えて下さい

<プログラミング言語D 日本語版>の12Pに出てくる、テキストに含まれる
単語ごとに出現回数を数えるプログラムを打ち込んでみてるのですが、
ソース上どこにもテキストファイルを読み込むような箇所が無いような気が
するのですが、その部分は自分で実装しろって事なんですかね?

http://ideone.com/nqOOCq

24 :デフォルトの名無しさん:2015/02/10(火) 00:36:15.59 ID:7gcf+5Ry
標準入力からテキストをもらうコードになってるよ。
a.exe < text.txt

25 :デフォルトの名無しさん:2015/02/10(火) 00:37:59.30 ID:7gcf+5Ry
stdinが標準入力
byLineが一行ずつ取り出し

26 :デフォルトの名無しさん:2015/02/10(火) 01:03:06.19 ID:fSGdLYp2
実行できました!!

有り難うございます。

27 :デフォルトの名無しさん:2015/02/10(火) 05:06:36.82 ID:fSGdLYp2
derelict3使ってらっしゃる方いますか・・?

ソースをダウンロードしてコンパイルまでは問題なくいったんですけど、
実行すると以下のようなエラーがでてしまいます。。

Building all packages.
Building DerelictPQ

../import/derelict/pq/functions.d
../import/derelict/pq/pq.d
../import/derelict/pq/types.d

dmd -lib -O -release -inline -property -w -wi -I"../import" -of"../lib/dmd/libDerelictPQ.a" "../import/derelict/pq/functions.d" "../import/derelict/pq/pq.d" "../import/derelict/pq/types.d"
/usr/src/phobos/std/stdio.d(975): Error: not a property fileno
/usr/src/phobos/std/bitmanip.d(1650): Error: not a property iota(this.dim()).filter!((i) => ptr[i])
/usr/src/phobos/std/bitmanip.d(1651): Error: not a property filter(iota(this.dim())).map!((i) => BitsSet!size_t(ptr[i], i * bitsPerSizeT))

対処法分かる方いらっしゃいますか??

バージョンはDMD64 D Compiler v2.066.1です。。

一応ぐぐってこういうページ(https://github.com/repeatedly/xxhash-d/issues/1
とかは見つけてみて、
posix.makとかいうテキストファイルをあさって中みてみたけど、
サイトの人が答えてる箇所と同じ部分は見つからないし、
何がなんだかサッパリ!

28 :デフォルトの名無しさん:2015/02/10(火) 07:16:00.93 ID:d72dCSc4
詳しい説明を省略するとコンパイルオプションに-propertyがついてるのが悪い

dmd -Isrc -m64 -w -d -property -O -release …

から -property を削って

dmd -Isrc -m64 -w -d -O -release …

にすればコンパイル通るはず。-propertyで検索するといい

29 :デフォルトの名無しさん:2015/02/10(火) 07:23:34.59 ID:d72dCSc4
あとposix.makはlinuxとかで使うメイクファイルだろうから
もしWindows使ってるなら直すべきはwin32.makとかかも

30 :デフォルトの名無しさん:2015/02/10(火) 07:56:13.10 ID:fSGdLYp2
>>28
先輩さすがっす!!
もう自分一人じゃ万策尽きてました!!

linux使いなんですがposix.makはいじらなくても平気でした。
Direlict3を落とした時についてたbuild.dの中の-propertyを全2箇所、
仰せの通り削除したら普通に通りました。

もっと勉強が必要ですね。
今日はこれでやっと寝れます。どうも有難う御座いました。

31 :デフォルトの名無しさん:2015/02/10(火) 08:26:27.82 ID:Hs3TdF+4
デレリクトIII世あやまれ

32 :デフォルトの名無しさん:2015/02/10(火) 22:38:32.79 ID:UryovtmZ
Pythonに代わってDの時代、来ちゃったかー
http://postd.cc/d-for-the-win/

枕詞はいいとして、srcgenのD版でのopIndexとopDollarの使い方が秀逸だわ
名前付き引数も実現できるんだな

33 :デフォルトの名無しさん:2015/02/10(火) 22:48:56.53 ID:CuK7u/7x
凄い、と感動するけどハックっぽいのが…

言語機能として欲しいよね、名前付き引数
あと多返値

34 :デフォルトの名無しさん:2015/02/11(水) 00:33:34.64 ID:AD+vXnh0
タプルまだ返せないんだった?

35 :デフォルトの名無しさん:2015/02/11(水) 02:15:50.86 ID:sEyNJ1vO
http://qiita.com/yasei_no_otoko/items/ae23b681a47d9a16f4c6
↑ここに書かれてる方法に従って進め、ソースコードのビルドを試みたのですが、
以下のようなエラーが出ました。

libDerelictSDL2.a(sdl.o):(.rodata+0x20): `_D8derelict4util6loader12__ModuleInfoZ' に対する定義されていない参照です
libDerelictSDL2.a(sdl_71_698.o):(.data+0x40): `_D8derelict4util9exception17DerelictException7__ClassZ' に対する定義されていない参照です
libDerelictSDL2.a(sdl_71_698.o):(.data+0xb0): `_D8derelict4util6loader15SharedLibLoader7__ClassZ' に対する定義されていない参照です
libDerelictSDL2.a(sdl_71_698.o):(.rodata+0x4568): `_D8derelict4util6loader15SharedLibLoader4loadMFZv' に対する定義されていない参照です
libDerelictSDL2.a(sdl_71_698.o):(.rodata+0x4570): `_D8derelict4util6loader15SharedLibLoader4loadMFAyaZv' に対する定義されていない参照です
libDerelictSDL2.a(sdl_71_698.o):(.rodata+0x4578): `_D8derelict4util6loader15SharedLibLoader4loadMFAAyaZv' に対する定義されていない参照です
libDerelictSDL2.a(sdl_71_698.o):(.rodata+0x4580): `_D8derelict4util6loader15SharedLibLoader6unloadMFZv' に対する定義されていない参照です
libDerelictSDL2.a(sdl_71_698.o):(.rodata+0x4588): `_D8derelict4util6loader15SharedLibLoader8isLoadedMFNdZb' に対する定義されていない参照です
libDerelictSDL2.a(sdl_71_698.o):(.rodata+0x4598): `_D8derelict4util6loader15SharedLibLoader10loadSymbolMFAyaZPv' に対する定義されていない参照です
libDerelictSDL2.a(sdl_71_698.o):(.rodata+0x45a0): `_D8derelict4util6loader15SharedLibLoader3libMFNdZS8derelict4util9sharedlib9SharedLib' に対する定義されていない参照です
libDerelictSDL2.a(sdl_71_698.o):(.rodata+0x45a8): `_D8derelict4util6loader15SharedLibLoader8bindFuncMFPPvAyabZv' に対する定義されていない参照です
collect2: error: ld returned 1 exit status
--- errorlevel 1

ライブラリの配置等は書かれてる通りにやったと思うのですが・・・
どういう原因が考えられますか?

36 :デフォルトの名無しさん:2015/02/11(水) 09:32:23.09 ID:DokQQA8v
>>34
組み込みのタプルが欲しいってことでしょ
DIPがあったけど、どうなったんだろう

>>35
本当にそのページ通りにやってる? libDerelictUtil.aをコンパイラの引数に指定してないのでは
もしGNU/Linuxの利用者なら、さらに -L-ldl も必要

ところで、Derelict3はもうメンテナンスされてないのでDerelictOrgを使った方が良いかもしれない(dub必須だけど) https://github.com/DerelictOrg
DerelictOrgをラップしたゲーム製作用ライブラリもあって、用途によってはこちらを使うのが便利かも https://github.com/d-gamedev-team/gfm

37 :デフォルトの名無しさん:2015/02/11(水) 11:34:53.64 ID:AEgPMJkt
http://wiki.dlang.org/DIP32
これのワクワク感はんぱないんだけど、あんま進展はしてないっぽいね。

38 :デフォルトの名無しさん:2015/02/11(水) 11:41:59.07 ID:sEyNJ1vO
>>36
私には誤りが2つありました。
サイトの通りにやったつもりでしたが、私はlinuxユーザ
としての仕様を理解していなかったようです。
ご指摘の通り-L-ldlをつけていませんでした。
しかしそれだけではできませんでした。

最初はページの順番で最後にdlをリンクして
dmd test.d -LlibDerelictUtil.a -LlibDerelictSDL2.a -L-ldl
このように記述しましたが、これでは先ほどのようなエラーがまた出てしまい、
dmd test.d -LlibDerelictSDL2.a -LlibDerelictUtil.a -L-ldl
このように順番を変えたらうまくいきました。

しかしderelict3にしてもそうですが、当然とはいえD言語+SDLでは
日本語ドキュメントがかなり少ないですね。
貼って頂いたサイトのライブラリもとても興味がわきますが、
英語頑張らないとダメですかね・・。

にしてもやっと最初の一歩が踏み出せました!
有難う御座いました!

39 :デフォルトの名無しさん:2015/02/11(水) 15:10:15.21 ID:z34G2oAC
なんで翻訳文口調?w

40 :デフォルトの名無しさん:2015/02/11(水) 15:24:58.77 ID:Cq2Zt0wJ
struct Hoge
{
Hoge _hoge;
}


構造体ってこんなこともできねーのか

41 :デフォルトの名無しさん:2015/02/11(水) 15:41:17.19 ID:I3RcppAe
たかし、休みだからって昼間からお酒なんか飲んで

42 :デフォルトの名無しさん:2015/02/11(水) 15:58:10.30 ID:lWf1wIdf
>>40
構造体は値型でclassとかと違って常に実体があるから
_hogeの中の_hogeの中の_hogeの中の_hogeの中の_hogeの中の_hogeの中の…
みたいになる

43 :デフォルトの名無しさん:2015/02/11(水) 16:54:42.71 ID:29qyXWgk
>>32
めちゃくちゃやな

44 :デフォルトの名無しさん:2015/02/11(水) 17:29:15.53 ID:xhm7zQSL
D言語人気あるなw

45 :デフォルトの名無しさん:2015/02/11(水) 17:46:14.73 ID:DokQQA8v
>>40にその説明で分かるか疑問だ

46 :デフォルトの名無しさん:2015/02/11(水) 17:53:34.97 ID:GbZ4KuWH
struct Hoge
{
Hoge* _hoge;
}

なら可能なのかな

47 :デフォルトの名無しさん:2015/02/11(水) 19:48:00.41 ID:AEgPMJkt
>>46
それはもちろんできる。
実際にstd.container.SListとかDListはそんな感じになってる。
(正確には内部のNodeが、だけど)

48 :デフォルトの名無しさん:2015/02/12(木) 13:29:24.84 ID:4XYPAIWu
>>36さんが貼ってくれたgfmを使おうとしたんですが、
その中に書いてあったサンプルプロジェクトhttps://github.com/p0nce/aliasthis
をdubでビルドを試みたんですが、
Error executing command build: Root package aliasthis contains reference to invalid package gfm:math
って言われて、
あれ?dubって足りないパッケージ自動でダウンロードしてくれるんじゃなかったっけ?って
思いつつも、仕方ないからdub.jsonから"dependencies"の項目全部消してimportファイルを手動で配置して
実行したら、今度はsource/aliasthis/colors.d(11): Error: module hsv is in file 'gfm/image/hsv.d' which cannot be read
と怒られた。
gfmの最新リポジトリ内のimageにはhsv.dがないが、ソースにはインポートされている。
こうなったらもうこのプログラムの実行は無理かな。

49 :デフォルトの名無しさん:2015/02/12(木) 17:37:55.21 ID:q1EoFTcz
>>48
バージョン1.1.4が古すぎて、dubリポジトリから消えたのが原因
(最新30バージョンしかダウンロードできない)

dependenciesに書いてるバージョンのgfmを持ってくればいいよ
git clone (gfmのgitレポジトリ); git checkout v1.1.4してdub add-localするなり、手動でコンパイルするなり

50 :デフォルトの名無しさん:2015/02/12(木) 19:48:39.30 ID:bXvlMxGY
wxDでポトペタで開発できる環境はまだ無かったり?
そういう環境があればあっさり普及しそうなんだが

51 :デフォルトの名無しさん:2015/02/12(木) 19:50:51.16 ID:PfMIiKi9
あっさり動かなくなるのが先

52 :デフォルトの名無しさん:2015/02/12(木) 19:51:29.35 ID:y+H1/X6i
なるほど

53 :デフォルトの名無しさん:2015/02/12(木) 20:51:21.63 ID:q1EoFTcz
QMLバインディングがあるから、QtCreatorとやらでGUIを作れるんじゃないか
試したことないから知らないけど

54 :デフォルトの名無しさん:2015/02/12(木) 20:53:00.31 ID:3kErsrEg
ポトペタは実はあった
DFLとDWTのコードが書けていた
遠い遠い昔の話だ

55 :デフォルトの名無しさん:2015/02/12(木) 21:06:55.00 ID:4P7uNPIb
そもそもwxDが今や死んでるという…

お願いですからwxDかQtDかのどっちかでいいから生き返ってください
C++からのポーティングはやっぱ難しいのかな

56 :デフォルトの名無しさん:2015/02/12(木) 21:29:47.24 ID:3kErsrEg
QtDは最初よかったけどなんか根が深そうなエラーが散発的に出てきて辛くなったな
開発者の人もくじけてしまったんだろうか

57 :デフォルトの名無しさん:2015/02/12(木) 21:34:47.94 ID:PfMIiKi9
DFLのポトペタは今もできる

58 :デフォルトの名無しさん:2015/02/12(木) 22:16:49.62 ID:q1EoFTcz
ポトペタという単語、自分とは別の文化圏の香りがする……

59 :デフォルトの名無しさん:2015/02/12(木) 23:09:30.23 ID:PfMIiKi9
QtD サポートのために traits 増やしたお というのを数年前に見て度肝を抜かれた
だがそれでも時既に遅しだったのかもしれない

60 :デフォルトの名無しさん:2015/02/13(金) 01:55:34.54 ID:Bhurw0eL
>>49
なるほど、確かに古いパッケージ見てみたら該当のソースがあった!
しかし今度はね。それだけじゃなくてね。std.loggerってのもないんだって・・w
Wikiでちょっと見た所、過去にあったimportファイルみたいなのだが、
今はstd.experimentalとやらに分類されてるようで、
それは標準添付ではなくて、リポジトリから持ってこないといけないみたい。
で、loggerというディレクトリに5つのソースファイルに分割されていた・・w
たった1年か2年前のソースをビルドするのがこんなにも大変とは、
D言語の破壊的成長力に、め・・目を見張るばかりだ!

61 :デフォルトの名無しさん:2015/02/13(金) 08:41:05.07 ID:OQXQ5SVC
互換性維持しない方向で成長するのは別に構わんけど
過去のリポジトリ消される(ライブラリ含めて)のはめっちゃ困る罠

62 :デフォルトの名無しさん:2015/02/13(金) 08:46:04.43 ID:wpAfYcVd
こういうことがあるからあんまり流行らないんだろうなぁと思う

63 :デフォルトの名無しさん:2015/02/13(金) 10:04:02.80 ID:Bhurw0eL
うーん・・
dub buildで急にエラーが出て何もできなくなった。
ソースとかまるで関係なく、どんなプロジェクトでも同じ文言を吐き出す
ようになったのだが、、

dub build
Error executing command build: Failed to invoke the compiler dmd to determine the build platform: {
"compiler": "dmd",
"frontendVersion": 2066,
"compilerVendor": "Digital Mars D",
"platform": [
"linux",
"posix"
],
"architecture": [
"x86_64"
],
}
Error: Error writing file '/tmp/dub_platform_probe.o'

dub_platform_probe.d見ても原因がさっぱり分からない助けてくれ。

64 :デフォルトの名無しさん:2015/02/13(金) 10:44:48.60 ID:GGd+ovbB
Dの破壊的変更はもっとマシになるべきだが対策することが出来る
だが半生ライブラリはダメだ 滅ぶべき
パッケージシステムは道を誤りし背教者どもの墓標

65 :デフォルトの名無しさん:2015/02/13(金) 13:22:45.55 ID:hveNpu6j
>>60
え、そっちもGitレポジトリでしょ? 過去の状態のを使えばいいのでは
(内容も変わってるかもしれないし)

66 :デフォルトの名無しさん:2015/02/13(金) 13:33:09.45 ID:hveNpu6j
>>61
dubレポジトリは個人がボランティアで運営してるっぽいから仕方ない
あそこはGithubからミラーしてるだけだから、どうしても古いバージョンが入手できないということはないしね

2015年前半に、D言語の宣伝・普及のための団体を作るとかいう計画を立ててるらしいけど
それ以前にこういうボランティア任せの部分をちゃんとしたサービスとして運営できる組織を作って欲しいなぁ

67 :デフォルトの名無しさん:2015/02/15(日) 02:45:27.03 ID:cP5B7v6s
人を動かすにはお金が必要なのです…

68 :デフォルトの名無しさん:2015/02/15(日) 03:06:40.00 ID:f2y5BLpx
永遠の17歳でいればずっと輝いていられる
そんなD言語

69 :デフォルトの名無しさん:2015/02/15(日) 09:59:28.43 ID:lHovhrIX
Swiftのポジジョンに収まっていれば安泰(?)だったかもなぁ

70 :デフォルトの名無しさん:2015/02/19(木) 13:19:34.20 ID:HRi6jpIR
必要なのは D言語の入門・解説ではなく D言語とのつきあい方のガイドである

71 :デフォルトの名無しさん:2015/02/19(木) 13:26:50.22 ID:HRi6jpIR
Beta2
http://downloads.dlang.org/pre-releases/2015/

72 :デフォルトの名無しさん:2015/02/19(木) 15:56:05.50 ID:IlBmsRQL
オオカミ言語

73 :デフォルトの名無しさん:2015/02/19(木) 19:41:27.84 ID:XR+Fo/Bc
>>70
たしかにそうかも
自称ですら「2番めに学ぶ言語としていいよ!」とか言ってるし

74 :デフォルトの名無しさん:2015/02/19(木) 23:05:32.06 ID:/l77WhQC
1番目に学ぶべきはCかJavaかC#
2番目に学ぶべきはCかJavaかC#のまだやってないの
3番目に学ぶべきはJavaScriptかPythonかRuby

75 :デフォルトの名無しさん:2015/02/19(木) 23:20:17.85 ID:VH3d6pj7
実際の状況を考えると、CとJavaとC#が選択肢に並ぶ場面ってそうそう無いよな

76 :デフォルトの名無しさん:2015/02/19(木) 23:22:06.59 ID:VH3d6pj7
>>73
ありゃ相当古い記述なのであまり真に受けない方がいい
今は割と初心者向けのリソースがあるし(英語が読めない人間には無いも当然だけど)

77 :デフォルトの名無しさん:2015/02/20(金) 00:33:37.66 ID:0dV0e97W
D言語はまだ英語無しで学べる言語じゃない

まあレファレンス読むよりソース読んだ方が手っ取り早いかもしれないけど
(でもソースがレファレンスの代わりになるってunittestのおかげだよね)

78 :デフォルトの名無しさん:2015/02/26(木) 23:20:00.62 ID:3O66RLhf
お前らが「最近のD言語は安定しててつまらない」って言い始めたら本気出す

79 :デフォルトの名無しさん:2015/02/27(金) 00:27:23.38 ID:K5JNT6u2
本当に安定しててつまらないよ、細々とした調整ばかり
今年はDIP69含めて大幅な変更に期待

80 :デフォルトの名無しさん:2015/02/27(金) 00:35:21.49 ID:f/HlKW2K
RoRみたいなキラーフレームワークの登場が最優先だろ
変更ばっかじゃいつまでたっても出てこねえんだよお

81 :デフォルトの名無しさん:2015/02/27(金) 16:16:04.75 ID:K5JNT6u2
まさにRubyも仕様変更の多い言語なわけだし、あまり関係なさそう
キラーなんたらが出る以前に、それなりに人気が無いと始まらん

82 :デフォルトの名無しさん:2015/02/27(金) 17:00:53.63 ID:fb9Ltl2D
RubyやPythonと違ってネイティブ吐けるところがメリットだけど
Pythonで間に合ってます

83 :デフォルトの名無しさん:2015/02/27(金) 17:16:40.06 ID:K5JNT6u2
PythonとDの両方が、同時に選択肢に入ってくる状況なんてあまり無さそうだがな

84 :デフォルトの名無しさん:2015/02/27(金) 17:23:58.74 ID:iHoQTjKY
>>81
ライブラリが充実して実用的に使えるバージョンがない
複数組み合わせて使うとたちまち破綻する
比べる土俵が間違ってる

85 :デフォルトの名無しさん:2015/02/27(金) 18:00:21.53 ID:V3GT5Jyg
バージョンが変わって動かないなら自分で直せばいいじゃない

86 :デフォルトの名無しさん:2015/02/27(金) 18:17:54.33 ID:XIuqZzpl
他の言語に比べて、D言語でしかできない or ものすごくやりやすい ことってなによ?

87 :デフォルトの名無しさん:2015/02/27(金) 19:17:07.04 ID:mK3Wrb1I
自分がそうだけど継ぎはぎだらけのC++の汚さに絶望した人がやってるんだと思う
スマートなコーディングができるのにアセンブリコードが出力されるから
Javaやスクリプト系のように速度で妥協することもない

88 :デフォルトの名無しさん:2015/02/27(金) 19:22:04.02 ID:qLq7jEUd
C++で同じことできるって言われても意味ないんだよねえ。
単なる見せかけの機能だけに釣られてる奴はC++やってた方がいい。

89 :デフォルトの名無しさん:2015/02/27(金) 19:23:14.99 ID:mK3Wrb1I
ちょっと理解できてないのかな
C++よりスマートなコーディングができることに魅力を感じてるって話なんだけど

90 :デフォルトの名無しさん:2015/02/27(金) 19:28:30.17 ID:mK3Wrb1I
とりあえずバカはレスしない方がいいと思うんだ

91 :デフォルトの名無しさん:2015/02/27(金) 19:36:30.29 ID:6qk14JOo
>>88はお前に同意してるだろ

92 :デフォルトの名無しさん:2015/02/27(金) 19:50:40.22 ID:XIuqZzpl
>>87 >>89
たとえば?
C++ も 11, 14 で多少はマシになったと思うんだけど、
どの辺りが問題で、D言語ならどういうふうにスマートに書けるんだろう?

93 :デフォルトの名無しさん:2015/02/27(金) 19:58:54.66 ID:K5JNT6u2
>ライブラリが充実して実用的に使えるバージョンがない
?

94 :デフォルトの名無しさん:2015/02/27(金) 21:39:53.48 ID:PrbBT478
テンプレート絡みだけでかなり差別化できてるんじゃね
あと今更イテレータとか触りたくないよね

95 :デフォルトの名無しさん:2015/02/28(土) 00:25:57.89 ID:eZcrJ6fq
C++の偉い人もタイムマシン手に入れたら何したいって聞かれて
C++のテンプレート周りの構文をD言語風にしたいって言ってたな

96 :デフォルトの名無しさん:2015/02/28(土) 01:49:28.71 ID:2/mdATAK
D言語は気持ちよくプログラミングできるんだ

俺にとってのD使う理由はそれで十分

97 :デフォルトの名無しさん:2015/02/28(土) 02:14:47.96 ID:OQbzO6Hu
C++は気持ち悪いからな
関数ポインタとデリゲードが別物であった時点で俺の中では終わった。

98 :デフォルトの名無しさん:2015/02/28(土) 07:17:05.89 ID:dohjXiRJ
>>97
C++で統一できるなら、std::function<...> で統一すれば済む問題だろ?
DのデリゲードはCの関数ポインタに変換できるのか? 既存のC製ライブラリを使うときはどうするんだ?

99 :デフォルトの名無しさん:2015/02/28(土) 07:59:44.49 ID:MvLmnYM1
AOっても誰も教えてくれませんよ?

100 :デフォルトの名無しさん:2015/02/28(土) 10:26:19.86 ID:X4brU/QV
>DのデリゲートはCの関数ポインタに変換できるのか?
Dにも普通の関数ポインタがあるので、そちらを使う
まあデリゲートでも(cast(void function())dg.funcptr)とか出来る、もちろんキャプチャした変数は使えなくなるけど

101 :デフォルトの名無しさん:2015/02/28(土) 10:31:56.76 ID:X4brU/QV
訂正:dg.funcptrは既に関数ポインタなのでキャストは不要
当たり前だな、何を勘違いしてたんだろう

102 :デフォルトの名無しさん:2015/02/28(土) 10:32:47.26 ID:OQbzO6Hu
キャプチャなんてもんがある辞典でC++は消滅すべき

103 :デフォルトの名無しさん:2015/02/28(土) 10:41:51.15 ID:dohjXiRJ
>>100
C++もキャプチャ変数が無ければC関数ポインタとして渡せるから、似たようなものだね。
つまり >>97 は単に無知だったということだな。
>>102 も言葉通りだとナンセンスだが、「キャプチャ変数を明示する必要がある」という意味なら一理ある。

104 :デフォルトの名無しさん:2015/02/28(土) 12:34:31.63 ID:C0E19LHH
キャプチャ自体はなるほど、と思ったけど
キャプチャ周りの書式はもうちょっとどうにかならんかったかなと思う
初見のときはあまりの違和感に頭がしばらくぐよんぐよんした

105 :デフォルトの名無しさん:2015/03/01(日) 09:38:36.00 ID:OUJYb7d1
https://issues.dlang.org/show_bug.cgi?id=14213
S氏のバグ報告、これってProxyにtoHash付いたのが原因か
getHash(cast(const void*)a)としてるけど、delegateをconst void*にキャストするのがdeprecatedになった

106 :デフォルトの名無しさん:2015/03/01(日) 11:03:23.35 ID:aFT4GJSL
constなdelegateとかにいまだに違和感がある

107 :デフォルトの名無しさん:2015/03/01(日) 20:39:46.21 ID:OUJYb7d1
2.067マダァ-? (・∀・ )っ/凵⌒☆チンチン

108 :デフォルトの名無しさん:2015/03/01(日) 22:07:38.95 ID:H0vTWA+P
まだ RC も出てないよ
後1,2回ベータが出てからその後のはず

109 :デフォルトの名無しさん:2015/03/02(月) 04:53:56.17 ID:AZdlh9F+
始まる前に終わるのか

110 :デフォルトの名無しさん:2015/03/03(火) 18:26:41.34 ID:lY8jIC0A
>>96これ

111 :デフォルトの名無しさん:2015/03/04(水) 10:09:49.78 ID:FV6jzTFn
beta3
http://downloads.dlang.org/pre-releases/2.x/2.067.0/

112 :デフォルトの名無しさん:2015/03/04(水) 23:56:06.11 ID:FV6jzTFn
vibe.dの問題が解決できるまで2.067のリリースを遅らせるようだ

113 :デフォルトの名無しさん:2015/03/05(木) 01:37:44.30 ID:gwTnmSIO
D言語わくわく
http://next 2ch.net/tech/1425486862
       ↑
      ツメル

114 :デフォルトの名無しさん:2015/03/05(木) 02:08:06.26 ID:x1uxCIef
スパムみたいな書き方だな

115 :デフォルトの名無しさん:2015/03/05(木) 04:06:53.30 ID:n3NecQLR
punycodeでも検閲回避不能か

116 :デフォルトの名無しさん:2015/03/05(木) 09:52:56.19 ID:x1uxCIef
2.067ではGCが高速化したらしい

117 :デフォルトの名無しさん:2015/03/15(日) 12:30:14.94 ID:gUpehvCT
フォーラム見てるとWalterとAndreiに対してヘイトが溜まるなぁ
なんだこいつら

118 :デフォルトの名無しさん:2015/03/16(月) 00:49:17.06 ID:+bImnCtP
>>117
なんか横暴なことでもしてるの?

119 :デフォルトの名無しさん:2015/03/16(月) 08:22:23.11 ID:rfonf8fQ
別に横暴って訳じゃないけど、なんか他人を見下してる風なんだよな
自分たちと違う意見を持つ人間ってだけで馬鹿にするような返答や皮肉を繰り返してた時はちょっと引いた
特にWalterは何かにつけて「30年間プログラマをやってきた経験」とやらで他人の意見を蹴ったり、一方で都合が悪くなると返事しないので腹立つ

120 :デフォルトの名無しさん:2015/03/16(月) 10:32:44.07 ID:r187UUhH
>自分たちと違う意見を持つ人間ってだけで馬鹿にするような返答や皮肉を繰り返してた時はちょっと引いた

あるある
こういう態度からは何も生まれない

121 :デフォルトの名無しさん:2015/03/17(火) 11:46:22.59 ID:JR5CbamM
2.067RC 出た

122 :デフォルトの名無しさん:2015/03/22(日) 11:14:50.00 ID:GjqveEz/
やっとか

123 :デフォルトの名無しさん:2015/03/23(月) 09:50:52.33 ID:YJLz3rN2
FacebookがD言語を開発してるみたいな誤解を与えられたの、AAの目論見通りなのかな
実際はちょいと金貰っただけだし、業務ではほぼ使われてないとAAも言ってたし

124 :デフォルトの名無しさん:2015/03/26(木) 10:19:51.24 ID:jtu1q66h
正式リリース出たで

125 :デフォルトの名無しさん:2015/03/27(金) 10:32:23.05 ID:i1/0Dr4k
以前ここで見た気がするけど

dmd2.067(win32)でも、windows8.1 64bitで
以下が落ちる
---
size_t count;
scope(failure) count.writeln;
foreach (_; 0 .. 100) {
count++;
new byte[100_000_000];
}
---
13
core.exception.OutOfMemoryError@(0)

126 :デフォルトの名無しさん:2015/03/27(金) 22:14:20.45 ID:CTT/twdI
GC「それはな…ちゃうねん」


なんかGC作動オプションつけられるようになったっぽいから色々試してみたけど
どうやっても落ちるのな

127 :デフォルトの名無しさん:2015/03/28(土) 14:05:37.34 ID:1FIUchx6
PreciseGC にならないとダメ

非アドレスをはじけないから
デカいブロックを使用中と誤認したり無駄なスキャンも防げない

自前で malloc/free するか Win64使うか

128 :デフォルトの名無しさん:2015/03/28(土) 14:54:58.16 ID:1U0GdOh9
でかいJPEGファイルをロードしたくらいで引っかかる上に
外部ライブラリを使ってるから回避できなくてとても困る
やはり時代は@nogcか…

129 :125:2015/03/28(土) 14:55:17.12 ID:3c7jmW0j
いい加減、64bit環境を構築するかー
さんくす!
一応 delete で、不要と教えてあげれば落ちないけど
GCの意味ないなあとか思っていじってました

GC「要らないならいうてやー」

130 :デフォルトの名無しさん:2015/03/28(土) 15:40:21.32 ID:1FIUchx6
10-20MB以上のデカいブロックだけmalloc/freeするのがいい
GCに預けたやつを中途半端に手出しするのもあんまり

131 :デフォルトの名無しさん:2015/03/28(土) 15:42:10.46 ID:F7N+uTWP
GCの方がトータルで速いと主張してたのはなんだったんや・・・
つか、GC無しが有り環境に移行するのはまだしも、有りだったのが無しに移行するのって辛いよな

132 :デフォルトの名無しさん:2015/03/30(月) 13:07:23.56 ID:i+YJuxFC
D言語からC言語のヘッダファイルを読み込むにはどうしたらよいですか?
具体的にはwindows.hとかを読み込みたいです。
DirectXとかも使いたいのでC++用のCOMのヘッダも読み込みたいです。
D言語はライブラリが少ないし、
マイナー言語なので、ライブラリ提供者から公式なサポートが無いです。
そのため、C/C++用のライブラリをそのまま流用して使いたいです。
ヘッダファイルには、C/C++用のマクロなども定義してあるので、
D言語はC/C++の全機能をサポートする必要があります。
このために、DとC/C++を切り替えるスイッチが必要で、( 例えば extern C++{ } )
私が知りたいのはこの機能です。

133 :デフォルトの名無しさん:2015/03/30(月) 13:45:54.48 ID:yiQdteM4
原則:
・C/C++のヘッダを直接読むことはできず変換が必要
・DMDでWin32アプリを作る場合に限り、C/C++ののライブラリの変換も必要

大抵のライブラリはすでに変換済みのが用意されてるのでそれを使うだけ
Win32API -> http://www.dsource.org/projects/bindings/wiki/WindowsApi/
ゲーム用とかなら github/DerelictOrg が充実してる

134 :デフォルトの名無しさん:2015/03/30(月) 13:51:58.23 ID:yiQdteM4
いちおう公式のバインディング集 使ったことないからどのくらいあてになるかは知らない
https://github.com/D-Programming-Deimos

135 :デフォルトの名無しさん:2015/03/30(月) 23:00:53.68 ID:QPp3Flh2
wxDを使えている人に質問です。windows上でmingwからwxDをコンパイルしようとすると、wxWidgetsのコンパイルまでは成功したのですが
、wxDのコンパイルで以下のようなエラーがでます。
export PATH=/e/D/dmd2/windows/bin:/e/D/dm/bin:$PATH
export WXDIR=/e/D/wxWidgets-2.8.12
make
dmc -D__DMD__ -mn -g -o+none -D____ -D__WXDEBUG__ -Ie:/D/wxWidgets-2.8.12\inclu de -Ie:/D/wxWidgets-2.8.12\lib\dmc_lib\mswd -w- -I. -WA -DNOPCH -HP90 -Ar -Ae -HP99 -c -oaccel.obj accel.cpp
virtual ~name() \
^
local_events.h(49) : Error: storage class is illegal in this context
{ \
^
local_events.h(50) : Error: illegal constructor or destructor or invariant decla ration
ProcessEvent(e); \
^
local_events.h(52) : Error: undefined identifier 'ProcessEvent'
}
^
local_events.h(53) : Warning 18: implied return of name at closing '}' does not return value
void RegisterDispose(Virtual_Dispose onDispose) { m_onDispose = onDispose; } \
^
local_events.h(67) : Error: undefined identifier 'm_onDispose', did you mean 'on Dispose'?
virtual ~name() { m_onDispose(this); } \
^
local_events.h(68) : Error: storage class is illegal in this context
Fatal error: too many errors
--- errorlevel 1

--- errorlevel 1

--- errorlevel 1

136 :デフォルトの名無しさん:2015/03/30(月) 23:02:22.58 ID:QPp3Flh2
dmd 2.067.0, dmd 2.054
wxWidgets-2.8.12
wxd 0.16
dmd 2.067.0, 2.054どちらでもエラー内容は同じでした。何が問題なのでしょうか?

137 :デフォルトの名無しさん:2015/03/31(火) 00:23:32.12 ID:DLD3Q9u2
どう見ても C++ でコケてるんだが

138 :デフォルトの名無しさん:2015/04/05(日) 02:08:57.94 ID:i8c3cK/q
久しぶりにさわったらUFCSとかrangeとかイケてるやん、書いてて気持ちえ〜わ〜

139 :デフォルトの名無しさん:2015/04/08(水) 21:42:13.87 ID:QBLG8yia
replaceはstringとregexで被ってるのか

140 :デフォルトの名無しさん:2015/04/08(水) 22:47:53.09 ID:bms3DTdi
http://www.kmonos.net/alang/d/overview.html
>非仮想メンバ関数。C++では、関数がvirtualになるかどうかは クラスの設計者が前もって決定します。
>メンバ関数をオーバーライドすることにしたのに、基底クラスの方で改造を忘れる… というのは、
>よくある(けれども非常に見つけにくい)コーディングミスです。
>全てのメンバはvirtualにしておき、 オーバーライドが存在しないことをコンパイラが検知して非 virtual に変える、
>というアプローチの方が信頼性があります。

と書いてありますが、実際にどこまでそんな最適化が機能しますかね。
ローカルスコープでnewされたオブジェクトなら簡単に検地できますが、
メソッドの引数で渡されたオブジェクトや、
メンバ変数で保持しているオブジェクトに対して、
オーバーライドが存在しないことを、どこまで検地できるものなのでしょうか。
D言語はモジュール単位でコンパイルするので、
自分のモジュール以外で何が行われるかわからないのでは?

141 :デフォルトの名無しさん:2015/04/09(木) 05:18:11.14 ID:uR76CfxE
詳しくないのでさっぱりなのだがこっちにも
http://www.kmonos.net/alang/d/function.html#virtual-functions
>コード生成時にDはクラス階層を全て把握していますので、
>オーバーライドされていない関数への呼び出しは全て最適化されて non-virtual になります。
って自信満々に書いてあるね。

で、なんかそんな話題どっかでみたなあと思って探してみたが
http://hibari.2ch.net/test/read.cgi/tech/1293500945/300-303
別に結論出てなかった。
まあ「finalつけると速くなる」なら(今でも同じかは確認してないが)
可能であろうと、少なくとも真面目に実装はしてないんだろうね。

142 :デフォルトの名無しさん:2015/04/09(木) 09:23:07.96 ID:BNp5TkNs
virtual がキーワードとして追加された後しばらくして撤回されたのが最近の出来事

143 :デフォルトの名無しさん:2015/04/09(木) 18:19:45.10 ID:HK14cBmq
D言語のコンパイラで一番いいのは何ですか?

144 :デフォルトの名無しさん:2015/04/09(木) 19:55:59.27 ID:38RAslub
dmdしか使ってない俺にもdmdが最善ではなさそうなことはわかる

145 :デフォルトの名無しさん:2015/04/09(木) 21:10:41.59 ID:BNp5TkNs
コンパイルが最速でプロファイルもカバレッジもちゃんと動くdmdが最善でないとな?

win32/simd とか win64/seh とか足りないのはあるけど

146 :デフォルトの名無しさん:2015/04/10(金) 06:51:36.42 ID:uqc+UxkP
dmdのsimdってまだSSE2までしか対応してないのけ?

147 :デフォルトの名無しさん:2015/04/11(土) 15:44:58.43 ID:E/CwOvDs
D言語ってなんで流行らないんですか?

148 :デフォルトの名無しさん:2015/04/11(土) 17:32:39.43 ID:7fSRDMX5
ポストC++を目指してるんだけど
C++自体が使われてないから

149 :デフォルトの名無しさん:2015/04/11(土) 17:42:57.03 ID:u+ugD/Y+
俺が思うに、Cとソースレベルの互換を切ったのが不味かったな。
Cのヘッダが読み込めないんじゃ、生産性悪すぎ。
Cのライブラリを使おうと思っても、誰かがこっそりDに移植したのを使うしかない。
そんな怪しげなものは企業じゃ使いにくいわな。

150 :デフォルトの名無しさん:2015/04/11(土) 22:26:51.94 ID:BiO0sN0+
でもプリプロセッサみたいなXXXXXXなもの積んだら元の木阿弥だしなあ

151 :デフォルトの名無しさん:2015/04/12(日) 02:43:30.27 ID:XESAGs1Z
精度の高いhtodまだ?

152 :デフォルトの名無しさん:2015/04/12(日) 09:38:06.20 ID:y8PA+brm
C言語にはマクロがあるから難しいだろうね。
マクロとインライン関数とじゃ微妙に動作が違うし。
それを再現するのは難しいし、再現したらしたでDの人たちが怒る

153 :デフォルトの名無しさん:2015/04/12(日) 11:32:27.28 ID:E16OManC
他の言語に比べりゃマシ。
普通はC側からもグルーコードを書かないといけない。

154 :デフォルトの名無しさん:2015/04/12(日) 11:41:30.34 ID:kQPdUAS+
JNIとか死ねるし

155 :デフォルトの名無しさん:2015/04/12(日) 11:47:57.98 ID:UmUJTIj0
ライブラリ側の改造なしで普通にリンクできるってのは大きいなあ

156 :デフォルトの名無しさん:2015/04/12(日) 14:18:52.37 ID:y8PA+brm
でも、CのライブラリはC++からだと何の改造もなく普通に読み込めるし、
殆どのライブラリはC++から使われること「も」想定して書いてあるし。
ライブラリの公式なサポートがあるってのも大きいかと。
Dの宿敵は完全にC++なわけで、ここからシェア奪うの厳しくね?
しかも最近のC++はやたら高性能になってて、Dが圧倒的に優位といえるのは、
GCが有ることぐらいか。しかしDのGCは完全じゃないので、実際には開放できる領域を
見逃すことがあるらしい。>>125-127
しかもメモリを使えば使うほど、切迫していればいるほど、誤認の確率が高くなる。
本当にGCが必要な時ほど、GCが上手く動かなくなるという・・・。これはなんかおかしい。

まー一生C++使ってろって言われそうだが。

157 :デフォルトの名無しさん:2015/04/12(日) 17:59:43.09 ID:E16OManC
京大院卒の元日立社員ですらrust,go,nimとやってきたがDは目次で投げ出すほど難しいらしい

158 :デフォルトの名無しさん:2015/04/12(日) 21:04:55.27 ID:tlWGpnIJ
C++やってないのかよ

159 :デフォルトの名無しさん:2015/04/12(日) 21:27:54.60 ID:Kyho4V/V
そこであげられてる言語は比較対象になるのか

160 :デフォルトの名無しさん:2015/04/13(月) 17:54:24.16 ID:bnhydr1P
仕様書であるTDPLを入門書と間違えて買ったんだろうな

161 :デフォルトの名無しさん:2015/04/13(月) 19:57:56.23 ID:S0M+DdK2
D言語パーフェクトガイドの時代が来たようだな

162 :デフォルトの名無しさん:2015/04/14(火) 22:00:35.44 ID:TJwhWYq7
スマホアプリが作れれば流行るんじゃね?

163 :デフォルトの名無しさん:2015/04/14(火) 22:05:11.14 ID:NpitylM9
Visual D使ってる人に質問です。
Visual Dって標準ライブラリの予測変換でないんですか?

164 :デフォルトの名無しさん:2015/04/14(火) 22:38:44.42 ID:o5X1XXSP
>>163
入力補完できるよ

http://rainers.github.io/visuald/visuald/Editor.html

165 :デフォルトの名無しさん:2015/04/14(火) 23:57:41.21 ID:VlJAU5Jf
どうせ出てほしい時に出なくて
必要ないときに邪魔なポップアップが出るみたいな
お粗末なものにしかならないべ

言語設計レベルからそこまで考慮してないと

166 :デフォルトの名無しさん:2015/04/15(水) 18:59:26.48 ID:V49K0zxq
C#はforeach使うとGCが増えるらしいけど
Dはどうなの?

167 :デフォルトの名無しさん:2015/04/15(水) 21:22:05.40 ID:DNCbFPiX
Dってどこで学んだらいいんだ
dlang.orgしかない?

168 :デフォルトの名無しさん:2015/04/15(水) 22:20:50.17 ID:kuK1eeQu
https://gist.github.com/repeatedly/2470712
ここ読んで文法身につけて、
標準ライブラリは公式がそこそこわかりやすいからそれで。
(日本語訳はちょっと古いが、参考には十分なる)
んで、わからないことはここか、
最近はtwitterで#dlangのハッシュタグつけて質問するのも流行り。
自分も去年一度質問投げたら、一時間で三人から同じ解答来て震えた。

169 :デフォルトの名無しさん:2015/04/15(水) 22:50:13.61 ID:H6ZOKNFw
>>164
ありがとうございました。なんか出てきました。

170 :デフォルトの名無しさん:2015/04/16(木) 06:03:51.02 ID:3n63vngU
以前にC++とねんごろになれるうpあったとか見た気がしたけど、あれは幻覚だったのかこの流れ見ると

171 :デフォルトの名無しさん:2015/04/17(金) 08:38:36.34 ID:LOaAnlcG
namespaceに対応したり、C++側でインスタンス化されたテンプレートがDから使えるようになったんじゃなかったっけ?

C++ヘッダを直接import出来るようにするDコンパイラも開発されてるけど結構実用的ぽい
https://github.com/Syniurge/Calypso/blob/master/tests/calypso/libstdc++/vector/vector.d

172 :デフォルトの名無しさん:2015/04/17(金) 13:06:38.13 ID:n6u60MAl
>C++ヘッダを直接import出来るようにするDコンパイラも開発されてるけど結構実用的ぽい

あ、それいいね。てかそれしないと普及しないでしょ。互換性は大事。
COMとかもそもまま使えるようになるんかね。

173 :デフォルトの名無しさん:2015/04/21(火) 22:23:29.12 ID:k+lIUh1M
☆ 日本の核武装は絶対に必須ですわ。☆
http://www.soumu.go.jp/senkyo/kokumin_touhyou/index.html

☆ 日本国民の皆様方、2016年7月の『第24回 参議院選挙』で、改憲の参議院議員が
3分の2以上を超えると日本国憲法の改正です。皆様方、必ず投票に自ら足を運んでください。
私たちの日本国憲法を絶対に改正しましょう。☆

174 :デフォルトの名無しさん:2015/04/22(水) 16:58:34.80 ID:w0Yyg9N7
dsource.org もいよいよ廃止に向かう模様
使ってる人ほとんどいないだろうけど

175 :デフォルトの名無しさん:2015/04/22(水) 17:06:41.43 ID:QMLocF8n
ちなみに移住先は?最近D使ってないんでよくわからんけど

176 :デフォルトの名無しさん:2015/04/22(水) 17:25:07.03 ID:Atokf9a2
>>2のDUBに登録が最近の流行り

177 :デフォルトの名無しさん:2015/04/23(木) 15:06:10.81 ID:atwBzKak
ノイズが減るのは良いこと

178 :デフォルトの名無しさん:2015/04/23(木) 19:54:37.61 ID:g8/zXSRM
この言語
親クラスのprivate変数に継承先のクラスがアクセスできるじゃん

179 :デフォルトの名無しさん:2015/04/23(木) 19:58:37.29 ID:lZQ1F1hI
継承先のクラスが同一ファイル内にないか?
同一ファイル内のメンバは常にpublicだぜ

180 :デフォルトの名無しさん:2015/04/23(木) 20:23:40.71 ID:g8/zXSRM
まじかよ酷いな
ファイル=モジュールだからファイル分けるの面倒くさい

181 :デフォルトの名無しさん:2015/04/24(金) 06:25:45.44 ID:6TulMhAx
同一ファイル内にあるものは自動的にfriendだと思えばC++より便利だな

182 :デフォルトの名無しさん:2015/04/26(日) 21:31:40.36 ID:M02Af7kd
D2はまだ使用が固まってないからとうぶんの間は開発にはD1を使うことになるな

183 :デフォルトの名無しさん:2015/04/26(日) 23:49:43.65 ID:NpZzAF6y
1のことは忘れるんだ……。
2も最近は破壊的変更が少ないし、
どうしても仕様が固まってるものを求めてるなら別の言語のほうがいいよ。
少なくともD1を使っていいことは一つもないと思う。

184 :デフォルトの名無しさん:2015/04/27(月) 01:41:11.15 ID:nAsvEGea
じゃあC++使うかな
とは言えない雰囲気

185 :デフォルトの名無しさん:2015/04/27(月) 03:54:29.19 ID:3o/5kFDH
D1かC++かならまじでC++使えばいいと思うよ
雰囲気っていうか、まあ確かにC++使うならここで宣言する必要はないと思うけど

186 :デフォルトの名無しさん:2015/04/27(月) 07:50:54.32 ID:XqA1wgYz
意外なことにrustの方が言語とAPI仕様の安定化に積極的っぽい

187 :デフォルトの名無しさん:2015/04/27(月) 08:51:18.76 ID:ZDDsb7dY
明確なゴールもなくフワフワと手を広げるから収束しないんだよ

188 :デフォルトの名無しさん:2015/04/27(月) 19:40:18.02 ID:u+p+733x
effectivec++読んだ時点でc++を見限らない奴はセンス無い

189 :デフォルトの名無しさん:2015/04/27(月) 19:41:43.14 ID:JZyYoAVB
>>186
それここ1ヶ月くらいのことじゃね?
まあでもそういう姿勢を公式に明確にするのはいいことだ

190 :デフォルトの名無しさん:2015/04/30(木) 23:13:29.89 ID:DC2IuzKP
PCがオワコンになって一般人はスマホやアップルウォッチしかコンピューターを持たない時代が来るのに
Dを始めとするPCアプリ専用言語に未来はあるのか

191 :デフォルトの名無しさん:2015/05/01(金) 12:43:57.40 ID:ZnsZ9ufL
>>190
そもそも、一般人はプログラミングしていない。

192 :デフォルトの名無しさん:2015/05/01(金) 15:43:57.35 ID:VV0Lze55
サーバーサイドでも使われないとか終わってる

193 :デフォルトの名無しさん:2015/05/03(日) 12:05:34.37 ID:frUd71C/
>>192
Goで泥アプリ開発できるようになったし、PCから移行するにつれいろんな言語が泥とかアフォン
とかでも使えるようになる。

という妄想

194 :デフォルトの名無しさん:2015/05/11(月) 22:49:25.75 ID:umG0fBs5
Tcpを用いたサーバーアプリケーションを作成しています。
一つのSocketを処理するスレッドをspawnで起動しようとしたのですが、
"Aliases to mutable thread-local data not allowed." というエラーが出てしまいます。

Socketをスレッドのコンテキストとして渡す方法はありますか?

195 :デフォルトの名無しさん:2015/05/19(火) 19:36:36.05 ID:nbiNTEdK
sharedクラスに突っ込むとかかな

196 :デフォルトの名無しさん:2015/05/20(水) 14:35:43.34 ID:RjQMrwaX
enumのメンバの中からランダムに1つ取り出すにはどう書いたらいいですか?

197 :デフォルトの名無しさん:2015/05/20(水) 17:11:00.71 ID:VhPE5aVV
import std.stdio, std.traits, std.random;

enum E { Hard, Normal, Easy, }
auto lv = [ EnumMembers!E ];
lv[ uniform(0, 3) ].writeln();

198 :デフォルトの名無しさん:2015/05/20(水) 17:35:41.74 ID:RjQMrwaX
>>197
ありがとうございます。
std.traitsにenumのメンバの配列を作る機能があったんですね。

199 :デフォルトの名無しさん:2015/05/20(水) 19:21:10.83 ID:VhPE5aVV
あ、配列なんだからuniform(0, $)でよかった…。

タプルの配列化?みたいな

他にも関数の引数リストとか、構造体のメンバ変数を
タプルでとれたり、std.traitsは結構楽しい

200 :デフォルトの名無しさん:2015/05/23(土) 09:46:23.34 ID:LbQhEyX4
メンバにUDAを付加するだけで
文字列化やシリアライズのメソッドが自動or暗黙生成されるような
いい感じの小技はないかしら

201 :デフォルトの名無しさん:2015/05/23(土) 20:05:33.06 ID:T/VMnfch
static ifと文字列mixinを駆使すればなんでもできそう
コードはくっそ汚くなるけど…というかいくらなんでも汚すぎるので俺がなにか勘違いしてる

class Cls {
@getset(true, true) private string prop;
mixin Prop!(__traits(allMembers, typeof(this)));
}
struct getset {
bool get, set;
this (bool get, bool set) { this.get = get; this.set = set; }
}
mixin template Prop(Members...) {
static if (Members.length) {
mixin("alias Alias = " ~ Members[0] ~ ";");
static if (is(typeof(__traits(getAttributes, Alias)[0])==getset)) {
static if (__traits(getAttributes, Alias)[0].get) {
mixin("auto get_" ~ Members[0] ~ "() { return " ~ Members[0] ~ "; }");
}
static if (__traits(getAttributes, Alias)[0].set) {
mixin("void set_" ~ Members[0] ~ "(" ~ typeof(Alias).stringof ~ " value) { " ~ Members[0] ~ " = value; }");
}
}
mixin Prop!(Members[1..$]);
}
}
void main() {
import std.stdio;
auto cls = new Cls;
cls.set_prop("getset");
writeln(cls.get_prop()); // write "getset"
}

202 :デフォルトの名無しさん:2015/05/24(日) 19:07:17.52 ID:TlBS03PH
これいいなあ
それにしてもstatic foreachが欲しい…

203 :デフォルトの名無しさん:2015/06/13(土) 18:35:51.38 ID:GIDis6QW
>>190
そんなのは日本だけだぞ
海外ではPCとモバイルを使い分けるのが普通

204 :片山博文MZ ◆T6xkBnTXz7B0 :2015/06/17(水) 19:52:38.87 ID:/OO8ry8l
Dの簡単インストーラー作るぜ。アイデア募集。

205 :片山博文MZ ◆T6xkBnTXz7B0 :2015/07/03(金) 16:37:05.52 ID:Cj/+Kw22
DmInst ver.0.0を公開しました。
コンパイラーのDMCとDMDを簡単にインストールできるプログラムです。

http://katahiromz.web.fc2.com/dminst/

206 :デフォルトの名無しさん:2015/07/03(金) 16:45:04.27 ID:PTQIZZxq
苛寝

207 :デフォルトの名無しさん:2015/07/09(木) 00:26:47.91 ID:vgLfGCMi
std.experimental.allocator の vote 始まった

https://github.com/andralex/phobos/tree/allocator/std/experimental/allocator
http://erdani.com/d/phobos-prerelease/std_experimental_allocator.html

208 :デフォルトの名無しさん:2015/08/07(金) 01:19:25.71 ID:AOl5d/Q7
vote

209 :デフォルトの名無しさん:2015/08/11(火) 09:22:39.47 ID:JJHEPwAB
2.068

210 :デフォルトの名無しさん:2015/08/11(火) 21:22:49.65 ID:/rELv5XJ
AliasSeq を Alias Equal と読み間違ってしまうマン

211 :デフォルトの名無しさん:2015/08/20(木) 19:16:20.38 ID:6X6++Eio
お前らってeclipseのDDT使ってるの?

212 :デフォルトの名無しさん:2015/09/12(土) 04:06:34.44 ID:+P5YetMW
CTFE時に連想配列の値が上書きされてしまう。
http://dpaste.dzfl.pl/4daf8db6ce08

213 :212:2015/09/13(日) 01:16:43.63 ID:6EXYsBmd
>>212 がgithub版でもおきるかなー?と思ったんだけど、github版dmdをコンパイル中にエラーが出た。
内容は、「ソースに\r\nが含まれますよ」というもの。
出してるのは、dmd -run src/checkwhitespace.d の部分。
このツールは
1. \r\n がソースに含まれている場合。
2. インデントに\tを使っている場合。
3. 行末に不要な空白文字がある場合。
にエラーを出すようなんだけど、3はともかく、これで行くことに決まったのかな。
smart-tab派なんだけどなー。
あ、github版でも212は再現しました。

214 :デフォルトの名無しさん:2015/09/14(月) 08:11:30.88 ID:zHbMvpj8
dmdがDベースになるね

215 :デフォルトの名無しさん:2015/09/23(水) 01:15:09.12 ID:c39jTuOR
おまいらこれはなんでなんだぜ
http://dpaste.dzfl.pl/7fa1a12a8c4a

1. enum をクラスインスタンスで初期化できない→わかる。構造体でラップすると通る→?
2. 1. において、ラップされたクラスが mutable。

216 :215:2015/09/24(木) 17:04:49.35 ID:Q3uW0SwS
>>215 自己レスなんだけど、
1. https://issues.dlang.org/show_bug.cgi?id=11697
2. https://issues.dlang.org/show_bug.cgi?id=12385
なんだって。

217 :デフォルトの名無しさん:2015/09/26(土) 08:34:31.58 ID:58nZ62zg
This Week in D (英語)
http://arsdnet.net/this-week-in-d/

年初から続いてて筆者はDの入門書出版したりしてる

218 :デフォルトの名無しさん:2015/09/29(火) 09:14:53.57 ID:2BMWd/g5
2.068.2 出てた

ちなみに Win32-COFF が隠しオプション(-m32mscoff)で出来るようになってるので
OMF/optlink がイケてないと思っていた諸兄は試してみるがよいよいよい

219 :デフォルトの名無しさん:2015/10/04(日) 20:25:42.92 ID:fx9NWY8o
int arr[x][y][z];
これと同じメモリレイアウトでヒープに確保するにはどうすればいいですか?

220 :219:2015/10/04(日) 20:56:03.94 ID:fx9NWY8o
new int[x*y*z]でよかった。
問題なのはint[]のメモリへのアクセスをint[x][y][z]と同じようにする方法だった。

221 :219:2015/10/04(日) 20:59:30.10 ID:fx9NWY8o
自己解決。
[0][0][0],[0][0][1]...[0][1][0],[0][1][1]...の順番で並んでるだけだった。

222 :デフォルトの名無しさん:2015/10/06(火) 01:18:13.90 ID:4WYMUnp4
くっそ!
↓Manifest ConstantsのenumとAAのからみがおかしい。
http://dpaste.dzfl.pl/36ab529d6fc5c
↓CTFEで変数を修飾する方のscope class使うと abnormal termination
http://dpaste.dzfl.pl/8ad7e24e5d05

223 :デフォルトの名無しさん:2015/10/09(金) 21:58:55.85 ID:So4fPMkx
const class A { int a; this(int v) { a = v; } }
このクラスAを値に持つ連想配列を作りたいんだけど、

const(A)[int] hoge = [1: new const A(1)];
hoge[3] = new const A(3); // cannot modify const expression hoge[3]
みたいに、初期化はできても代入ができない。

A[int] hoge = cast(A[int])[1: new const A(1), 2: new const A(2)];
hoge[3] = cast(A)new const A(3);
てなふうにcastしたら回避できたけど、なんか美しくない。
typeof(new const A(1)).stringof == "const(A)" なのがおかしい気がするんだが。

224 :223:2015/10/09(金) 23:28:50.19 ID:So4fPMkx
書き込んでから思い出したけど、Rebindableとかできて結構経つしあきらめるしかない気がしてきた。

>>218 optlink死んでまうん?

225 :デフォルトの名無しさん:2015/10/10(土) 00:27:09.81 ID:MYHuAGIQ
const classとかscope classとかは今もまともに使おうと思えないね
普通のclass内でメンバをconstにするとかじゃないとまともに動く気しない

226 :デフォルトの名無しさん:2015/10/15(木) 18:54:50.42 ID:pJRyZOgY
nullではなく、空の連想配列で初期化するにはどうすればよいですか?

227 :デフォルトの名無しさん:2015/10/16(金) 08:36:04.34 ID:CAVKRc42
空の配列 == null なので無理

ただし空文字列 "" は例外 落とし穴になりがちなので注意

228 :デフォルトの名無しさん:2015/10/16(金) 13:11:04.24 ID:TDfNRPC3
ちょっと良くわかりませんが、D言語は空の配列すら作れないんですか?
不便ですね

229 :デフォルトの名無しさん:2015/10/16(金) 17:46:08.84 ID:ZZ3JoxKg
nullでない空ってなに

230 :デフォルトの名無しさん:2015/10/16(金) 17:54:55.90 ID:MCgyDKhx
a = {};

こんなのを期待してるのかな

231 :226:2015/10/16(金) 18:32:37.08 ID:+5uWvhRc
>>227-230 レスありがとう。やりたかったのはこういうことです。

string[string] buf;
auto buf2 = buf;
buf2["hello"] = "world";
buf.writeln; // > []

これと↓

string[string] buf = ["": ""];
buf.remove("");
auto buf2 = buf;
buf2["hello"] = "world";
buf.writeln; // > ["hello":"world"]

では結果が違うわけだけど、後半の上2行を初期化1行で書きたいな。
という話でした。

232 :デフォルトの名無しさん:2015/10/16(金) 19:36:08.03 ID:TDfNRPC3
結局どういうことなんですか?
Dでは空の配列を作れないんですか?
必ず何か入っていなければダメなんですか?
int[] a; って書けば空の配列になるんじゃないんですか?

233 :226:2015/10/16(金) 21:04:57.54 ID:+5uWvhRc
>>232
int[] a; で空の配列になりますよ。
226のは「連想配列」が俺にはややこしいっていう話です。

234 :デフォルトの名無しさん:2015/10/16(金) 21:47:10.30 ID:BcAfRt/g
>>231
string[string] buf = (a => (a.remove(""), a))(["" : ""]);

ところで、コンマ演算子を廃止しようとか言ってたのは自然消滅したのか?

235 :226:2015/10/16(金) 22:51:07.22 ID:GwISFyO6
>>234 ありがとうございます。ところでもっと基本的な疑問がわいたのですが、
>>231 の後半での、bufとbuf2の中身がずっと同じであるっていうのは、仕様で保証されてるんでしょうか?
Windows版dmd2.068.2では、1000個値を追加しても同じでした。

236 :デフォルトの名無しさん:2015/10/17(土) 09:05:55.54 ID:M7lcZRBS
>>231
バグっぽい removeしつくしたら null になってるはずなんだけど

237 :デフォルトの名無しさん:2015/10/17(土) 09:08:29.29 ID:M7lcZRBS
それに連想配列の内部実装は最近まで大きく書き換えられてて
動作の微妙な違いとかあるのでトリッキーなことは避けるべき

238 :226:2015/10/17(土) 22:20:49.79 ID:KpZ8gQf0
>>236-237 そうなんですね。書き換えます。ありがとうございます。

239 :デフォルトの名無しさん:2015/10/20(火) 00:01:18.64 ID:wy5QxwnK
リンクエラー。2.067.1では通ってた。
http://dpaste.dzfl.pl/255495e7489a
1. -m64 で
2. CTFEで実行されるラムダ内で定義されている
3. 配列をメンバに持つ構造体の
4. 配列のconcatを行う

240 :デフォルトの名無しさん:2015/10/22(木) 22:35:23.39 ID:WlXBpB56
↓CTFEでtoHash/opEqualsが効いてない。
http://dpaste.dzfl.pl/ec40b544f45d
CTFEはまだまだなかなかナヤマシイな! >>237 がらみかしらん。

241 :デフォルトの名無しさん:2015/10/28(水) 16:43:28.27 ID:w9dndjrH
D言語って、Javaみたいにソースファイル名とクラス名を同じにしてしまうと、
他のソースでクラス名のつもりで記述したものがパッケージ名扱いになってしまうため
Hoge.Hoge のように同じ名前を2回書かないとクラス名と解釈してくれないと思うのですが、
これを1回だけの記述で済ましたい場合、皆さんはどのように解決されているんでしょうか?
ソースファイル名を変えるのもmodule文で別名にするのも、何か違うように感じてしまいます。

242 :デフォルトの名無しさん:2015/10/28(水) 19:24:28.95 ID:9zUX3+we
モジュール名とファイル名は小文字
クラス名は大文字始まり
それでもカブるようなケースはパッケージを作るからまず困らない

243 :デフォルトの名無しさん:2015/10/29(木) 01:37:25.50 ID:0VE0VetC
>>241 D言語の命名規則に則れば >>242 の言うとおり。
ただ、どうしてもと言うならこんなんはいかがか。
http://dpaste.dzfl.pl/dce8977dacc7

えーと。やっぱ242で。

244 :デフォルトの名無しさん:2015/10/29(木) 10:25:47.23 ID:xCMI4xlR
>>242
なるほと確かにD言語の命名規則からするとモジュール名は小文字でしたね。
でも、どうしても大きなクラスは同名の一ソースにしたいのです‥すみません。

ところでパッケージで気付かせてもらったのですが、この問題って、
クラスのソースらをルート階層に置いているからこそ起きる問題なのですね。
というわけでディレクトリを一つ掘ってパッケージ下に配置することで一応解決しました!

ただ、パッケージ下にあるソースって module パッケージ名.モジュール名 の記述は必ず必要なのでしょうか?
module文の記述が無いとルートパッケージ下として格納されてしまうようで、
module文を普段省略していた身からするとちょっと面倒に感じています。
この辺りの挙動はjavaのpackage文の踏襲かなと思うのですが、
D言語ではパッケージはディレクトリに対応すると書かれているようなので、
module文を省略しても適切なパッケージに配置してくれて良いような?

>>243
おぉ‥改名選択importというやつでしょうか。確かにこれで通りました。
import _Hoge = Hoge : Hoge; という風に変換されるんですね。
import文までコンパイル時生成できるとは、D言語きm‥素晴らしいです。
ただこの書き方ではモジュール名変更リファクタリングの際にIDEが解析しにくい気がするので
(そもそもそこまでお世話してくれるIDEは現存しないようですけれど‥)、
取り敢えずは先のパッケージへの配置法でがんばってみます。
凄いものをありがとうございました。今後の困難の際に参考にします。

245 :デフォルトの名無しさん:2015/11/04(水) 15:13:08.14 ID:L5M/yopQ
dmd2.069.0

246 :デフォルトの名無しさん:2015/11/06(金) 23:00:00.73 ID:XSTiM1/K
Error: template std.algorithm.searching.countUntil cannot deduce function from argument types !()(int[11], int), candidates are:
こういうエラーが出たんですけど、countUntilに静的配列は使えないということでしょうか?

Error: template instance sort!((uint a, uint b)
あと、sortに無名関数を渡したらエラーが出ました。無名関数も使えないのでしょうか?

247 :デフォルトの名無しさん:2015/11/07(土) 11:16:15.31 ID:oYYknJv4
静的配列に対して popFront() が呼べない(初めて知った!)
だからレンジ系操作に対しては全滅に近い

ソートの方はそれだけじゃ分からんね
無名関数は使い方間違えた時にわかりづらい

248 :デフォルトの名無しさん:2015/11/07(土) 15:26:06.21 ID:k3hAw3NX
静的配列は要素数が変更できないからですか。
Rangeの要件を満たしてないとなると結構不便ですね。

sortはエラーメッセージがこの1行しか出ないんですよね。
シンプルな例でテストしたらコンパイルは通ったんですけど、他のコードが影響してるのかなぁ。

249 :デフォルトの名無しさん:2015/11/07(土) 22:04:33.49 ID:X4t7LIyp
固定長配列の全体のスライスを取って動的配列に見せかければ
ある程度のRange操作だったら固定長配列にもかけられるのでちょっと便利です

250 :デフォルトの名無しさん:2015/11/09(月) 04:06:00.73 ID:PiWCufYC
はあ、なるほど。

251 :デフォルトの名無しさん:2015/11/09(月) 04:09:17.37 ID:PiWCufYC
delegateのcovariane/contravarianceはなくなったんですかね

252 :デフォルトの名無しさん:2015/11/14(土) 10:33:38.52 ID:TuAUCuHQ
SortedRange!(R, ((a, b) => binaryFun!less(unaryFun!transform(a),
unaryFun!transform(b))))
schwartzSort(alias transform, alias less = "a < b",
SwapStrategy ss = SwapStrategy.unstable, R)(R r)
if (isRandomAccessRange!R && hasLength!R)
{ ... }

こんなの見ても揺らがないのが真のD言語er

253 :デフォルトの名無しさん:2015/11/14(土) 12:16:16.84 ID:AP01jWaC
真のD言語erはそんなに書いて(書かせて)もらえることに感謝する

254 :デフォルトの名無しさん:2015/11/14(土) 20:42:57.89 ID:uWuWWunU
デバッグ用に関数名を出力したいんですけど、関数名を取得する方法はあるでしょうか?
__FILE__や__LINE__みたいな感じのが欲しいです。

255 :デフォルトの名無しさん:2015/11/15(日) 00:26:31.44 ID:4YAQhy/L
標準入出力をフラッシュするにはどうすればいいですか?

256 :デフォルトの名無しさん:2015/11/15(日) 00:49:19.11 ID:DVr3HCs9
基本的には、DではCの標準ライブラリと同等の関数をほぼそのまま薄いラッパで提供しています

257 :デフォルトの名無しさん:2015/11/15(日) 01:23:34.60 ID:4YAQhy/L
dout.flush()ということですか。
writeln()に対応するものはないんでしょうか?

258 :デフォルトの名無しさん:2015/11/15(日) 02:08:17.69 ID:4YAQhy/L
stdout.flush()でできました。

259 :デフォルトの名無しさん:2015/11/15(日) 07:41:57.52 ID:ndJn5r2D
>>254
__FUNCTION__ も使える
日本語訳サイトは古すぎるから
英語サイトも必ず併用すべき

260 :デフォルトの名無しさん:2015/11/15(日) 14:56:12.51 ID:4YAQhy/L
>>259
関数名の取得もあったのですね。
英語苦手だけど見ないとだめですね。

261 :デフォルトの名無しさん:2015/11/15(日) 15:01:11.74 ID:4YAQhy/L
自作のプログラムを実行すると毎回同じ場所でobject.Error: Access Violationが発生します。
エラーとは関係なさそうな修正(stderr.writeln()を増やしたり減らしたり)をするとエラー発生の場所が変わったり、
InvalidMemoryOperationErrorに変わったりします。
エラーの原因がさっぱり分からないんですけど、どういうことが考えられるでしょうか?

262 :デフォルトの名無しさん:2015/11/15(日) 15:29:26.30 ID:r8bNQIop
リーク

263 :デフォルトの名無しさん:2015/11/15(日) 16:21:30.07 ID:4YAQhy/L
GCのある言語でメモリリークとなると、どういうケースがあるのか想像がつかないです。
エラー発生の場所も変わるので謎です。

264 :デフォルトの名無しさん:2015/11/15(日) 17:04:42.06 ID:PV6fOtMt
GCのリーク以外に
確保してない場所に書き込むのもリークって言わない?

265 :デフォルトの名無しさん:2015/11/15(日) 17:07:38.68 ID:lu/bgS1P
こマ?初めて聞いたその結び付け
リーク=解放処理漏れ 以外の認識ないわ

266 :デフォルトの名無しさん:2015/11/15(日) 17:19:50.76 ID:4YAQhy/L
newする前のクラスのインスタンスの関数を使ってAccess Violationが出たことは過去にありますね。
しかし、今回はちゃんとnewされているし、1回目の呼び出しでエラーが発生してるわけでもないんですよね。
そして>>261で書いたようにstderr.writeln()を追加するだけでエラー発生のタイミングが変わるので難解です。

267 :デフォルトの名無しさん:2015/11/15(日) 18:08:15.11 ID:PV6fOtMt
初期化してない変数でアクセス

268 :デフォルトの名無しさん:2015/11/15(日) 18:39:09.01 ID:ndJn5r2D
AVならばぬるぽか RangeErrorか deleteの間違い
-g -debug してないんかいな

InvalidMemoryOperationError 
ならばデストラクタの中で何か変なことしてる疑い

デストラクタの中でdeleteとかしちゃダメダメよ〜

269 :デフォルトの名無しさん:2015/11/15(日) 18:44:09.41 ID:zgz009B6
似たことなったことあるなあ。なんやったか。
templateとかmixinがらみで依存関係見落としててobjの更新忘れとか。

270 :デフォルトの名無しさん:2015/11/15(日) 19:02:33.53 ID:4YAQhy/L
すみませんReleaseビルドになってました。
DebugビルドにしたらRangeErrorになりました。

271 :デフォルトの名無しさん:2015/11/15(日) 19:09:44.01 ID:PV6fOtMt
報告乙

272 :デフォルトの名無しさん:2015/11/19(木) 16:51:28.76 ID:I2rQS35X
char *hoge[] = new char *[N];
scope(exit) free(hoge.ptr);
とするのと
char **hoge = cast(char **)(new char *[N]);
scope(exit) free(hoge);
とするのとでは同じ動作が期待出来ますか?

あとガベコレを期待するなら
scope(exit) free(hoge.ptr);

scope(exit) free(hoge);
もどちらも不要ですか?

273 :デフォルトの名無しさん:2015/11/19(木) 23:48:30.24 ID:kWkiLP1L
色々とカオス(感想)
C : malloc/free
C++: new/delete

D : new/[destroy]
GCがあるので解放は不要だが、領域が不要になったことをdestroyで明示してもよい
ただしdestroyで領域が即時解放されるわけでなく、GCが必要に応じてよしなにやる
C++のdeleteと区別するために、destroyになった(想像)
---
auto hoge = new int[][N]; // int型の動的配列をN要素もてる動的配列(二次元配列)
foreach (elem; hoge)
elem = new int[色々]; // ジャグ配列も可能
// 以下は不要(してもよい)
foreach (elem; hoge)
destroy(elem);
destroy(hoge);
---
GCを使わずmalloc/freeすることも一応可能
(今だと、std.experimental.allocatorを使うべき?)
newしたものをfreeすることに保証はないと思う、知らんけど

274 :デフォルトの名無しさん:2015/11/20(金) 01:05:01.96 ID:gniDkGmv
× foreach(elem; hoge)
○ foreach(ref elem; hoge)

275 :デフォルトの名無しさん:2015/11/20(金) 10:48:03.85 ID:LnAg0HCn
ありがとうございます!!

276 :デフォルトの名無しさん:2015/11/20(金) 22:50:35.51 ID:KMWFgUCm
クラスのstaticメンバ関数で、継承先の型って見られますか?

class Base {

static T[] takusanMake(T)(int n) { //Hogeから呼んでT=Hogeがほしい
T[] ret = new T[n];
foreach (ref e; ret) {
e = new T;
}
// ... Baseのフィールドしかいじらないような設定 ...
return ret;
}

}

class Hoge : Base {
}

void main() {
//Hoge
auto hoge = Hoge.takusanMake(30);
}

内容はともかく、大体こんな感じのことをしたいです
Baseから派生したクラスで定義するとか、ちゃんと!(Hoge)してもいいんですが、
(this T)を見てから何か方法があるような気がしてきて・・・

277 :デフォルトの名無しさん:2015/11/21(土) 13:20:00.57 ID:1cOWOBSi
staticなメンバ関数からは、thisは見えないので
UFCS前提でいっそ外部に出して
===
import std.stdio;

class Base {}
class Hoge : Base {}
class Other {}

T[] takusanMake(T : Base)(lazy T d, int n) {
auto ret = new T[n];
foreach (ref e; ret) {
e = d();
}
return ret;
}

void main() {
auto hoge = (new Hoge).takusanMake(30);
typeid(hoge).writeln;
// Baseに暗黙変換できない型はNG
//auto other = (new Other).takusanMake(30);
}
===
こういうのはどうだろう
(もっといい方法ありそう。。)

278 :デフォルトの名無しさん:2015/11/21(土) 14:42:18.71 ID:8z9xCqW5
Hoge という型と Fuga という型があって

Hoge[Fuga] hage;
という連想配列は定義できるみたいなのですが

Any という任意の型があるとして
Any[Any] moge;
みたいな連想配列は作れますか?

279 :デフォルトの名無しさん:2015/11/21(土) 14:47:56.80 ID:8z9xCqW5
ちなみに
["A": "B", "C": 3, 4: "E"]
みたいなのを作りたいのです

280 :デフォルトの名無しさん:2015/11/21(土) 15:28:20.57 ID:8z9xCqW5
Object[Object] moge = ["A": "B", "C": 3, 4: "E"];

これでだめでした orz

281 :デフォルトの名無しさん:2015/11/21(土) 22:31:38.28 ID:jpeEJ7vY
import std.variant;
auto moge = [Variant("A"): Variant("B"), Variant("C"): Variant(3), Variant(4): Variant("E")];
とかいうダサい感じのしか思いつかない。

282 :デフォルトの名無しさん:2015/11/21(土) 23:35:17.00 ID:BXVotCtM
>>277
確かにもう外に出してしまう方がいいかもしれないですね
外に出すことは考えてなかったのでもうちょっと考えてみます

283 :デフォルトの名無しさん:2015/11/22(日) 12:23:27.44 ID:rXOpUu6m
>>278
型付き言語に喧嘩売ってんのか

284 :デフォルトの名無しさん:2015/11/22(日) 12:42:54.55 ID:rXOpUu6m
>281
ダサくてよければ

Variant[Variant] constructor(T...)(T plist){
Variant[Variant] result;
foreach(ref p; plist) result[new Variant(p.keys[0])] = new Variant(p[p.keys[0]]);
return result;
}
Variant[Variant] moge = constructor(["A": "B"], ["C": 3], [4: "E"]);

試してないけど

285 :デフォルトの名無しさん:2015/11/22(日) 18:10:01.30 ID:K6EhBG35
引数が1個ずつ別のAAになってる…?
きもちわるすぎる

286 :デフォルトの名無しさん:2015/11/22(日) 18:34:22.00 ID:uPJ5yBy3
import std.variant;
import std.stdio;

Variant[Variant] makeTable(T...)(T p) {
static assert(T.length%2 == 0);
Variant[Variant] t;
foreach (i, ref v; p) {
static if (i%2 == 0) {
t[Variant(p[i])] = Variant(p[i+1]);
}
}
return t;
}

void main() {
auto t = makeTable(1, 2, "hoge", 123.2);
writeln(t);
}

287 :デフォルトの名無しさん:2015/11/22(日) 19:32:11.41 ID:QPIcOg4c
>>280
http://dpaste.dzfl.pl/2879b11f3fec
ま、やっぱロクなことにはならんわなあ。

288 :287:2015/11/22(日) 19:46:28.38 ID:QPIcOg4c
やっぱコード追加で。連投御免。
http://dpaste.dzfl.pl/19cc3ea3bd0d

289 :デフォルトの名無しさん:2015/11/23(月) 14:44:46.01 ID:5yZmzCJ8
mixin使ったら負けな感じ半端ない

290 :デフォルトの名無しさん:2015/11/23(月) 23:06:50.39 ID:zlo1l7ot
やろうとしてること自体闇魔術臭いしわりと妥当なのかもしれない

291 :デフォルトの名無しさん:2015/11/24(火) 12:03:53.42 ID:Dj+m8Q01
>>284>>286 ってどちらもコンパイル時に
解決された型変換のコードが生成されるのですか?
つまり前者も後者も実行時の速度パフォーマンスは同じですか?

292 :デフォルトの名無しさん:2015/11/25(水) 00:37:26.01 ID:euvQfHeH
>>291
どんなコードが生成されるか知らないのでベンチとって見た結果
http://dpaste.dzfl.pl/85212474e9f0
281: TickDuration(3595337)
284: TickDuration(9347285)
286: TickDuration(4128184)
288: TickDuration(3554533)

293 :デフォルトの名無しさん:2015/11/26(木) 17:49:18.83 ID:yeqvnwwH
Dでcomのclientを書こうとして付属のサンプルソースを試したら動作しました

wshサーバーをdispatchしてEcho('hoge')みたいなポップアップを出したいのですが
サンプルをどのように書き直せばよいのですか

294 :デフォルトの名無しさん:2015/11/26(木) 17:58:08.82 ID:yeqvnwwH
途中まで書いたコードです
extern (Windows) HRESULT CLSIDFromProgID(const wchar *, CLSID *);
const string wsh = "WScript.Shell";
interface IWSH : IUnknown {
extern (Windows) int Echo();
}
DWORD dwVer = CoBuildVersion();
HRESULT hr = CoInitialize(null);
hr = CLSIDFromProgID(wsh.toUTF16z(), &clsid);
IWSH pIWSH;
hr = CoCreateInstance(&clsid, null, CLSCTX_ALL, &IID_IUnknown, &pIWSH);
// FAILED(hr)の判定コードは省略していますがここまでは動作しているようです
// pIWSHに値は入っているようですが次の場所でAccessViolationします
pIWSH.Echo();
CoUninitialize();

pIWSH.Echo(); の行をコメントアウトすると何も起きませんが正常に完了します
あと
&IID_IUnknown
のところを
&IID_IDispatch
に書き換えてもだめでした

295 :デフォルトの名無しさん:2015/11/26(木) 21:43:51.54 ID:FqPwpLUO
>>294
ちょっとまだよく分かってなくてEcho呼んでも何も起きなかったけど、
PopUp呼べたので参考になりますか?
http://dpaste.dzfl.pl/15f1655e540e

296 :デフォルトの名無しさん:2015/11/27(金) 08:55:22.81 ID:H96QzFnR
>>294
IDLとかタイプライブラリとか見ずに静的バインディングしようとしてる
普通は中間ヘッダを入手するかツールで生成する
C++で一度やったことがないとダメ

ちなみに >>295 は動的バインディング

297 :デフォルトの名無しさん:2015/11/27(金) 09:52:51.69 ID:c/N8jVfb
>>294
WScript.Shell に Echo は無いよw

298 :デフォルトの名無しさん:2015/11/27(金) 10:48:43.15 ID:Og1YQ9Di
>>297
うっかり勘違いしてました

標準のinterfaceから継承する方法ですが
interface IWSH : IUnknown { // add vtbl to define as IDispatch
extern (Windows) HRESULT GetTypeInfoCount(UINT *);
extern (Windows) HRESULT GetTypeInfo(UINT, LCID, REFIID);
extern (Windows) HRESULT GetIDsOfNames(REFIID, LPOLESTR *, UINT, LCID, DISPID *);
extern (Windows) HRESULT Invoke(DISPID, REFIID, LCID, WORD, DISPPARAMS *, VARIANT *, EXCEPINFO *, UINT *);
}
にして
hr = CoCreateInstance(&clsid, null, CLSCTX_ALL, &IID_IDispatch, &pIWSH);
したら
後は >>295 さんと同じように PopUp("Hage") を Invoke 出来ました
ほんとうにありがとうございました

299 :デフォルトの名無しさん:2015/11/27(金) 11:49:41.82 ID:c/N8jVfb
質問です。
SysTime st = Clock.currTime();
writefln("%s", st.toISOExtString());
writefln("%s", st.toISOString());
の動作で末尾の小数点以下の数字 (hnsecs) が
7桁になるときと6桁になるときがあるみたいです。

先頭の 0 が表示されないケースがあると思ったのですが
通常の '年月日T114500.1234567' 以外に
'年月日T114500.0123456' は表示されました。
ところがたまに '年月日T114500.123456' と表示されることがあります。
つまり '年月日T114500.0123456' なのか '年月日T114500.1234560' なのか判りません。
hnsecs==0 のときにこのパターンがあるみたいなのですがみなさんのところはどうですか?
DMD32 D Compiler v2.063.2
です。

300 :デフォルトの名無しさん:2015/11/27(金) 11:52:34.38 ID:c/N8jVfb
ちょっと紛らわしいので一部訂正します。

x 小数点以下の数字 (hnsecs) が
o 小数点以下の数字 (total hnsecs) が

x hnsecs==0 のときにこのパターンが
o msecs==123, usecs=456, hnsecs==0 のときにこのパターンが

301 :デフォルトの名無しさん:2015/11/27(金) 14:33:53.29 ID:gmvL3Mcs
"年月日T114500.123456" == "年月日T114500.1234560"じゃないの?

302 :デフォルトの名無しさん:2015/11/27(金) 15:13:20.37 ID:c/N8jVfb
なるほど小数点以下だから末尾の0は除かれるんですね。
7桁だと思って決め打ちしない方が良いですね。

303 :デフォルトの名無しさん:2015/11/27(金) 15:16:44.79 ID:c/N8jVfb
Duration d = hoge - fuga;
d.total!"msecs", d.total!"usecs", d.total!"hnsecs" を使うことにします。

304 :デフォルトの名無しさん:2015/11/28(土) 10:52:50.96 ID:BU0Z8dtz
python の __getattr__
ruby の method_missing
javascript の __noSuchMethod__
みたいなものを期待して
D で同じようなものが有るかどうか検索したら
http://forum.dlang.org/post/op.usipp0mij5j59l@my-tomato
というやりとりが見つかりました
そこのサンプルをコンパイルしようとしたのですがエラーになります
D で opDotExp ってどう使うんですか?

305 :デフォルトの名無しさん:2015/11/28(土) 11:37:36.45 ID:3W8Apw0w
opDispatch()

ただし型のコントロールは引数とか名前付けとか工夫して自前で面倒を見る必要がある

306 :デフォルトの名無しさん:2015/11/28(土) 17:00:55.36 ID:OpEOTh0X
ないですね

307 :デフォルトの名無しさん:2015/11/29(日) 18:45:48.60 ID:DyLnKIJJ
import std.stdio;

class Hoge {
void opDispatch(string s)() {

308 :デフォルトの名無しさん:2015/11/30(月) 20:34:23.05 ID:SJumDZBl
有賀d

309 :デフォルトの名無しさん:2015/11/30(月) 20:43:06.11 ID:SiMJvgO4
IDispatch で
auto xl = Dispatch("Excel.Application");
xl.Visible = true;
auto workbooks = xl.Workbooks;
まではうまく逝くのに
auto book = workbooks.Add();
で Access Violation してしまう
何が間違ってるんだろう

310 :デフォルトの名無しさん:2015/12/01(火) 02:22:06.91 ID:Zh0/OJc/
Excel持ってないんであれだけど、Workbooksが返すのはコレクションらしいよ。
https://msdn.microsoft.com/ja-jp/library/aa288625%28v=vs.71%29.aspx
https://msdn.microsoft.com/en-us/library/microsoft.visualbasic.collection.add%28v=vs.90%29.aspx
とか見るに、Add()はリストに追加しますよってメソッドじゃね?

311 :デフォルトの名無しさん:2015/12/01(火) 08:39:45.47 ID:yW8K+bhB
Add がデフォルト引数を持ってるけど引数明示したらどうなるかな
ぐぐったら xlFileFormat 列挙型 とか出てくる

312 :デフォルトの名無しさん:2015/12/01(火) 20:10:30.52 ID:9BYkXgQy
a.unknownproperty = hoge;
みたいなのも opDispatch!"unknownproperty"(Args args...) で書けますか?

313 :デフォルトの名無しさん:2015/12/01(火) 23:55:05.63 ID:LyUKVfDv
http://dpaste.dzfl.pl/1d06a7cd8d37
こういうこと?

314 :デフォルトの名無しさん:2015/12/02(水) 04:01:42.11 ID:53wnCEvY
ちょっと違う気がしますが
なんとなく方向性はわかりました

315 :デフォルトの名無しさん:2015/12/02(水) 05:34:41.55 ID:53wnCEvY
さっきから変な現象になりました
windows10 なのですが
import std.stdio;
int main(string[] args)
{
writefln("@");
return 0;
}
だけのファイルを d_opDispatch.d というファイル名で保存して
dmd -run d_opDispatch.d を実行しても何も表示されないので
dmd d_opDispatch.d を実行して出来た d_opDispatch.exe を
cmd.exe から実行すると UAC のポップアップが出ていることがわかりました
そのまま許可すると別の cmd.exe が開かれてその中で @ が出力されています
また d_opDispatch.exe を test.exe に rename したら UAC は出なくなりましたω
それで test_opDispatch.exe にするとまた UAC が出たので
test_op_Dispatch.exe とか op_Dis_patch.exe とか試したのですが
この二つも UAC が出てきますω
また test.exe に戻したら普通に動くようになりました
ソースのときのファイル名は関係ないみたいなので
dmd -oftest.exe -run d_opDispatch.d
でとりあえず解決は出来てるんですけど何なんですかねこれ
windows10 のブラックリストに登録されちゃってるんですか?ω
それともうちだけですか?

316 :デフォルトの名無しさん:2015/12/02(水) 05:39:16.56 ID:53wnCEvY
opDis_patch.exe もだめです
名前変えるだけで動かなくなります orz

317 :デフォルトの名無しさん:2015/12/02(水) 06:03:46.07 ID:J+Rb91dQ
UACのインストーラ自動判定によるものだね
http://sceneryandfish.withnotes.net/?p=1632

318 :デフォルトの名無しさん:2015/12/02(水) 08:37:40.95 ID:nn4vPBry
実行ファイル名で必要権限が変わるという余計なお世話なアレか

319 :デフォルトの名無しさん:2015/12/02(水) 19:11:19.07 ID:7L3lrCLQ
>>317
横からですがありがとう

320 :デフォルトの名無しさん:2015/12/03(木) 01:03:51.80 ID:8SmBlBH8
Dのenumってどうなってんの?
名前付きだけA.B.Aとかできるのがわけわからん
http://dpaste.dzfl.pl/99ffb64db405

321 :デフォルトの名無しさん:2015/12/03(木) 01:25:39.08 ID:y1qNQeGi
名前付きenumが普通に想像するようなenum
名前なしenumは常時インライン展開されてデータセクションに出力されないconstもどき、じゃなかったっけ

その上で 型.メンバ の形で使えるプロパティは 変数(定数).メンバ の形でも使えるというだけのような気がする

322 :デフォルトの名無しさん:2015/12/03(木) 01:51:22.50 ID:2XsySS+x
>>321
なるほど、(名前付き)enumが型という認識が不足してたのか
それなら各要素自体はprivateじゃないからアクセスもできて当然なのかな
ありがとう

323 :デフォルトの名無しさん:2015/12/04(金) 09:37:05.62 ID:prxSfFNA
auto hoge(T...)(T args){ return args[0] ; }
みたいな関数があるとき

呼び出し側で
auto fuga = hoge();
で呼ばれたか
auto fuga = hoge;
で呼ばれたか
どちらなのかを呼ばれた側で区別出来ますか?

324 :デフォルトの名無しさん:2015/12/04(金) 11:41:34.38 ID:qnfnKzej
たぶん無理
それにその辺りの仕様はふらついているので
今の仕様で組んでも後でダメになる可能性がある

325 :デフォルトの名無しさん:2015/12/04(金) 15:12:03.13 ID:prxSfFNA
call と get と set を実装して dispatch する目論見だったんですが
PyObject だと get と call の区別が微妙なんです

326 :デフォルトの名無しさん:2015/12/04(金) 15:29:35.37 ID:eLJR6e6w
DWT(https://github.com/d-widget-toolkit/dwt)を試しているのですが
Drag and Drop のサンプル(snippetxx.d)が全く見つからないので
SWT(http://www.eclipse.org/swt/snippets/#dnd)を取ってきて試すも
cannot cast expression event.data of type object.Object to string
のコンパイルエラー、cast じゃダメなので何がしかの変換が必要らしい

で、DWT の Drag and Drop はこんな感じで
動かしてるよ〜という情報をお持ちの方おしえてくださいませm(_ _)m

327 :デフォルトの名無しさん:2015/12/04(金) 16:03:35.97 ID:u0bQfuw3
ここはみた?
https://github.com/d-widget-toolkit/org.eclipse.swt.win32.win32.x86/tree/master/src/org/eclipse/swt/dnd

328 :デフォルトの名無しさん:2015/12/04(金) 18:01:46.27 ID:5R2qZuA/
2.069.2でDelimited Strings内にASCII以外があると怒られるよぅ
q"EOS
日本語 ← Error: character 0xa5 is not a valid token
EOS"

329 :デフォルトの名無しさん:2015/12/04(金) 18:39:04.25 ID:qnfnKzej
2.069の文字列処理で日本語入ってるときの挙動が変わって往生した

330 :デフォルトの名無しさん:2015/12/05(土) 11:43:03.20 ID:pK0sc289
>>324
とりあえず呼び出し側で
auto fuga = hoge.unknownmethodcall([]);

auto fuga = hoge.unknownproperty;
で区別することにしたらうまく別けられました
ところが今度は
hoge.unknownproperty = hage;
で代入しようと hoge class 内で
void opDispatch(string propertyname, T)(T arg){
}
と setter を定義したのですが
hoge.unknownmethodcall([]);
の方まで setter に奪われるようになってしまいました

331 :デフォルトの名無しさん:2015/12/05(土) 23:07:38.68 ID:IGesALUR
getterのopDispatchの戻り値を構造体でラップするとか。
http://dpaste.dzfl.pl/e089dbd99093

332 :デフォルトの名無しさん:2015/12/06(日) 13:00:28.84 ID:OHUYOsyJ
ああテンプレートで呼び分けるんじゃなくて
全部まとめて一ヶ所で受けて if で分けるんですね
参考になります
ありがとうございます

333 :デフォルトの名無しさん:2015/12/07(月) 22:12:53.36 ID:yUJmRPdi
import std.process;
で pipeProcess とか spawnProcess とか使えるのは判ったのですが
windows で win32api の CreateProcessAsUser とか CreateProcessWithLogonW
に相当することが実行可能なモジュールはありますか?

334 :デフォルトの名無しさん:2015/12/07(月) 22:30:26.17 ID:ka6hrItk
標準では最低限のAPIしかないので
自分でポーティングするか拾ってくるかしましょう

335 :デフォルトの名無しさん:2015/12/07(月) 22:42:24.23 ID:yUJmRPdi
thx!

336 :デフォルトの名無しさん:2015/12/09(水) 01:01:38.90 ID:Iqk5klbT
linuxで7zip.soのbindingを書こうとしています。7zipのC++側のIUnknownが
struct IUnknown
{
STDMETHOD(QueryInterface) (REFIID iid, void **outObject) PURE;
STDMETHOD_(ULONG, AddRef)() PURE;
STDMETHOD_(ULONG, Release)() PURE;
#ifndef _WIN32
virtual ~IUnknown() {}
#endif
};
このように宣言されているのですが、Dのinterfaceでデストラクタを宣言できなくて困っています。
超その場しのぎとして、DのIUnknownの宣言のReleaseの後にダミーのメソッドを、
・2個追加することでC++で実装されたinterfaceをDから呼び出すことが、
・1個追加することでDで実装されたinterfaceをC++から呼び出すことが、
それぞれできたのですが、とてもまともな解決策とは思えません。
どうすべきでしょうか。

337 :デフォルトの名無しさん:2015/12/09(水) 06:33:38.56 ID:wRgo2YTq
クソして寝ればいいと思うよ

338 :デフォルトの名無しさん:2015/12/09(水) 09:39:07.56 ID:3EPxHLPC
7zip
http://www.kmonos.net/alang/wnd/topics/winapi.ja.html
ここの最後

339 :デフォルトの名無しさん:2015/12/09(水) 10:05:46.43 ID:IXqPU77s
winじゃなくてlinuxでやりたいみたいよ
一晩寝たら 空のデストラクタなんていらなかったんや
って気づくかもしれない

340 :336:2015/12/09(水) 18:59:13.67 ID:bSTrBSEY
>>337-339 クソして寝ましたが、仮に空(とはいえvirtual)のデストラクタがまるで無意味だったとしても、
bindingの体をとっているのでp7zip側のコードを変えるのはちょっと。
むしろvtblのズレが336程度の単純さならばソレで行くかと。
気になるのはDから呼ぶ場合とC++から呼ぶ場合の非対称性ですが、こういうもんなんですか?

341 :デフォルトの名無しさん:2015/12/09(水) 19:32:29.57 ID:sRhtlXMa
C++ネイティブの呼び出しっていつから「ちゃんと」できるようになったんですか?(小声)

342 :336:2015/12/09(水) 20:30:12.63 ID:bSTrBSEY
あ、非対称っていうのは勘違いだったかもごめ。
http://dpaste.dzfl.pl/4e7956f36a47
これで解決や!どうもありがとう!
>>341 WindowsでCOMを使った7zipのbindingはもっとすんなりいきましたよ。

343 :デフォルトの名無しさん:2015/12/10(木) 12:53:37.73 ID:gg94mj0B
Dで書かれた2chブラウザって何かあったっけ

344 :デフォルトの名無しさん:2015/12/11(金) 10:36:51.24 ID:Q/bqtNpc
振りかな?

345 :デフォルトの名無しさん:2015/12/11(金) 11:05:46.98 ID:DzIPXkfp
http://qiita.com/advent-calendar/2015/dlang
Advent Calendar 2015
まだ若干の空席がございます

346 :デフォルトの名無しさん:2015/12/11(金) 16:50:35.23 ID:W1u3sjBk
http://qiita.com/advent-calendar/2015/d-man
こっちのほうが盛り上がってる感じでちょっと笑う

347 :名無しさん@そうだ選挙に行こう:2015/12/14(月) 11:06:28.62 ID:baKxaSGv
自分のクラス(Fuga)を定義していて string へ変換するときに
Fuga f("hage");
string hoge = f;
みたいな書き方をしたいのですが
どんなメソッドを作っておけば良いのですか?

348 :名無しさん@そうだ選挙に行こう:2015/12/14(月) 11:07:18.65 ID:baKxaSGv
Fuga f = new Fuga("hage");
string hoge = f;
です

349 :名無しさん@そうだ選挙に行こう:2015/12/14(月) 14:25:36.75 ID:ilKRKXII
class Fuga {
private string s_;
this(string s) { s_ = s; }
alias s_ this;
}

350 :名無しさん@そうだ選挙に行こう:2015/12/14(月) 14:30:09.48 ID:baKxaSGv
alias s_ this; とは驚きですが

Fuga f = new Fuga("123");
int i = f;
としたときでも i に 123 が入るようになりますか?

条件後出しですみません

351 :名無しさん@そうだ選挙に行こう:2015/12/14(月) 14:33:32.26 ID:baKxaSGv
ちなみに

Fuga f = new Fuga("123");
string s = f; // なら s = "123"; と同じ
int i = f; // なら i = 123; と同じ

という意味です
これも alias だけで出来てしまうんでしょうか?

352 :名無しさん@そうだ選挙に行こう:2015/12/14(月) 15:09:08.43 ID:2JSVZtRY
そういうのはたいてい変数に移して終わりじゃなくて、その先があるでしょ
例えば関数に渡すならその関数をテンプレートでうまくまとめるのが D流
単に出力するだけなら writeln(f)

353 :名無しさん@そうだ選挙に行こう:2015/12/14(月) 17:11:34.59 ID:reTGASBb
ここを参考に
http://www.kmonos.net/alang/wnd/topics/winapi.ja.html
Win32API を使って drag & drop を実装してみたところ
case WM_DROPFILES: の中で

HDROP dr = cast(HDROP)wp;
TCHAR[] buf = new TCHAR[MAX_PATH];
int l = DragQueryFile(dr, 0, buf.ptr, buf.length);
if(l < buf.length) buf[l] = 0;
string bs = to!string(buf[0..l]);
version(Unicode){
writefln("0: %s", to!string(bs.toMBSz()));
string name = bs;
}else{
writefln("0: %s", bs);
string name = fromMBSz(bs.toStringz());
}
writefln("1: %s", name);

とすると
drag & drop したファイル名が 「森鷗(環境依存文字2)外��(環境依存文字3)る.ext」 のとき
最後の name の表示が -version=Unicode したときとしないときで結果が違います
toMBSz と fromMBSz とで不可逆なのは判るのですが
MBSz -> UTF8 するときも結果が違うのは何故でしょうか?
(ただし表示は違うのですが同じファイルが対象になってちゃんと動作します)

354 :名無しさん@そうだ選挙に行こう:2015/12/14(月) 17:23:00.56 ID:reTGASBb
文字化けしてるので補足

環境依存しない方の文字はこちらです
森鴎外叱る

2 鷗外

3 ��る

がそれぞれ環境依存文字です
この辺が関係ありそうなのですが fromMBSz のバグなのか何なのかよく判りませんでした
https://msdn.microsoft.com/ja-jp/library/cc419800.aspx
http://download.microsoft.com/download/B/0/9/B09F266D-8D54-4476-A3EC-E974CA5F61F8/BS_303.pdf

355 :デフォルトの名無しさん:2015/12/14(月) 21:06:28.36 ID:uspa+zNB
>>351
Multiple AliasThisを使えば可能
もちろんコンストラクタ内で変換して保持とかする必要はあるけど



……なので実装されるのを楽しみに待っててくれよな!

356 :デフォルトの名無しさん:2015/12/15(火) 04:33:41.61 ID:iPeNyqfl
>>353 SHIFT-JISに含まれてない文字だから仕方ないとおもわれ。
DragQueryFileAの方ではかわりに 63(ASCIIのハテナマーク)が送られてきてる。
A付関数のことなんて早く忘れるんだ!

357 :デフォルトの名無しさん:2015/12/15(火) 09:35:34.07 ID:GmzcEDm2
string valueOf(){ return s_; }
int valueOf(){ return to!int(s_); }
alias valueOf this;

358 :デフォルトの名無しさん:2015/12/15(火) 09:37:35.44 ID:GmzcEDm2
>>356
不思議なのは *A バージョンの方でも正常に動作してるって所なんだよね

359 :デフォルトの名無しさん:2015/12/15(火) 09:57:14.35 ID:ax++RPg4
上は Utf16->Utf8->SJIS で余計な変換してるからじゃないの

360 :デフォルトの名無しさん:2015/12/18(金) 01:01:03.51 ID:fYXmJuMp
>>358
A版の内部処理でことごとく文字化けしてるから
文字化けしたファイル名がマッチするせい

361 :デフォルトの名無しさん:2015/12/18(金) 17:04:11.83 ID:mbvyIjbK
>>360
わたしもそう思ったんですが
出来上がった hoge.7z ファイルの中の
ファイル名は文字化けしておらず正常なんです

362 :デフォルトの名無しさん:2015/12/20(日) 01:09:48.99 ID:VpDH1DV/
>>361
?が1文字マッチのワイルドカードってのは関係してない?

363 :デフォルトの名無しさん:2015/12/20(日) 11:01:49.72 ID:8RLYRFXT
>>357
出来ました
ありがとうございます

364 :デフォルトの名無しさん:2015/12/20(日) 17:10:30.71 ID:uT5SbDNR
あれ、戻り値だけ違う関数ってオーバーロードできたっけ?

365 :デフォルトの名無しさん:2015/12/21(月) 12:10:28.67 ID:ayhLnjzU
宣言はできるけど使えない
左辺値から型推論とかしてくれると嬉しいんだけどね

366 :デフォルトの名無しさん:2015/12/21(月) 14:13:11.66 ID:1HvlxK+M
T valueOf(T)(){ return to!T(s_); }
これもうまくいかんな

367 :デフォルトの名無しさん:2015/12/22(火) 23:01:04.25 ID:RP62Thfp
明示cast必須になるけど
T opCast(T)(){ return s_.to!T; }

368 :デフォルトの名無しさん:2015/12/23(水) 08:52:41.01 ID:2F8TsTF+
alias hoge this; しなくてよくなるからありがたいね

369 :デフォルトの名無しさん:2015/12/23(水) 10:13:41.06 ID:1VnhNGH+
明示的キャスト滅すべし

370 :デフォルトの名無しさん:2015/12/26(土) 10:10:16.02 ID:PvF8tuZ2
みなさん良いお年を

371 :デフォルトの名無しさん:2015/12/26(土) 12:41:22.97 ID:yhjxl89x
D言語話題ないの?

372 :デフォルトの名無しさん:2015/12/26(土) 13:55:49.41 ID:Y1V4v3Og
Advent Calendar面白かったよ。
書いた人たち乙です。

373 :デフォルトの名無しさん:2015/12/26(土) 17:44:23.06 ID:OqNeHPOm
冬休み中にAdventCalendarゆっくり読む
楽しみだなあ。書いた人たち乙〜。

374 :デフォルトの名無しさん:2015/12/27(日) 16:08:22.48 ID:xwOrDqSJ
Voting For std.experimental.ndslice
http://forum.dlang.org/thread/nexiojzouxtawdwnlfvt@forum.dlang.org

そろそろ投票終わり

375 :デフォルトの名無しさん:2016/01/04(月) 12:10:44.32 ID:bFE828K2
https://github.com/D-Programming-Language/dlang.org/commit/77324039087e9283f40244195857c2f9fd4712eb#diff-59280080f58c2ff747f066c5b0b2fcebL423
- $(LI As a first programming language - Basic or Java is more suitable
+ $(LI As a first programming language - Python or JavaScript is more suitable

時代の流れを感じる
Basicの方が初めてのプログラミングには良いと思うんだがなぁ

376 :デフォルトの名無しさん:2016/01/04(月) 18:59:05.97 ID:uh/Y4MEw
BASICは害悪

377 :デフォルトの名無しさん:2016/01/04(月) 19:11:18.78 ID:SQWKaGiq
まあ妥当と思う。Basicって括りがざっぱだけど、
(N-88とかそういう)BASIC → まあやらんでええやろ。行番号とか。ねえ?
VB → PowerShellが出てシリスボミ感がある。
Python → 個人的にはtkinterの存在がでかい。
JavaScript → すぐ遊べる。すぐ自慢できる(←重要
あとは英才教育的な観点からならプログラミンとか?

378 :デフォルトの名無しさん:2016/01/05(火) 13:16:14.19 ID:L7c5HugA
時代は Elixir ですよ
D でもいいけど
すぐ自慢できるのは Python だろ

379 :デフォルトの名無しさん:2016/01/05(火) 13:36:42.75 ID:Woj1scU2
インデントを間違えて恥をかくのが Python

380 :デフォルトの名無しさん:2016/01/05(火) 22:00:16.80 ID:aZwzN0+G
BASICといったらbload

381 :デフォルトの名無しさん:2016/01/14(木) 17:59:53.06 ID:vRAUMBFP
std.experimental.yesnogc
http://forum.dlang.org/post/n76qh9$2hlo$1@digitalmars.com

おなまえ募集

382 :デフォルトの名無しさん:2016/01/15(金) 15:37:05.03 ID:2/bjUIYj
std.experimental.yeslolitanotouch

383 :デフォルトの名無しさん:2016/01/16(土) 10:21:44.91 ID:CPZavs1f
64bitのWin32対応DLL作りたいんだけど?

384 :デフォルトの名無しさん:2016/01/16(土) 15:12:02.78 ID:CPZavs1f
それぞれ微妙に主張が違う気がす
https://gist.github.com/repeatedly/2470712
https://dlang.org/dmd-windows.html (-m64)
http://wiki.dlang.org/Installing_DMD_on_64-bit_Windows_7_(COFF-compatible)
http://www.ku6.jp/report/65.html
http://stackoverflow.com/questions/2376816/how-well-does-d-support-64-bit

385 :デフォルトの名無しさん:2016/01/16(土) 15:55:41.85 ID:qeKxK5Cv
>>383
http://wiki.dlang.org/Win32_DLLs_in_D
ここのmydll.dの64bit版なら
dmd -m64 -shared

386 :デフォルトの名無しさん:2016/01/16(土) 15:57:39.55 ID:qeKxK5Cv
あれ途中で切れた。
dmd -m64 -shared mydll.d dll.d mydll.def

387 :デフォルトの名無しさん:2016/01/16(土) 16:12:25.40 ID:qeKxK5Cv
>>384 それぞれ書かれた時期が違うんじゃまいか

388 :デフォルトの名無しさん:2016/01/16(土) 16:31:09.62 ID:eTAXMCcj
DMD で単純な x64 バイナリを作るところまでは行けてるんでしょ?
Win32 DLL も作れるんでしょ?
x64 で Win32 App と結合できるかって話でしょ?
出来ないと思うけど

389 :デフォルトの名無しさん:2016/01/16(土) 18:04:51.96 ID:w507ceUH
ブリッジ役のDLLも用意して64<-->32間をプロセス間通信でうんたらかんたら

390 :デフォルトの名無しさん:2016/01/22(金) 17:45:10.29 ID:tiw7VxmH
>>336
> DのIUnknownの宣言のReleaseの後にダミーのメソッドを、
> ・2個追加することでC++で実装されたinterfaceをDから呼び出すことが、
> ・1個追加することでDで実装されたinterfaceをC++から呼び出すことが、
> それぞれできたのですが、とてもまともな解決策とは思えません。

https://issues.dlang.org/show_bug.cgi?id=15589#comment_text_0
やっぱりダミーを追加するしかないらしい

391 :336:2016/01/22(金) 20:16:27.79 ID:6NMzASC5
わぁ!どうもありがとう!まだ書きかけ&お粗末ですが、その時の成果物です。
https://github.com/garlic-flavor/D7z
ツッコミ/プルリクお待ちしております。m(_ _)m

392 :デフォルトの名無しさん:2016/01/22(金) 22:46:33.96 ID:ph7VTr94
いつのまにか公式が改装してた
なんかすごくプログラミング言語の公式ページっぽい

393 :デフォルトの名無しさん:2016/01/25(月) 22:17:17.47 ID:bhSAv5/D
/r/programming 見てるとほぼ毎日Dの記事があって、ついに時代がきたか感がある

394 :デフォルトの名無しさん:2016/01/27(水) 00:28:20.96 ID:KSmE0N2z
scope(exit)はスコープ抜けるときに実行されるけどさ、
呼び出し元のスコープ抜けるときに実行されるような処理を書く方法って存在しないのかな

例えば
foo(){
  hoge();
}
で、hoge()の定義内に書いてfoo()の最後に実行されるようなやつ

395 :デフォルトの名無しさん:2016/01/27(水) 00:56:43.14 ID:0fSZRkm9
そんなんバグの地雷原やがな

396 :デフォルトの名無しさん:2016/01/27(水) 01:33:09.39 ID:EmUF4YzU
部品化の概念を否定するその硬派な姿勢、俺は評価するよ

397 :デフォルトの名無しさん:2016/01/27(水) 01:46:23.73 ID:KSmE0N2z
事故解決。mixinという道具があったではないか

398 :デフォルトの名無しさん:2016/01/27(水) 05:55:19.47 ID:mt1RyfFz
>>394-396
scoped型をhogeが返せばいいんじゃね、って思ったけど
もうscoped型って無くなったんだっけ?

399 :デフォルトの名無しさん:2016/01/27(水) 09:42:58.44 ID:PS/Qpp4W
呼び出し元で scope(exit)

400 :デフォルトの名無しさん:2016/01/27(水) 23:58:59.71 ID:W8pZv3Sr
std.datetime.measureTime がそんなんだったような。

401 :デフォルトの名無しさん:2016/01/28(木) 12:36:28.83 ID:U7RHxiIq
2.070

402 :デフォルトの名無しさん:2016/01/28(木) 15:55:14.52 ID:AP1O7sAh
もう2.070か早い

403 :デフォルトの名無しさん:2016/01/28(木) 23:48:56.81 ID:tnawcIV/
core.sys.windowsのナカミがおきかわっとるー\(・∀・)/

404 :デフォルトの名無しさん:2016/01/29(金) 00:16:04.81 ID:iqnom6tW
>>328 なおった!

405 :デフォルトの名無しさん:2016/02/01(月) 11:49:31.71 ID:C4njzqYk
もしかしてdmcって64bitのコンパイルオプションないの?

406 :デフォルトの名無しさん:2016/02/01(月) 12:03:33.19 ID:gmWomOLn
ないっしょ
16bit ならまだあるかもしれない
それに optlink まで含めると 32 ですら騙し騙し使ってる状況

407 :デフォルトの名無しさん:2016/02/02(火) 23:16:29.97 ID:N0vbs9wX
今さらだけどD用のお勧めのGUIライブラリある?
マルチプラットフォームで。

408 :デフォルトの名無しさん:2016/02/03(水) 11:18:15.33 ID:Drvvyslw
>>407
お勧めはDWT
対抗はDlangUI

DWT http://qiita.com/sfujita/items/18bd56ae505c4b3de7b3
DlangUI http://qiita.com/namachan10777/items/5a792bc1ac93ce1ccb1c

409 :デフォルトの名無しさん:2016/02/03(水) 12:53:31.69 ID:5/pxQ4tU
wxD

410 :デフォルトの名無しさん:2016/02/03(水) 13:07:25.53 ID:uEOUJl1K
自分でメンテする気があれば正直どれでもいいし
そうじゃなければ D でGUIなんて考えないほうがいい

411 :デフォルトの名無しさん:2016/02/03(水) 15:13:27.73 ID:IpVTmFVK
LDCからEmscripten通してHTML5にでも変換したほうがいいんじゃない?(適当)

412 :デフォルトの名無しさん:2016/02/03(水) 15:49:20.75 ID:5/pxQ4tU
時代は io.js + Electron ですねわかります

413 :デフォルトの名無しさん:2016/02/03(水) 19:08:22.05 ID:JdStCQ++
ぜんぜんわからない

D普及のために、できるだけわかりやすく情報を提供してください。切に望みます

414 :デフォルトの名無しさん:2016/02/03(水) 19:10:01.79 ID:JdStCQ++
Cのインタフェースがていきょうされていれば、利用できる
これが鍵なんだろうけど、初心者むけではない

415 :デフォルトの名無しさん:2016/02/03(水) 19:11:50.36 ID:JdStCQ++
DWTは、マルチプラットフォームではないのでは?

416 :デフォルトの名無しさん:2016/02/03(水) 19:15:47.11 ID:JdStCQ++
わからんわからんわからんわからんわからんわからんわからんわからん

417 :デフォルトの名無しさん:2016/02/03(水) 20:44:42.00 ID:NLGo/bvc
自分は何がしたいのか、何ができなかったのか
情報がなければ答えようもなかろう

418 :デフォルトの名無しさん:2016/02/03(水) 23:06:56.80 ID:mzIeyrY+
わからんわからんわからんわからんわからん

419 :デフォルトの名無しさん:2016/02/04(木) 01:50:12.30 ID:jp6x7PMB
>>408
DlangUI、結構良さそう
使ったことある人いたら感想聞きたい

420 :デフォルトの名無しさん:2016/02/04(木) 15:18:46.80 ID:wiwVjChn
>>408
dクス
やっぱDWTが定番かー
DlangUI、最初のmixinが美しくないなぁ・・・・・・(笑)

>>409
あれ、Dの利点あんまりないですやん><

421 :デフォルトの名無しさん:2016/02/04(木) 17:17:07.59 ID:ob+62gtm
DでwrapしたPythonObjectでwxPython使ったら意外と便利だったな

422 :デフォルトの名無しさん:2016/02/05(金) 19:27:30.79 ID:HabP63UN
DFLがマルチプラットフォームになれば文句ないんだがなぁ

423 :デフォルトの名無しさん:2016/02/05(金) 21:20:24.44 ID:hmTKeVMY
どうしてもマルチプラットフォームが必要なら
HTML5 でどうにかする方が現実的

424 :デフォルトの名無しさん:2016/02/06(土) 20:54:27.15 ID:2Uy/PFwr
もう仕様固まってきて大きな動きないのにサードパーティのライブラリが整備されないのは
Dが今まで積んできた業かな

425 :デフォルトの名無しさん:2016/02/07(日) 18:20:11.44 ID:eIUfmNby
これからに期待します

426 :デフォルトの名無しさん:2016/02/08(月) 17:21:11.18 ID:LpGg46bP
Oh my

427 :デフォルトの名無しさん:2016/02/08(月) 18:04:50.88 ID:M0j0fnEJ
Oh my D-lang, Oh my D-lang,
Oh my D-lang Clementine.

428 :デフォルトの名無しさん:2016/02/13(土) 18:13:48.32 ID:tVuFpQtK
単にユーザが少ないんじゃね

429 :デフォルトの名無しさん:2016/02/13(土) 20:34:35.13 ID:OlzkmTVA
ライブラリが整備されないのはなぜ? ユーザーが少ないから
ユーザーが少ないのはなぜ? ライブラリが整備されないから

430 :デフォルトの名無しさん:2016/02/13(土) 20:41:50.43 ID:tVuFpQtK
パワフルなユーザが少ないのかな……うん

431 :デフォルトの名無しさん:2016/02/15(月) 18:05:56.16 ID:+caJiYS4
コンパイル時にテキスト読み込んでさ、
行数の数だけ文字列mixinして関数作りたいんだけど
任意回数の文字列ミックスインのループってどう書くんだろう・・・・・・。

432 :デフォルトの名無しさん:2016/02/15(月) 18:13:18.59 ID:TvNTryet
仕様変更しすぎたな

433 :デフォルトの名無しさん:2016/02/15(月) 18:53:15.56 ID:8Os0TVn8
>>431
先に文字列加工して最後にまとめてミックスイン出来ないのん?

434 :デフォルトの名無しさん:2016/02/15(月) 19:14:52.44 ID:Dah95cUu
LDC 0.17リリースおめでとう。

https://github.com/ldc-developers/ldc/releases/tag/v0.17.0

本家に追いつくまであと少し。

435 :デフォルトの名無しさん:2016/02/15(月) 19:20:06.77 ID:8Os0TVn8
本家に追いつくのは無理だから mingw で動くように戻しておくれ

436 :デフォルトの名無しさん:2016/02/15(月) 20:48:59.61 ID:RiiAF+b/
ここ1, 2年くらい大した仕様変更ないような

437 :デフォルトの名無しさん:2016/02/15(月) 21:17:10.53 ID:NUVEFX4y
>>436
過去に仕様変更し過ぎたせいでD言語=仕様変更っていう認識が一般に広まったせいじゃね?

438 :デフォルトの名無しさん:2016/02/15(月) 22:47:40.09 ID:obZmlxnC
>>431
mixin template loop(string s,r...){mixin(s); mixin loop!(r);}
mixin template loop(string s){mixin(s);}

439 :デフォルトの名無しさん:2016/02/16(火) 16:56:10.74 ID:qagv5yy3
信用は一度失うと取り戻すのは困難ってことさね

D言語について少しでも調べてもらえば今そうでないのはわかることだから、
D言語を知らない人がD言語に触れる機会を増やす・・・
つまりD言語で書かれた一般向けアプリがもっと出ればいいわけだ

よし!あとはまかせたぞ!

440 :デフォルトの名無しさん:2016/02/18(木) 12:23:28.05 ID:S96kZ0X7
もう Julia でいいような気がしてきた
手遅れかもな

441 :デフォルトの名無しさん:2016/02/19(金) 13:09:30.63 ID:Ap7HgcUx
http://www.tiobe.com/index.php/tiobe_index
少し人気出てきた

442 :デフォルトの名無しさん:2016/02/19(金) 13:59:24.31 ID:hw/X0Y/j
簡単過ぎて調べなくても判ってしまう言語だと人気が無いことになるな

443 :デフォルトの名無しさん:2016/02/19(金) 18:48:50.77 ID:3Pzm9drf
D言語って名前のイメージが悪くなっちゃってるからD++とかに変えよう

444 :デフォルトの名無しさん:2016/02/19(金) 20:15:44.55 ID:unMO5CFj
求められているのは D-

445 :デフォルトの名無しさん:2016/02/20(土) 14:46:25.61 ID:X13YwWkx
マイナスなんか要らないわ

446 :デフォルトの名無しさん:2016/02/20(土) 16:07:27.61 ID:WzAGBuRR
D#

447 :デフォルトの名無しさん:2016/02/21(日) 10:34:55.98 ID:zmvsu5mb
>>440
exeはnativeなDの足元にも及ばない

448 :デフォルトの名無しさん:2016/02/21(日) 22:57:01.53 ID:satROU6m
D未満はおっぱいと呼ばない

449 :デフォルトの名無しさん:2016/02/22(月) 02:56:00.48 ID:gsexe38f
D†

450 :デフォルトの名無しさん:2016/02/22(月) 12:16:25.94 ID:Y1bHL8fN
D<0

451 :デフォルトの名無しさん:2016/02/27(土) 03:16:45.72 ID:GUJ5wO/X
iota(-10,1)やrecurrence!(q{ -n })(0)がintになるのに
sequence!(q{ -n })だけuintで負の値を使えないんですがこれって何か理由があるんですかね?

452 :デフォルトの名無しさん:2016/02/29(月) 00:18:12.07 ID:zsA7yhFD
>>451 ソース見た感じ、
recurrence!(q{-n})(0) は 0 の型とってる→int
sequence!(q{-n}) は -n の型とってる、ここで n の型は size_t → size_t
ってことみたい。

453 :デフォルトの名無しさん:2016/02/29(月) 07:53:56.99 ID:9aTNra24
 alias compute = binaryFun!(fun, "a", "n");
 alias ElementType = typeof(compute(State.init, cast(size_t) 1));
で、nにcast(size_t)1を入れてsize_tになってるんですね
単に気になっただけなんですけど

454 :デフォルトの名無しさん:2016/02/29(月) 15:44:30.93 ID:iGEmA67j
配列の中の最大値を探すときって普通どうやるんでしょうか

enum arr = [3, 1, 4, 1, 5, 9, 2];

aliasSeqOf!arr.max.writeln; // 要std.metaなのと定数でないとダメ
arr.minPos!

455 :デフォルトの名無しさん:2016/02/29(月) 15:52:25.48 ID:iGEmA67j
なんか途中で切れた
minPosとか使ってるんですが、しっくりこなくて

456 :デフォルトの名無しさん:2016/02/29(月) 16:26:00.44 ID:VNz3PeoZ
>>454
std.algorithm使って関数型っぽく

arr.reduce!max.writeln;

457 :デフォルトの名無しさん:2016/02/29(月) 22:57:05.78 ID:6Vt2kK/P
リデュースリユースリサイクル♪

458 :デフォルトの名無しさん:2016/03/01(火) 00:52:26.74 ID:joyDtek2
LDC 1.0αでとる。

459 :デフォルトの名無しさん:2016/03/01(火) 21:04:14.81 ID:s5WMaGjg
void hoge(T)(out T t) {...}

uint x;
hoge(x); // コンパイル通る
int[] arr;
hoge(arr.length); // コンパイルエラー(Error: template hoge cannot deduce function from argument types !()(uint), candidates are:)

arr.lengthでエラーが出るのはどういう理屈なんですか?

460 :デフォルトの名無しさん:2016/03/01(火) 21:12:38.53 ID:oyuxQPKV
arr.lengthが右辺値を返すから?

461 :デフォルトの名無しさん:2016/03/01(火) 21:23:46.68 ID:CYOvNsDD
out が付いてるなら当然としか

462 :デフォルトの名無しさん:2016/03/01(火) 21:26:20.10 ID:CYOvNsDD
いや、ひょっとして length のセッターを呼んで欲しい…?
流石に無理なんじゃ

463 :459:2016/03/01(火) 22:02:04.13 ID:s5WMaGjg
arr.length = 0とかできるから普通の変数と同じように考えてました。
hogeに渡す時に、ただの右辺値のuintとして評価されるってことですね。

464 :デフォルトの名無しさん:2016/03/01(火) 22:18:28.05 ID:BG2OG/pG
できてもいいとは思うけどな
内部的には一時変数が作られるとかで

465 :デフォルトの名無しさん:2016/03/02(水) 03:05:50.56 ID:S8FWiipj
もしlengthをいじりたいなら深く考えず
void nobasu(T)(ref T[] arr) {
 arr.length ++;
}
とかでいいんじゃ?

466 :459:2016/03/02(水) 21:10:33.37 ID:Py15QFNz
lengthをいじりたいというより、out引数を持つ関数を使いたかったんですよね。
なのでこうしました。
uint lenght;
hoge(length);
arr.length = length;

467 :454:2016/03/07(月) 16:09:07.92 ID:KpyO6Zd7
>>456
reduce!maxか!
遅くなりましたが、ありがとうございました。

468 :デフォルトの名無しさん:2016/03/07(月) 16:22:17.87 ID:nbAKle/L
遅い、遅すぎる
時代は既に reduce から fold に変わろうとしているのに

469 :デフォルトの名無しさん:2016/03/07(月) 17:38:25.23 ID:hzTv2Fg2
とはいえまだマージされただけでリリースはされてないし
内部でreduce使ってるから無くなることはないだろうけどな

470 :デフォルトの名無しさん:2016/03/07(月) 21:13:14.18 ID:ZACCB8Ww
struct S { int[] arr; }
S s1;
...
S s2 = s1;

構造体のデフォのコピーコンストラクトを使った場合、メンバarrはシャローコピーされますよね?
ディープコピーしたい場合、コピーコンストラクタを書き換えるか、ディープコピー用のメンバ関数を書く方法が思いつきますけど、
もっと手軽な方法はないでしょうか?

471 :デフォルトの名無しさん:2016/03/07(月) 22:22:23.50 ID:hzTv2Fg2
前者はpostblitを指してるんだと思うけど、すでに十分手軽じゃね?
this(this){arr=arr.dup;}

ところでマニュアルによればpostblitは初期化時の話らしいけど、代入時にも呼ばれるのは何故だ

472 :デフォルトの名無しさん:2016/03/07(月) 22:31:36.23 ID:ZACCB8Ww
>>471
構造体なのでコピーコンストラクタじゃなくてpostblitでしたね。
this(this){arr=arr.dup;}を構造体ごとに書いていかないといけないのが面倒くさく感じました。

473 :デフォルトの名無しさん:2016/03/07(月) 22:49:33.64 ID:hzTv2Fg2
>>472
つまり1回書くだけで全ての構造体に一括して適用されるような方法を期待してる?
さすがに無い気がするし、むしろあったら怖い
せいぜいmixinして文字数削る程度じゃね

474 :デフォルトの名無しさん:2016/03/08(火) 00:13:35.69 ID:P+r5NzGC
>>473
自分で書くならtupleofとtraitでdupテンプレートを書いて
S s2 = s1.dup;
っていうのを思いつきました。

475 :デフォルトの名無しさん:2016/03/08(火) 00:30:29.31 ID:y3RNmON1
>>474 実装してみた。
http://dpaste.dzfl.pl/0464d5f310e6

476 :デフォルトの名無しさん:2016/03/08(火) 00:43:55.17 ID:P+r5NzGC
>>475
おお、仕事が速いですね。

477 :デフォルトの名無しさん:2016/03/12(土) 05:14:08.80 ID:/9wKb/bF
>>433
今更だけどありがとう、
そんなアタリマエのことを全然思いつかなかったw
CTFEすげー(今更)

478 :デフォルトの名無しさん:2016/03/15(火) 00:58:06.47 ID:sgjiEx6Z
VS2013とLDCでビルドしたら、
LINK : fatal error LNK1104: cannot open file 'legacy_stdio_definitions.lib'
というエラーが出たんですけど、原因は何が考えられますか?

479 :片山博文MZ ◆T6xkBnTXz7B0 :2016/03/15(火) 01:02:28.11 ID:zLB+iwEH
>>478
読み込むライブラリの場所の指定がおかしい

480 :デフォルトの名無しさん:2016/03/15(火) 02:36:06.05 ID:sgjiEx6Z
>>479
うーん、わからないです。
legacy_stdio_definitions.libがHDDの中にないし、ぐぐってもなんなのかよくわからない。

481 :デフォルトの名無しさん:2016/03/15(火) 07:36:35.68 ID:vxrFHeSb
>>478
デフォルトは VS2015 の設定だから
etc/ldc2.conf の該当行 を書き換えてくれってどっかに書いてあった

"-Llegacy_stdio_definitions.lib" とその前の行のカンマを消せばいい

482 :デフォルトの名無しさん:2016/03/15(火) 15:54:15.40 ID:sgjiEx6Z
>>481
ldc.confにlegacy_stdio_definitions.libはありませんでした。

色々、調べてて気づいたんですけど、LDCを使うにはLLVMもインストールしないといけないですか?
LLVMのバイナリは公開されていないみたいだし、ビルドしないといけないとなると面倒ですね。
日本語の解説サイトもなさそうだし難易度が高い。

483 :デフォルトの名無しさん:2016/03/15(火) 19:09:38.41 ID:vxrFHeSb
忘れてた VS2015 以外のバージョンで動かすには
LDC をその設定で再構築してくれと書いてあった
今探してもどこだったか見当たらないけど…

たぶん VS2015 入れるのが一番簡単

484 :デフォルトの名無しさん:2016/03/15(火) 22:12:49.10 ID:sgjiEx6Z
>>483
なるほど・・・VS2015なら簡単でしたか。

485 :デフォルトの名無しさん:2016/03/18(金) 15:04:55.64 ID:adG1WSEK
D言語でGCが動かなせない環境(組み込み環境)で
クラスを使ったコードを走らせるために手動でメモリ管理をする(配置new)
みたいなC++的な使い方できますのん?

もっと具体的に言うと、
メモリ管理クラスをD言語で書きたいんだけど・・・
できれば、ほかの言語(C/C++)を混ぜたくない。

Dでこの望みは叶えられる?
GCが完璧な言語で何を言ってるんだって話だけど
C言語とABI互換バイナリが吐ける言語でかつ、きれいな構文のDはかなり魅力だから、つい。

486 :デフォルトの名無しさん:2016/03/19(土) 16:14:28.14 ID:fGh+hC5f
>>485
Cにポインタ渡すのにこんなんつかってます。
http://dpaste.dzfl.pl/1d143cf043f4

487 :デフォルトの名無しさん:2016/03/19(土) 16:46:55.65 ID:pnhuGA3J
>>486
あざます!!!!
ちとググってみましたけど
WikiにExplicit Class Instance Allocationっておもいっきり書いてありました・・・

手元の環境でもそれ書いたら動いたので
組み込み先の環境でもコレができるか試してみます!

488 :デフォルトの名無しさん:2016/03/19(土) 17:36:21.89 ID:emjvs9Sn
foldとかHaskellみたい
いいぞもっとやれ
実行時のパターンマッチとかどんどんやって

489 :デフォルトの名無しさん:2016/03/19(土) 17:51:51.55 ID:szPk7uBU
パターンマッチは本当に欲しい
castSwitchは型で分岐するだけで不満が残る
ついでにAlgebraicもいい感じにしてほしい

490 :デフォルトの名無しさん:2016/03/19(土) 19:52:53.93 ID:fGh+hC5f
Cライクな構文でパターンマッチをどう表現するか?
dropThree :: [a] -> [a]
dropThree (_:_:_:xs) = xs
dropThree _ = []

491 :デフォルトの名無しさん:2016/03/19(土) 21:01:17.80 ID:vRfO35T6
C#だと、次のバージョンでパターンマッチ採用されるみたいね
https://github.com/dotnet/roslyn/blob/future/docs/features/patterns.md

492 :デフォルトの名無しさん:2016/03/19(土) 23:58:06.13 ID:fGh+hC5f
>>491 を読んで、>>489 に必要なのは490ではなくて
if (auto a = cast(A)x) if (0 < a.b) {...}
の省略表記みたいのなのかなと思った。

493 :デフォルトの名無しさん:2016/03/20(日) 00:15:59.18 ID:sW9GrChn
今試してて気づいた
if (auto a = 0 < (cast(A)x).b, cast(A)x) {...}
は通るんだね。キャスト2回いるけど。

494 :デフォルトの名無しさん:2016/03/20(日) 00:42:09.88 ID:sW9GrChn
...と思ったけど違うな。バグ臭い。
http://dpaste.dzfl.pl/8e56a6c3d640

495 :デフォルトの名無しさん:2016/03/20(日) 01:02:17.46 ID:sW9GrChn
あ、バグですらないや。結果を使わないからカンマの前半が評価されてないだけだ。
スレ汚しでしたorz

496 :489:2016/03/20(日) 04:59:55.44 ID:270cchqR
>>492
考え直してみたら、俺が欲しいのは、クラス以外にも対応したcastSwitchと多重代入かなと思った
最初に欲しかったのは定数もパターンとして扱えるようなものだけど、それ自体は条件分岐で事足りる

497 :デフォルトの名無しさん:2016/03/21(月) 08:32:26.92 ID:PBSyTjzr
さあ早く shibuyad とやらの潜入リポート作成に戻るんだ

498 :デフォルトの名無しさん:2016/03/22(火) 18:21:28.75 ID:9L67FCyK
new int[][](10,10)
なんてあったんだな・・・今の今まで律儀にループしてたわ・・・
恥ずかしい

499 :デフォルトの名無しさん:2016/03/24(木) 06:29:39.15 ID:JYtPWttv
レスポンシブなウェブページになってるね
https://dlang.org/

500 :デフォルトの名無しさん:2016/03/24(木) 18:45:07.21 ID:dsBEx2Ez
まるで今時のプログラミング言語っぽいじゃないか!

501 :デフォルトの名無しさん:2016/03/26(土) 15:48:00.20 ID:Hp90Cudb
未来の言語だろ

502 :デフォルトの名無しさん:2016/03/26(土) 18:28:21.07 ID:ZDevVvUe
本来の言語

503 :デフォルトの名無しさん:2016/04/06(水) 16:38:36.98 ID:goAIGnqr
2.071

deprecation特盛り一丁

504 :デフォルトの名無しさん:2016/04/17(日) 20:07:45.76 ID:jaxl7tJu
Dってエルミート行列の固有値と固有ベクトルを下か上の三角行列から出してくれるライブラリある?

505 :デフォルトの名無しさん:2016/04/17(日) 23:05:34.24 ID:Rgu4hbC0
知らないが、
「Cでそれ扱ってるライブラリ」→「Dのバインディング」の順番で探すと見つかるかもしれない。

506 :デフォルトの名無しさん:2016/04/18(月) 14:54:59.76 ID:AtRZD2WH
そんな劣化バインディングの出てくる場面じゃないと思う

Dよお前の力はその程度かッ

507 :デフォルトの名無しさん:2016/04/18(月) 15:40:47.97 ID:NxXedIF3
バインディングに劣化とそうじゃないものの区別方法を教えれ

508 :デフォルトの名無しさん:2016/04/18(月) 15:56:31.40 ID:wndeF4nL
EUC-JPの文字列をUTF-8にエンコードするにはどうやればいいですか?

509 :デフォルトの名無しさん:2016/04/18(月) 16:29:48.39 ID:4lmkHLOP
>>508
iconvかicuのバインディングを探します

510 :デフォルトの名無しさん:2016/04/18(月) 16:39:21.91 ID:wndeF4nL
>>509
なるほど。
標準ではできないんですね。

511 :デフォルトの名無しさん:2016/04/18(月) 23:04:02.22 ID:8LbOm6LB
>>506 複素数はがんばってほしいよね。Dに。
>>510 EUC-JPは滅んだんだよ!もうそういう事にしようよ!

512 :デフォルトの名無しさん:2016/04/19(火) 15:15:23.43 ID:DoDYnfhi
EUC->(簡単)->JIS->(どのAPIがいい?)->UNICODE->(簡単)->UTF8

513 :デフォルトの名無しさん:2016/04/27(水) 10:07:10.53 ID:h7nUlsO3
writeにクラスを渡した時クラス名だけじゃなくて中身も表示させたいんだが何に手を加えればいいんだろか?

514 :デフォルトの名無しさん:2016/04/27(水) 10:09:28.75 ID:Nq/5t8Sv
toStringオーバーライドすればいい

515 :デフォルトの名無しさん:2016/04/27(水) 10:27:53.40 ID:KQtnTftA
>>514
即座に返事くれてすごい助かった
ありがとうございます

516 :デフォルトの名無しさん:2016/04/30(土) 12:14:38.56 ID:XHbnmWX8
D言語でクラスを使って dmd -c Dソース でコンパイルだけして
GCC(mingw)でWindows用dllをクロスコンパイルする時、リンカが参照できないエラー吐くけども

参照できないメソッドはこれ
_D9invariant12_d_invariantFC6ObjectZv
_d_assert_msg

この参照できないメソッドが入ってるライブラリとその依存関係にあるライブラリって
どのファイルか分かります?

517 :デフォルトの名無しさん:2016/04/30(土) 12:48:14.66 ID:RhLYi0Bf
そうやって混ぜてコンパイルするのは無理…で普通は済む問題なんだけど
何がしたいのかしら

518 :デフォルトの名無しさん:2016/04/30(土) 14:53:50.70 ID:XHbnmWX8
>>517
https://github.com/kubasz/uefi-d
これを参考に、UEFI AppをD言語で作りたいんだけども、
クラスを使うとリンクエラーでてしまい と言う話で、>>516
やっぱり、Dのクラスの仕組み上、こういう変な使い方するのは厳しいかな

519 :デフォルトの名無しさん:2016/04/30(土) 16:19:04.96 ID:FuZy8SxD
サンプルは再現出来てんの?

520 :デフォルトの名無しさん:2016/04/30(土) 17:06:09.96 ID:XHbnmWX8
>>519
サンプル自体ビルドは通ってQEMUで動作確認済みです。

確認済みのサンプルソースに、追加で適当なクラス
(プリミティブ型(検証時はintのみ)のメンバ1つとコンストラクタ、セッタ、ゲッタのみ)とか
プリミティブ型(同上)メンバのみ構造体を定義すると
リンクしないといけない何かが足りなくなるらしいと言うところです

521 :デフォルトの名無しさん:2016/04/30(土) 17:18:34.76 ID:RhLYi0Bf
それなら
-debug -release のオプションの不一致かな
druntime の debugあり/なし バージョンが分かれてるのかな

522 :デフォルトの名無しさん:2016/05/01(日) 11:23:20.12 ID:tKi6j9CT
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています

言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?

Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al

ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw


The Covenant Project
概要

Covenantは、純粋P2Pのファイル共有ソフトです

目的

インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します

特徴

Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)

接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません


523 :デフォルトの名無しさん:2016/05/01(日) 12:30:45.52 ID:5H9PV7Hp
年収いくら?
パナマに振り込み可能?

524 :デフォルトの名無しさん:2016/05/01(日) 14:08:25.32 ID:vpP9ivFq
新規性がない

525 :デフォルトの名無しさん:2016/05/02(月) 12:22:10.19 ID:IEVsN46J
>>521
とりあえず、Objectのスタブを見つけたので、試しにコンパイルだけしてみました。
https://github.com/JinShil/D_Runtime_ARM_Cortex-M_study/wiki/1.3-Structs
これをそのままobject.dにコピペして、コンパイルだけ通そうとしたんですが
dmd -v -c object.d
binary dmd
version v2.070.2
config /etc/dmd.conf
parse object
importall object
semantic object
semantic2 object
semantic3 object
Error: undefined identifier 'Error'
Error: undefined identifier 'Error'

ってことなので、
class Error{
this(string){}
}

こんな感じのを作って、再度ビルドしたら、DMDが保護例外で落ちたんですが
D言語わからないですけど、多分CTFEが動いたんですかね?

Errorクラスの最小実装ってどうすればいいかわかります?

526 :デフォルトの名無しさん:2016/05/02(月) 15:11:51.74 ID:aR8AOrvI
どつぼにそれてるパターン?

527 :デフォルトの名無しさん:2016/05/02(月) 17:55:15.75 ID:IEVsN46J
ごめんなさい、話が飛んでた。(ドツボにはまってました)
>>516は一旦解決しました。ありがとうです。

-releaseオプションつけたら、一先ずassert関連の
リンクエラーは出なくなりました。

528 :デフォルトの名無しさん:2016/05/02(月) 18:01:06.10 ID:aR8AOrvI
良かった
良かった

529 :デフォルトの名無しさん:2016/05/04(水) 16:57:34.57 ID:3BQvrgH5
DConf 2016 ustream
https://www.sociomantic.com/blog/2016/05/follow-dconf-2016-in-real-time/#.VymqqVWLQ7Y

Twitter
#dconf

530 :デフォルトの名無しさん:2016/05/04(水) 18:15:35.48 ID:cRuVDbfJ
GJ

531 :デフォルトの名無しさん:2016/05/05(木) 10:11:25.96 ID:l/2+Jb+M
割とマジで
http://b.hatena.ne.jp/entry/togetter.com/li/970814

532 :デフォルトの名無しさん:2016/05/06(金) 20:12:27.55 ID:7fiYERlP
Dって長方形配列を動的に確保するにはどうするのがベストなんでしょう?

533 :デフォルトの名無しさん:2016/05/06(金) 22:45:34.04 ID:W1xQbJku
>>532
>>498

534 :デフォルトの名無しさん:2016/05/07(土) 12:22:21.49 ID:w1sNmh/I
>>533
おお、この記法でギザギザ配列回避できるのか!ありがとうございます

535 :デフォルトの名無しさん:2016/05/08(日) 14:44:32.46 ID:sTrGOFZo
多次元配列は最近こういうのもある
http://dlang.org/phobos/std_experimental_ndslice.html

536 :デフォルトの名無しさん:2016/05/12(木) 09:37:33.44 ID:3GMYNf4t
>>535
これがまさに求めていたものだった
日本語のページではこれ全然見つからないし教えてくれなかったらこれに気付かず過ごすところだった
ありがとうございます!

537 :デフォルトの名無しさん:2016/05/12(木) 14:42:51.13 ID:yoZypm21
d言語の日本語情報は古くて、結構アテにならない

538 :デフォルトの名無しさん:2016/05/12(木) 15:10:26.64 ID:9ZRvi6Dg
それまだ入ってから半年も経ってないし
experimental な上に注目度高いからガンガン変わるよ

539 :デフォルトの名無しさん:2016/05/13(金) 09:27:38.80 ID:XXFnZH8x
DerelictAllegro用のdllファイルがAllegro公式漁ってもみつからねぇ
いっそ同封してくれりゃいいのに

540 :デフォルトの名無しさん:2016/05/13(金) 10:05:11.23 ID:+7L1Kkkt
公式配布のdllでダメなの?

541 :デフォルトの名無しさん:2016/05/14(土) 11:24:42.35 ID:r8zKr16p
>>538

542 :デフォルトの名無しさん:2016/05/15(日) 12:10:35.85 ID:5BLNb8Jh
dってpythonでやれるように関数の引数としてクラスをとることは出来ますか?

543 :デフォルトの名無しさん:2016/05/15(日) 13:23:09.57 ID:0JYIjYbN
型と値は別物なので、Pythonのtypeクラスみたいなものは無いはず
テンプレートでは型を引数に取れるからそれで大概足りるしな

544 :デフォルトの名無しさん:2016/05/15(日) 13:26:52.30 ID:/LAeaQVK
そのままのものはなくても
__traits/std.traits を隅々まで見るとだいたいのことは出来る

545 :デフォルトの名無しさん:2016/05/15(日) 16:23:19.03 ID:5BLNb8Jh
なるほどdでは型を引数にしたかったらテンプレートを使うんですね
わかりましたありがとうございます

546 :デフォルトの名無しさん:2016/05/16(月) 18:01:26.97 ID:SzBm3KOG
すいません、>>535のndsliceを包含したクラスでnumpyのように動的にshapeを変えられるクラスを作ることは可能でしょうか?
slicedの引数が動的配列ではいけないせいでスライスの形をメンバ変数として持てず、Sliceの次元がコンパイル時に決定されていないといけないせいでslicedの結果をメンバ変数として持てなくて困っております。

547 :デフォルトの名無しさん:2016/05/16(月) 20:47:31.03 ID:1yYFRP5Q
>>546 同じインスタンスに対してshapeをかえるのはむりっぽいとおもわれ
決め打ちできる所までtemplate化していくしかないきがす
https://dpaste.dzfl.pl/32747b208179

548 :デフォルトの名無しさん:2016/05/17(火) 08:13:05.26 ID:8mvnsosn
>>547
やっぱり無理でしたか……
コードの例まで載せてくれてありがとうございます。参考になりました

549 :デフォルトの名無しさん:2016/05/18(水) 07:28:31.57 ID:tzs1T2aJ
テキストファイルをstringに読み込んでstd.string.indexOfを使うと
Invalid UTF sequence: e5x a3x - Attempted to decode past the end of string (at index 2)
という実行エラーが出ます。
テキストファイル自体は、TeraPadで開くとUTF-8として自動認識されているのですが、
D言語の標準ライブラリが認識してくれない原因は何が考えられますか?

550 :デフォルトの名無しさん:2016/05/18(水) 13:02:57.20 ID:yAlr13Jm
エラーメッセージそのまま
文字列が中途半端なところで終わってる
読み込むサイズが足りないか、元々ファイルがおかしくてTeraPadが開く時に自動で直してくれてるのか

551 :デフォルトの名無しさん:2016/05/18(水) 13:51:37.18 ID:tzs1T2aJ
>>550
thx
コードの中に、文字列が中途半端に終わってる部分がありました。

552 :デフォルトの名無しさん:2016/05/22(日) 07:52:01.31 ID:vou34ySW
D言語の複素数ってなんか組み込みのとライブラリのがあってしかも行き来が不自由なんだけどどうなってんだこれ

553 :デフォルトの名無しさん:2016/05/22(日) 08:03:25.90 ID:KneT9rID
ライブラリの方を使う
組み込みのやつは互換性のために残してあるだけ

https://dlang.org/deprecate.html

554 :デフォルトの名無しさん:2016/05/22(日) 08:10:54.35 ID:AqdMtFt7
組み込みで使えるの便利だったのに……

555 :デフォルトの名無しさん:2016/05/22(日) 09:20:35.38 ID:KneT9rID
「ライブラリで実現できる」「言語仕様を小さくする」とかで
機能追加が却下されたり言語の機能が削られたりしてるが
「できる」じゃなくて本当にライブラリ側でやった方が良いのかどうか検討してからにして欲しい

言語仕様の大きさなんてユーザには関係ないよ、必要な部分しか使わないんだから

556 :デフォルトの名無しさん:2016/05/22(日) 10:51:13.93 ID:cWYsuk0t
言語仕様が小さくなってフットワークが軽くなる(== 破壊的変更が増える)
ならそれはユーザ体験の向上であろう。
さあはやく俺のstd.math.expi多用したコードをはじくのだ!

557 :デフォルトの名無しさん:2016/05/22(日) 11:23:25.91 ID:7hG4VCWt
>>555
つまりどういうことです?

558 :デフォルトの名無しさん:2016/05/22(日) 14:41:12.39 ID:P1iBYgIC
ライブラリでやるより言語仕様充実して欲しい

559 :デフォルトの名無しさん:2016/05/22(日) 15:55:15.13 ID:/FrpjXvP
初期の頃は、ライブラリより構文側でやった方が最適化できるというスタンスだったのに
いつの間に方針転換したんだろな

560 :デフォルトの名無しさん:2016/05/22(日) 19:14:04.72 ID:6Zib/w67
少なくとも>>553読む限りでは、需要がないと判断されただけに見えるけど
http://dlang.org/builtin.html でも最初に挙げられてる理由は「よく使われる」だし

8年間futureのままだったが、今月ようやく警告を出すPRが出たんだな

561 :デフォルトの名無しさん:2016/05/24(火) 11:51:00.77 ID:ng4V60az
>>559
CTFE が充実したとかLDCにぬかれたとかありそう
それに PreciseGC が未だにないのにビルトイン型だけ充実してますと言われても困る

562 :デフォルトの名無しさん:2016/05/24(火) 23:39:58.92 ID:mrDJwu+1
Pythonでいうところの
np.array([[[i,j] for i in range(3)] for j in range(5)])

np.array([[i,j] for i in range(3) for j in range(5)])
はDではrangeやndsliceを使って一行くらいで表現できますか?

563 :デフォルトの名無しさん:2016/05/25(水) 02:32:41.24 ID:ywcZQvWe
>>562
import std.algorithm, std.range;
3.iota.map!(a=>5.iota.map!(b=>[a,b])).join
ndslice使ってないけどこんなんですか

564 :デフォルトの名無しさん:2016/05/25(水) 13:31:47.54 ID:7HlacyyV
>>563
おお、綺麗だ……
まさかpythonより短く書けるとはびっくりしました。
ありがとうございます

565 :デフォルトの名無しさん:2016/05/25(水) 14:49:41.33 ID:JMqhkYJX
Dとpythonは相性良い感じ

566 :デフォルトの名無しさん:2016/05/27(金) 18:54:45.88 ID:a5zDK+Zd
dmcの質問なんですけど
a->b(a);
みたいなオブジェクトaに対するインスタンスメソッドbの呼び出しを
#define M(x, y) x->y(x)
みたいに定義して
M(a, b);
と書きたいのですが
エラーになります
どうマクロを書くのが正しいのですか

567 :デフォルトの名無しさん:2016/05/27(金) 23:33:42.41 ID:XThKS0xC
>>566 俺の環境ではその書き方のままで動くけど?
そもそもそのマクロの意図がわからんが。
http://codepaste.net/j8ub3f

568 :デフォルトの名無しさん:2016/05/27(金) 23:53:06.16 ID:0lBzfo5D
>>567
ここD言語のスレやで

569 :デフォルトの名無しさん:2016/05/28(土) 11:08:25.75 ID:YkPoIoOS
現象がdmc限定っぽかったのでここで質問しました
実際のコードはメソッドにいくつかパラメータ(可変長)があって
a->b(a);
のケース以外に
a->b(a, c, d, e);
でも呼ぶケースがあるので
#define M(x, y, ...) x->y(x, ## __VA_ARGS__)
みたいに定義して
M(a, b);
するとエラーになります
条件後出しで済みませんでした

570 :デフォルトの名無しさん:2016/05/28(土) 12:41:24.79 ID:2veKovfq
>>569 その書き方はgccのコンパイラ拡張じゃまいか
https://gcc.gnu.org/onlinedocs/cpp/Variadic-Macros.html
ちなcl https://msdn.microsoft.com/en-us/library/ms177415.aspx
>>568 ごめ。

571 :デフォルトの名無しさん:2016/05/28(土) 12:45:14.86 ID:YkPoIoOS
「##」 を無くしてもエラーになるんです

#define M(x, y, ...) x->y(x, __VA_ARGS__)
M(a, b);

572 :デフォルトの名無しさん:2016/05/28(土) 15:20:08.53 ID:2veKovfq
可変個引数が0個の場合、C99的にはコンマが余っちゃうからそれぞれ独自拡張しますってリンク先に書いてあります。
dmcはもうあんまり使わないほうがいいかも
http://en.cppreference.com/w/cpp/compiler_support
時代はDだよね!?(スレチ回避)

573 :デフォルトの名無しさん:2016/05/28(土) 15:31:12.42 ID:YkPoIoOS
ありがとうございます!!
Dで書き直すことにします!!!

574 :デフォルトの名無しさん:2016/05/28(土) 22:37:06.78 ID:/97ybqru
mixin templateでopIndex(size_t I)を定義した後mixinなしでopIndex(size_t i, size_t j)を定義するとopIndex(size_t I)が無効になりますが、これは何が起こっているのでしょうか?

575 :デフォルトの名無しさん:2016/05/29(日) 02:18:09.41 ID:KH4GuwqF
>>574
http://dlang.org/spec/template-mixin.html#mixin_scope
If the name of a declaration in a mixin is the same as a declaration in the surrounding scope, the surrounding declaration overrides the mixin one:
っていう仕様

576 :デフォルトの名無しさん:2016/05/29(日) 09:19:07.17 ID:xui0wAEZ
>>575
これって引数の型や数が違っててもオーバーライドするんですか……

577 :デフォルトの名無しさん:2016/05/29(日) 18:01:34.33 ID:TAOnosGl
575のリンク先の下のほうにあるけど、aliasでオーバーロードに含めることができます。

578 :デフォルトの名無しさん:2016/05/29(日) 19:40:16.20 ID:Ai+IvVh7
オーバーロード集合はちゃんと使えないとハマることがあるのに
説明が不十分だと思う

579 :デフォルトの名無しさん:2016/05/31(火) 22:06:56.78 ID:RGgOwYh0
FreeStandingな環境向けのD2向けRTTIの実装って有ったりするです?

580 :デフォルトの名無しさん:2016/06/02(木) 12:17:10.24 ID:kBgl6uD2
5月31日 5時10分

http://www3.nhk.or.jp/news/html/20160531/K10010540551_1605310509_1605310510_01_03.jpg

31日、火星が地球に最接近します。「スーパーマーズ」とも言われ、今回は最近10年間で最も近い距離となり、都市部でも肉眼で見ることができることから、身近な天体ショーとして気軽に楽しめそうです。

太陽系で地球の1つ外側の軌道を回る火星は、太陽の周りを687日かけて1周しながら、およそ2年2か月に1回、地球に接近しています。ただ、地球の軌道がほぼ円形なのに対して、火星の軌道がだ円になっていることから、火星と地球との距離は接近するたびに変わります。

国立天文台によりますと、火星は31日に地球に最接近し、今回はおよそ7500万キロまで近づいて、この10年間では最も近い距離になります。
火星の明るさは1等星のおよそ15倍の「マイナス2等星」くらいになるとみられ、地球から見える火星の見かけの大きさも、ことしの最も小さいときと比べて直径がおよそ3倍になります。

(続きや関連情報はリンク先でご覧ください)
引用元:NHKニュース http://www3.nhk.or.jp/news/html/20160531/k10010540551000.html


※関連板 http://wc2014.2ch.net/galileo/ 宇宙

581 :デフォルトの名無しさん:2016/06/02(木) 12:25:16.50 ID:kBgl6uD2
既出かもだけど、俺コレには震えた

http://qiita.com/mattn/items/b7889e3c036b408ae8bd

582 :デフォルトの名無しさん:2016/06/02(木) 18:38:00.61 ID:e6XwNe8R
配列が提供するインターフェイスを揃えたクラスを簡単に作るには何のインターフェイスを継承して何にalias thisすればいいのでしょうか?

583 :デフォルトの名無しさん:2016/06/03(金) 22:56:31.52 ID:7NE5KVgC
>>579 castじゃだめなん?
>>582 こうですか? https://dpaste.dzfl.pl/4f46d257323c
>>580-581 dmd と間違って smd と入れるとスーパーマーズD言語ちゃんが接近してくるジョークソフトを作ってくれるんですね↓

584 :デフォルトの名無しさん:2016/06/04(土) 18:51:35.81 ID:DlnDvjYz
了解

585 :デフォルトの名無しさん:2016/06/04(土) 22:54:34.68 ID:tpsKxr6y
>>583
rangeのいずれかのインターフェイスを継承させてやりたいです……

複数種類のクラス(全て配列のインターフェイスを持っている)を引数として取れる関数を定義したいんです

voidポインタなんて久々に見ました

586 :デフォルトの名無しさん:2016/06/04(土) 22:57:19.79 ID:/ZaYqJqz
std.mathとstd.complexをimportしたらexpiが競合した……
まさか毎回どっちのを使うか指定しないといけないのか?

587 :デフォルトの名無しさん:2016/06/05(日) 01:15:03.75 ID:wuPWHoc6
選択importするとか

588 :デフォルトの名無しさん:2016/06/05(日) 11:27:16.05 ID:NUUYuMig
インターフェイスAとBがあって、関数fはインターフェイスAとBの両方を継承したクラスを引数に取る
こんな関数fの引数の記述方法はありますか?

589 :デフォルトの名無しさん:2016/06/06(月) 01:34:29.33 ID:mLcW0ja8
>>585 range はダックタイプで、https://dpaste.dzfl.pl/6d9bc674089e
>>588 こんな感じではないだろうか https://dpaste.dzfl.pl/b3f7f2d0ebae

やっつけSMDつくったよー
https://github.com/garlic-flavor/smd

590 :デフォルトの名無しさん:2016/06/06(月) 18:47:18.37 ID:Ed/7rB97
>>589
なるほどtemplate+ifでやればいいのですか
こんなに汎用性のあるものとは知りませんでした
ありがとうございます!



D使いもWindowsユーザーの方がやっぱり多いんだろか……

591 :デフォルトの名無しさん:2016/06/07(火) 11:54:47.42 ID:Fo09osKo
dmcの質問なんですけど、
wchar_t *hoge = L"あ";
としてファイルを UTF-8 で保存&コンパイルして実行したとき、
hoge の中の値は \u3042 を期待していたのですが、
なぜか \xe3\x81\x82 になるみたいなのですが、
なぜでしょうか?

592 :デフォルトの名無しさん:2016/06/07(火) 13:35:54.18 ID:dYQbvyOv
入力がUTF-8と思われてないんじゃね
Windowsなら普通はSJISかLatin-1かが仮定されてるはずだから、オプションを付ける必要があると思う
dmcのことは知らん

593 :デフォルトの名無しさん:2016/06/07(火) 14:58:01.24 ID:wTM17UsZ
core.simdのfloat4って、要素を移動させるのにシフト演算って使えないでしょうか?
例えば[1.0, 2.0, 3.0, 4.0]のベクトルを[2.0, 3.0, 4.0, 4.0]にしたいです。

594 :デフォルトの名無しさん:2016/06/08(水) 07:59:41.76 ID:51dlGdh/
iotaからの一連の流れで好きな配列つくれるのホント便利だわ

595 :デフォルトの名無しさん:2016/06/08(水) 16:27:08.87 ID:c99ZJOB9
>>593
何bit分を何bitシフトさせたの?

596 :デフォルトの名無しさん:2016/06/09(木) 18:13:41.96 ID:nQlOEPkQ
LDC 1.0.0 リリースおめ

597 :デフォルトの名無しさん:2016/06/09(木) 20:51:27.58 ID:jEie4NkL
>>595
もしかしてそのままシフト演算子が使えたりします?
http://www.kmonos.net/alang/d/simd.html
ここに書いてないので、単純にそのままできるとは思いませんでした。

で、試そうと思ったらError: undefined identifier 'float4'というエラーが。
core.simdはimportしてるんですけど、なぜでしょう?

598 :デフォルトの名無しさん:2016/06/09(木) 21:09:40.20 ID:4WAQK3bH
>>583
castは型のキャストって意味?

もしそうなら意図が伝わってなくて申し訳ない。
Freestandingな環境だとlibc.soはもちろん存在しないし
動的リンクなんて仕組みもないので
既存のdruntimeは使えないって思い込んでるんだけど
(合ってる?もしかして、この辺りで勘違いしてる?)

最低限、そういう環境で構造体は使えるようにObject.TypeInfo_Structクラスが
実装されてるもの無いのかな・・・と。
dmd ver2.071.0でObjectクラスを自作するとErrorクラスの実装でコケるので
既存で最小限(RTTIのみ?)の機能を持つライブラリがあればそれを使いたいなと言うことで。

599 :デフォルトの名無しさん:2016/06/11(土) 08:53:33.73 ID:CU/y+sw+
std.rangeに入ってるRandomAccessFinitを継承してクラスを作ったら、メンバの配列にalias thisしてもなお実装すべきものがいっぱい残ってるんですが、
これは全て自分で一つ一つ書いていくのですか?

もしくは配列と同じ操作を提供するインターフェイスを作るにはどうすれば楽でしょうか?

600 :デフォルトの名無しさん:2016/06/11(土) 09:15:16.03 ID:sZRxwhEp
あそこの一連のインターフェイスは「こんなん作ってみたんだけど〜」程度のもので
ほとんど使われてない

構造体テンプレートにしてコンパイルエラーが出ない程度に既定プロパティを補うのが主流
そのやり方なら alias this の転送でほとんど足りるはず
ただしどのプロパティを再定義すべきかはインターフェイスを見るのがいい

601 :デフォルトの名無しさん:2016/06/11(土) 09:41:32.26 ID:j5Azp1YN
>>600
ええっとすみません。間違っていたら申し訳ないのですが、もしかしてinterfaceとclassを使うよりstructを使うのが主流なのですか?

602 :デフォルトの名無しさん:2016/06/11(土) 10:36:32.51 ID:sZRxwhEp
D言語のファンはオーバーヘッドとかGCとか嫌う声が大きい
実際のところ GC の実装がチープでそれほどあてにならないし

構造体とメタプログラミング乱舞で読みにくいライブラリが人気

でもインターフェイスでやりたければやればいいのよ
>>599 の 大半のメソッドは1行関数で済むはず
双方向とか明らかにいらなそうなのを省くなら std.typecons.WhiteHole が使えるかも

603 :デフォルトの名無しさん:2016/06/11(土) 11:30:53.78 ID:awsUhPf2
>>602
Whiteholeは知らなかったし参考になります。
人気のライブラリとかってどこを見ればわかるんでしょうか?

604 :デフォルトの名無しさん:2016/06/12(日) 21:29:10.60 ID:HMmiIFiS
>>598 わかんないや。ごめんね。
>>603 人気ぶりはわからないけど、ここのを https://code.dlang.org/
これ https://code.dlang.org/packages/dub 使ってダウソして欲しいと、ヲルたんは思っているのではないだろうか。

605 :デフォルトの名無しさん:2016/06/13(月) 05:06:45.55 ID:PElmNHhw
>>604
あ、すみません。人気のライブラリって標準ライブラリ中でも人気な奴という意味からと思ってました。
そういうことでしたか。ありがとうございます。

ところで、ひとつ聞きたいのですが、dではpureやimmutableが使えますが、これらを使うと実際どの程度最適化されるのでしょうか?

606 :デフォルトの名無しさん:2016/06/13(月) 15:35:28.75 ID:iihvfQlB
InterfaceにopBinaryなどのテンプレート関数を持たせるにはどうするのですか?

607 :デフォルトの名無しさん:2016/06/13(月) 16:12:58.29 ID:+zMNrpMB
すいません
>>606
これ自己解決しました
finalにすれば良いのですね

608 :デフォルトの名無しさん:2016/06/14(火) 14:11:58.45 ID:JvVSF706
GCの性能は連想配列とかクロージャとかクラスの性能に直結するので、
「できるだけGCが動かないように」じゃない方向に進んでGC性能うpしてほしいな・・・

609 :デフォルトの名無しさん:2016/06/20(月) 08:40:03.61 ID:EnFKsdbU
D-Man culture
http://forum.dlang.org/thread/vccecaeunthhfgvkoija@forum.dlang.org

610 :デフォルトの名無しさん:2016/06/23(木) 11:59:01.34 ID:332nxUAD
http://www.digitalmars.com/download/freecompiler.html

Download latest version for Win32.
What's new for C/C++ 8.57

Digital Mars C/C++ Version Info
http://www.digitalmars.com/changelog.html#new857

611 :デフォルトの名無しさん:2016/06/23(木) 13:49:32.96 ID:ZQfpp6dv
D-Man adventures
http://dlangcomicstrips.tumblr.com

612 :デフォルトの名無しさん:2016/06/25(土) 11:45:41.24 ID:M9L0G4Rl
Dって多重代入なかったっけ?

613 :デフォルトの名無しさん:2016/06/25(土) 12:05:40.78 ID:mYN7KAdL
そんなものはない

614 :デフォルトの名無しさん:2016/06/25(土) 22:16:23.10 ID:hxA5cJiF
残念

615 :デフォルトの名無しさん:2016/06/26(日) 11:50:32.74 ID:YRduG3pc
速い行列演算したいんだけどIntel mklのblasを読み込む方法がよくわからん……

あとScidってなんか開発止まってるっぽいけどどうなんだろ?

616 :デフォルトの名無しさん:2016/06/26(日) 12:08:12.61 ID:Hr+drjlN
ネイティブも吐けるJuliaと比べて
どっちが速いん?
どっちが書きやすいん?

617 :デフォルトの名無しさん:2016/06/26(日) 13:03:10.20 ID:0+Or/a+e
C系に慣れてればこっちが書きやすい

どっちが速いかは用途によるんじゃないの

ベンチマーク取った!→チューニングが足りん!
てのがいつもの流れ

618 :デフォルトの名無しさん:2016/06/26(日) 14:45:48.76 ID:Hr+drjlN
なるほどthx!

619 :デフォルトの名無しさん:2016/06/28(火) 14:04:24.39 ID:MNOhqMou
ってかDで線形代数する時のスタンダードってなんだ?

620 :デフォルトの名無しさん:2016/06/28(火) 14:27:17.46 ID:a3nSzCGl
おhr
http://qiita.com/k3_kaimu/items/e7aab2ef090c53cac819
http://forum.dlang.org/post/mailman.627.1331668940.4860.digitalmars-d-learn@puremagic.com

621 :デフォルトの名無しさん:2016/06/28(火) 21:33:02.21 ID:NXkyNPDs
Scidもdepricated放置されてるし科学方面弱いな

622 :デフォルトの名無しさん:2016/06/29(水) 20:56:03.25 ID:6Q9/xyGV
std.experimental.ndsliceはどうなんだろう
experimentalだし俺は使ってないからわからんけど

623 :デフォルトの名無しさん:2016/06/29(水) 21:52:28.61 ID:AXw9t+Ft
ndsliceは行列演算ついてなかったはず多分

624 :デフォルトの名無しさん:2016/06/29(水) 22:24:24.36 ID:9iO2eMNn
多分ね

625 :デフォルトの名無しさん:2016/07/06(水) 02:30:21.03 ID:yrz/Jj7I
https://dpaste.dzfl.pl/75f0f6d8bb00
と言う事を知った夏。

626 :デフォルトの名無しさん:2016/07/06(水) 11:02:58.90 ID:X105+0ra
import std.stdio;
// 例えばこういう interface に対して、
interface Iinc{
final int opUnary(string OP : "++")(){ return opInc; }
int opInc();
}
// こんな mixin template 使う場合に、
mixin template incImpl(alias target){
int opInc(){ return ++target; }
}

class A : Iinc {
int a;
// ↓これはまあいいとして、
mixin incImpl!a;
}

class B : A {
int b;
// ↓ ここに override って書いて動くってはじめて知りました。
override mixin incImpl!b;
}

void main(){
Iinc c = new B;
++c;
(cast(A)c).a.writeln;
(cast(B)c).b.writeln;
}

627 :デフォルトの名無しさん:2016/07/08(金) 07:42:04.17 ID:0UOH05eF
テンプレート制約で複素数とか、複素数または実数にヒットさせるにはどうすりゃええんや……
組み込み複素数は__traitで簡単にヒットさせれるけど

628 :デフォルトの名無しさん:2016/07/08(金) 22:01:04.69 ID:7n1yPXzP
>>627 こう?
is(T == Complex!U, U) // T が std.complex.Complex の場合に true
std.traits.isNumeric!T // T が組み込みの数値型の場合に true

629 :デフォルトの名無しさん:2016/07/09(土) 22:27:59.54 ID:lSFNvjJ5
>>628
こんなis の使い方あったのか
勉強不足でしたすいませんありがとうございます

630 :デフォルトの名無しさん:2016/07/10(日) 00:27:46.10 ID:PefByr9S
やべえndsliceのライブラリstatic if多すぎて何が起こってるのか全然わかんねえ

631 :デフォルトの名無しさん:2016/07/16(土) 14:39:39.16 ID:9Y22Kipm
Julia(女) に浮気中

632 :デフォルトの名無しさん:2016/07/18(月) 09:14:41.70 ID:V9a/Rv5f
Juliaは線形代数得意だもんな

633 :デフォルトの名無しさん:2016/07/19(火) 16:01:58.15 ID:U82S7i4O
1、dub.exeを実行すると、コマンドプロンプトが一瞬立ち上げってすぐに消えます。
2、コマンドプロンプトからdub init

634 :デフォルトの名無しさん:2016/07/19(火) 16:02:38.07 ID:U82S7i4O
1、dub.exeを実行すると、コマンドプロンプトが一瞬立ち上げってすぐに消えます。
2、コマンドプロンプトからdub init"プロジェクト名"でプロジェクト制作すると、
  プロジェクト名のフォルダーが制作され、フォルダー内には、以下の階層ができる
   1./source/
   2./source/app.d
3、ここで、"dub.jsonを記述する"とありますが、そのファイルが何処にも有りません。
  
dubの設定及び使用方法教えてもらえませんか。
Win10、dmd.2.071.1.windowsです。よろしくお願いします。

635 :デフォルトの名無しさん:2016/07/19(火) 17:26:50.31 ID:Ez5hwRqa
実行するとコマンドプロンプトが一瞬立ち上がってすぐに消えるのって
dub.exeをエクスプローラからダブルクリックした時とかの挙動じゃね?

ちゃんとコマンドプロンプトからdub init

636 :デフォルトの名無しさん:2016/07/19(火) 17:43:18.52 ID:fscdSyYa
気の利いた IDE が作ってくれるかもしれんけど
そうでないなら自作
https://code.dlang.org/package-format?lang=json

まあ実際はどっかのプロジェクトから持ってきて修正して流用くらいじゃないの

637 :デフォルトの名無しさん:2016/07/19(火) 17:45:43.54 ID:o21q4Wh2
まず、Windowsのロゴがあるキー( 田 )を押しながら、Rを押してください。「ファイル名を指定して実行」ウィンドウが開きます。
次に、cmdを入力して、Enterを押してください。

638 :デフォルトの名無しさん:2016/07/19(火) 19:18:09.42 ID:3sf6xm4M
>>633 が一瞬書き込んですぐに消えました

639 :633:2016/07/19(火) 19:38:28.66 ID:U82S7i4O
1、コマンドプロンプトからdub init"プロジェクト名"Enter
2、Package recipe format (sdl/json) [json]:このようになり、
  Package recipe format (sdl/json) [json]:json
                       ↑これ入力
3、Enterキー連打していくと、
  Name [test]:
  Description [A minimal D application.]:
  Author name [user]:
  License [proprietary]:
  Copyright string [Copyright ツゥ 2016, user]:
  Add dependency (leave empty to skip) []:
  Successfully created an empty project in 'C:\Users\user\test'.
  Package sucessfully created in test
  ↑このようになり、プロジェクト名のフォルダー内に"dub.json"が制作されました。
4、しかしながら、"dub.json"に"dependencies"が無く、ぼちぼち格闘中です。
  プログラム歴0の初心者には敷居が高いですね^^;

640 :633:2016/07/19(火) 19:44:14.42 ID:U82S7i4O
↑これ入力←この位置が少しずれていますので、書き直しました。
Package recipe format (sdl/json) [json]:json ←これ入力

641 :デフォルトの名無しさん:2016/07/19(火) 19:58:45.99 ID:fscdSyYa
いやいやいや プログラム歴0の初心者が dub init 使うってどんな状況よ
最初の一歩から間違ってるとしか

642 :デフォルトの名無しさん:2016/07/19(火) 20:05:03.34 ID:fscdSyYa
あれ、今は普通のアプリ開発でもビルドツールに dub 使うんだっけ?
やったことないな

643 :デフォルトの名無しさん:2016/07/19(火) 20:20:26.23 ID:555Vvc50
たしかにD言語ってコマンドラインの文化に慣れてないと厳しいな。ってか大体の言語がそうだが

dependencyは最初はdub.jsonに書いてないけど、手入力したら認識してくれるから、>>636を参考に自分で手入力するといいよ
コマンドラインの文化に慣れてないと違和感感じるかも知れないけど、この手の設定ファイルは最初は何も書かれてないから項目を自分で書いていくのが定石

ってかdubのライブラリ使わないならdependencies 書かなくていいから最初はdependencies 書かなくていいよ

644 :633:2016/07/19(火) 21:06:11.43 ID:U82S7i4O
>>641
  某イクサゲームをやっていまして、10万円金くじ引いても天なるものが1枚しかでなくてwww
  自分でゲーム作ったほうがいいんじゃね!っと思い立ったのが吉日でして。
>>643
  ゲーム用のライブライ追加してぼちぼちやってみようかと思ったのですが、
  ズッコケすぎて全然前に進みません。^^;
  dmdダウンロードして4日目くらいですがw
  ちなみに、"プログラミング言語D"とゲーム開発関係書籍2冊ほど手元に置いてますけど
  最初の一歩目で迷子になってます、、、。

645 :633:2016/07/19(火) 22:42:44.72 ID:U82S7i4O
1、"dub.json"に下記を追記しました。
   
   "dependencies": { "dgame": "~>0.6.4" }

2、C:\Users\user>dub build Enterキー

   Neither a package description file, nor source/app.d was found in
   
   ↑このようになります。
   app.dに何のために、どんなソースを書くのかわかりません><
   よろしくお願いします。

646 :デフォルトの名無しさん:2016/07/20(水) 07:03:39.83 ID:/Ye1vbG1
dlangerの人口減らしたくないし取っ掛かりの部分だけナビゲートしちゃる

dub initによって作られたsource/app.dには
コンソールに文字列を出力するコードが最初から書かれてるから
そっから自分で動かしたいように書き換えるのが通例

dependenciesは https://code.dlang.org/ のリストにあるパッケージが必要な時に書く
これで何言ってんだか分かんなかったらdub.jsonは弄らないで最初のままでおけ
てか dub(ビルドツール)の前にdmd(コンパイラ)の使い方を覚えるほうが先だね

そもそも言語仕様も標準ライブラリ(phobos)も知らん段階だろうから

main.dを新規作成してエディタで開いて
std.stdioをimportしてmain関数内でwriteln関数を使って
HelloWorldをコンソールに出力するコードをmain.dに記述して
コマンド

647 :デフォルトの名無しさん:2016/07/20(水) 07:06:09.24 ID:/Ye1vbG1
レス本文にダブルクォーテーションが入ると文章途切れるのか

>>646の途切れた部分)
main.dを新規作成してエディタで開いて
std.stdioをimportしてmain関数内でwriteln関数を使って
HelloWorldをコンソールに出力するコードをmain.dに記述して
コマンド dmd main.d でコンパイルするとこからはじめようか

新しいプログラミング言語に触れるなら↑が本来の最初のステップになる

648 :633:2016/07/20(水) 09:29:26.81 ID:Oo0kZypL
>>646
助言ありがとうございます。
HelloWorldの門は一番最初にくぐりました。
レス文見てたら、dubの使い方を勘違いしてたみたいでした。
最初は任意のライブラリを勝手にダウンロードし、dmdにサインイン。 
その後自由にライブラリが使えるものだと思っていました。
違う方法でライブラリが使える方法を探ってみたいと思います。
レスをくれた皆さんありがとうございました。

649 :デフォルトの名無しさん:2016/07/20(水) 13:49:05.59 ID:S0wpPWZM
test "hoge D" hage

650 :デフォルトの名無しさん:2016/07/21(木) 02:31:14.62 ID:+htOPDkp
「D言語は2番目に覚えるべき言語」とか言うけど、「ゲーム作りたい」という動機だと、もっと、かなり順位下がる気がする。
ABA GamesさんからD言語入った身で言えたギリじゃないけど。
短い期間で出力を得たいならJavaScript(かそのトランスパイラ)おすすめ。
コントローラからの入力がまだ標準化されてないかもしれないけど。
というか俺が思ってる某IXAゲームもクライアントサイドはJS+WebGLなのでは?
7〜8年前だったらActionScript推したけどなー。
あ、やる気に冷や水かけるつもりじゃないですよ。言語の習得は平行してできるので、どっちもやるとイイよ!

651 :デフォルトの名無しさん:2016/07/21(木) 18:46:26.48 ID:Vj/xPVWN
いまならUnityじゃね

652 :デフォルトの名無しさん:2016/07/25(月) 00:17:46.47 ID:XTQ4vcgC
D言語にも深層学習用のライブラリがあればなあ

653 :デフォルトの名無しさん:2016/08/05(金) 01:29:38.10 ID:yG1Q1Zfx
DMDScriptってこの先生きのこれるの?
例えばreadme.txtのMain Goalのリストにも載ってない64bit対応とかする目あるのだろうか?

654 :デフォルトの名無しさん:2016/08/05(金) 12:18:44.40 ID:LJe/qM3f
そこに山があれば登るのが真のDer

655 :デフォルトの名無しさん:2016/08/16(火) 18:52:17.71 ID:D9Aqh5ca
Releaseビルドで作られたexeファイルには、開発環境由来の個人情報は含まれますか?

656 :デフォルトの名無しさん:2016/08/16(火) 23:45:49.73 ID:aXbZPgJ2
hello, worldをダンプしてみたけどPhobosのシンボルが読めるからまあ
D言語が使われているであろうこととか>>655がマゾ豚であることとかがわかる。
幼女>犯罪に使おうとかキモいこと考えてないでさっさとDちゃんの抱き枕相手に腰振る練習してなさいよ!このブタッ!

657 :デフォルトの名無しさん:2016/08/17(水) 00:15:35.35 ID:lwRSgBSO
>>656
犯罪なんて考えてないです><
ネットで公開したとき、特定につながる情報が入ってないか気になっただけですよ。
あと、マゾ豚でもないです><

658 :デフォルトの名無しさん:2016/08/17(水) 19:37:22.85 ID:Tv1IP5hX
パスにアカウント名入れてるバカは時々いる

659 :デフォルトの名無しさん:2016/08/17(水) 19:59:59.49 ID:BDOXQSJ7
My Documents以下で開発してて、デバッグ情報にあるフルパスからアカウント名が……って話だな

660 :デフォルトの名無しさん:2016/08/18(木) 12:39:10.84 ID:aeEeX8qQ
>Releaseビルドで

よくよめ

661 :デフォルトの名無しさん:2016/09/12(月) 21:07:12.99 ID:g/2ERTf6
templateを使ってループをunrollしたいと思ってるんですけど、うまい方法はないでしょうか?
static ifならぬstatic foreach的なものが欲しいです。

662 :デフォルトの名無しさん:2016/09/12(月) 21:17:04.32 ID:y21Asc3i
レンジの先読みとか save の方が現実的じゃないの

663 :デフォルトの名無しさん:2016/09/12(月) 21:59:01.32 ID:g/2ERTf6
>>662
レンジの先読みっていうのは、1ループで例えば4要素ずつ回すとかするやつですか?
saveはよくわかりませんでした。

templateでは無理なんですかね?

664 :デフォルトの名無しさん:2016/09/13(火) 07:27:24.17 ID:kzljWn49
タプルをforeachするときは静的に展開されるよ
import std.stdio;
template T(P...){ alias P T; }
alias MetaArr = T!("a", "b", "c");
void main() {
foreach (v; T!(0, 1, 1, 2)) { writeln(MetaArr[v]); }
//foreach (v; [0, 1, 1, 2]) { writeln(MetaArr[v]); } // error
}
テンプレート再帰を使って便利なやつ(iotaとか)を作るとよし。
std.metaにタプル操作テンプレート群がある

665 :デフォルトの名無しさん:2016/09/13(火) 10:29:18.28 ID:W9Uq4kNW
せっかくAliasSeqって名前がついたんだから使ってやろうぜ
公式ももうタプルの名はtypecons.tupleに譲ろうって感じだし、せめて静的タプルとか
https://dlang.org/tuple.html

666 :デフォルトの名無しさん:2016/09/13(火) 10:47:13.49 ID:GD/RUd4Y
こりゃ TDPL 第2版の再優先事項やね

667 :デフォルトの名無しさん:2016/09/13(火) 16:52:26.00 ID:Sk3FDaZ1
>>664
なるほど、タプルを使うとstatic foreachみたいなことができるんですね。
>>665
型タプルの名称が変わってたんですね。

668 :デフォルトの名無しさん:2016/09/19(月) 17:22:06.82 ID:XIBStaFM
assert(RegexMatch!string().empty,

669 :デフォルトの名無しさん:2016/09/20(火) 17:31:32.34 ID:aVRW/GTu
https://dlang.org/changelog/2.071.2.html

670 :デフォルトの名無しさん:2016/10/08(土) 15:24:34.36 ID:lyDMzk0a
質問です
C# なんかだとジェネリクスの変性を指定できて、たとえば Base <- Derived のとき List<Base> <- List<Derived> になる、つまり
List<object> a = new List<string>();
ってできたと思うんですが、こういうのって D言語だとどう書けばいいんでしょうか
opCast を使う?

671 :デフォルトの名無しさん:2016/10/10(月) 03:02:58.71 ID:XeSbllOL
>>670
テンプレートの範囲を拡大させることで実現する。
しばしばmain直下まで汚染されるが気にしない。

import std.container, std.traits;
void foo(A)(A a) if (is(A : Array!B, B : long)){}
void bar(A)(A a) if (isInstanceOf!(Array, A)){}
void main()
{
auto a = Array!int();
foo(a);
bar(a);
}

672 :デフォルトの名無しさん:2016/10/12(水) 11:32:10.17 ID:G+08whNk
なぁにこれ?
http://indianautosblog.com/2016/10/most-powerful-suzuki-swift-produces-350-hp-244445

673 :デフォルトの名無しさん:2016/10/12(水) 13:19:51.46 ID:CGbCriuU
スレチ
swift スレに貼れ

674 :デフォルトの名無しさん:2016/10/12(水) 13:43:48.56 ID:kYS44Rbd
スレチの様で微妙にスレチじゃないかも

675 :デフォルトの名無しさん:2016/10/12(水) 13:44:19.71 ID:kYS44Rbd
ついでに拾いもの

>ネットにはデマ情報がいっぱい残ってるので正しい情報をメモ

cmd で UTF-8 使える方法 (chcp 65001 について)

http://nazochu.blogspot.jp/2011/08/blog-post_26.html
mintty
http://dogmap.jp/2011/11/15/mintty/
mintty
http://tanakh.jp/posts/2011-11-15-windows-terminal.html


色々紆余曲折あったけど Git インスコして GitBash 使うのが一番楽っぽい
https://git-for-windows.github.io/

676 :デフォルトの名無しさん:2016/10/12(水) 13:46:35.25 ID:CGbCriuU
どうみてもスレチ
っつーか板違い

677 :デフォルトの名無しさん:2016/10/13(木) 16:53:46.81 ID:L+oZkHrx
>>672
組み込みでDを使ってるに違いない

678 :デフォルトの名無しさん:2016/10/13(木) 16:55:38.03 ID:L+oZkHrx
そういや最近ハマったんだけど
auto x = (int a) => a;
auto y = (int a) => { return a; };
この二つって型が違うのね
初めて知ったわい

679 :デフォルトの名無しさん:2016/10/13(木) 18:51:22.75 ID:DlV3jQX5
>>678
2つの記法を混同してたのかな
(int a)=>a に対応するのは (int a){return a;}
(int a)=>{return a;} は (int a){return {return a;};}

680 :デフォルトの名無しさん:2016/10/13(木) 19:17:26.78 ID:L+oZkHrx
>>679
そうそう
javascript なんかと混ざったのかも

681 :デフォルトの名無しさん:2016/10/31(月) 20:52:07.58 ID:BieV/Lwg
2.072

682 :デフォルトの名無しさん:2016/10/31(月) 22:52:11.63 ID:9faQJIhV
http://forest.watch.impress.co.jp/docs/news/1027516.html
時代はRust

683 :デフォルトの名無しさん:2016/11/01(火) 09:03:52.71 ID:872/MYpu
>>681
書いてないけど dub 同梱になった

684 :デフォルトの名無しさん:2016/11/01(火) 23:37:35.22 ID:wR5ZjNoq
>>683 まじかよ朗報
---
std.datetime.benchmark!func(10_000)[0].to!Duration.writeln;
---
>136 ホシs and 8 hnsecs
∴Windowsはクソ

685 :デフォルトの名無しさん:2016/11/01(火) 23:54:18.23 ID:872/MYpu
μ(マイクロ)がマルチバイトになってて化けるやつだな
俺も前から変えてほしいと思ってるけど

686 :デフォルトの名無しさん:2016/12/03(土) 01:09:21.23 ID:999B/Ieu
クリスマスプレゼントにこういうのが欲しい。
struct FatStruct
{
Object obj;
void opAssign(headconst ref FatStruct rvalue) { obj = rvalue.obj; }
}
1. refで修飾された引数専用のオプション修飾子で、
2. mutableな変数にcastなしで代入可能で、
3. 「参照とってるけど、このメソッド内では変更を加えないよ。」ということをcallerに伝える。
ものクレクレ

687 :デフォルトの名無しさん:2016/12/04(日) 12:43:36.67 ID:ijuOYWzP
なんかRustがやけに元気だけど、D言語って消えていくの?

688 :デフォルトの名無しさん:2016/12/04(日) 15:19:42.11 ID:Kly2fP6x
線形代数充実したら使ってやってもいい

689 :デフォルトの名無しさん:2016/12/04(日) 15:28:34.63 ID:RB5UgFiH
https://www.youtube.com/watch?v=8fPmkq1CkCU

https://www.youtube.com/watch?v=PR6r40GbIfk

690 :デフォルトの名無しさん:2016/12/04(日) 15:40:41.71 ID:GcUhzChF
もう戦力外
せめて Julia 以上に使えないとな

691 :デフォルトの名無しさん:2016/12/04(日) 16:30:18.91 ID:f8v2gDaK
ANSI Cみたいに規格化できなかったのが致命的だったね

692 :デフォルトの名無しさん:2016/12/04(日) 21:16:16.33 ID:0HU6vOnR
mir…

693 :デフォルトの名無しさん:2016/12/07(水) 09:54:34.62 ID:r4m1A3bg
2.072.1

AC2016 は全部埋まった模様
http://qiita.com/advent-calendar/2016/dlang

694 :デフォルトの名無しさん:2017/01/01(日) 17:00:41.54 ID:AzZ4q8lt
2.072.2
GDC 2.068.2 相当

695 :デフォルトの名無しさん:2017/01/23(月) 23:18:22.18 ID:R62d4hxX
2.0.73

696 :デフォルトの名無しさん:2017/01/24(火) 07:39:06.67 ID:FdZedY8r
ndslice が deprecated に…
面白そうだったのに残念

697 :デフォルトの名無しさん:2017/01/24(火) 08:07:50.10 ID:tjYeiy24
リリースサイクルが合わないから dub repo に移すと言ってた
dub もほぼ公式だから問題あるまい

698 :デフォルトの名無しさん:2017/01/24(火) 10:09:07.65 ID:9yrS8iWN
にしてもなあ……

699 :デフォルトの名無しさん:2017/01/25(水) 01:36:00.78 ID:NBMLgLD+
もうちょっとdubで成熟させてからexperimentalにぶち込んでもよかったよね、ってことだと思ってる

700 :デフォルトの名無しさん:2017/01/30(月) 12:11:48.76 ID:zgepKMXO
メタプログラミングが必要な複雑さで高速なバイナリが欲しくてベクトルの計算が必要ならDって良い感じな気がしてきた

701 :デフォルトの名無しさん:2017/02/04(土) 09:23:54.50 ID:cCtqcbdk
>>684
いつの間にか直ってる!? と喜びかけたが
std.datetime と core.time で不揃いというタチの悪い結果ががが

702 :デフォルトの名無しさん:2017/04/11(火) 10:21:14.88 ID:DoKLA85e
2.074.0

それと入れ違いに DMD バックエンドの権利問題が解決して
オープンソースになった

703 :デフォルトの名無しさん:2017/04/11(火) 19:01:24.54 ID:+8we66Ry
おめでとう

704 :デフォルトの名無しさん:2017/04/12(水) 13:30:03.81 ID:1yYBiMsB
やったな
これでやりたい放題だ

705 :デフォルトの名無しさん:2017/04/12(水) 13:36:03.43 ID:mJY6Dj4I
Dからforkしてなんか造ろかな

706 :デフォルトの名無しさん:2017/04/27(木) 13:39:04.16 ID:3SqGR9rs
ウェブスクレイピングがしたいんですけど、おすすめのライブラリはありますか?

707 :デフォルトの名無しさん:2017/04/27(木) 13:47:16.44 ID:R6dFUrFW
curl

708 :デフォルトの名無しさん:2017/04/27(木) 15:23:45.81 ID:3SqGR9rs
なるほど。標準にありますね。

709 :デフォルトの名無しさん:2017/04/27(木) 18:53:26.24 ID:tG7qJtaK
もしかしてVisualDのプロジェクトはリソースエディタ使えない感じ?

710 :デフォルトの名無しさん:2017/05/02(火) 22:43:12.96 ID:FexDPfOP
クラスのメンバ変数をファイルに保存する一番手軽な方法は何になりますか?

711 :710:2017/05/02(火) 22:49:15.71 ID:FexDPfOP
自己解決。
std.csvとかstd.jsonあたりか。

712 :710:2017/05/03(水) 00:01:58.26 ID:V/UCIUww
しかしどちらも手軽ではなかったようだ。

713 :デフォルトの名無しさん:2017/06/03(土) 19:51:28.68 ID:+wJRfmD9
std.xmlはいつまで非推奨なんだよ
作り直すならはやくやれ
kxmlいつのまにか通らなくなるし

714 :デフォルトの名無しさん:2017/06/04(日) 05:43:43.21 ID:KL8jQ9cr
xmlはガチで実装しようとすると仕様のデカさ半端じゃないしな
周辺仕様(xsd,xslt,xpathくらいはほしいな)までやる気なのかもしれん。そうなったらかなり使えるはずだな!

173 KB
新着レスの表示

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :


read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)