Mozilla発のRust言語のスレ
公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust
Web上の実行環境
https://play.rust-lang.org
前スレ
Rust part8
https://mevius.5ch.net/test/read.cgi/tech/1579834072/
Rust part9
■ このスレッドは過去ログ倉庫に格納されています
2020/08/23(日) 01:07:35.52ID:MgEpWwVh
557デフォルトの名無しさん
2021/01/03(日) 17:51:55.22ID:CkWAgifP スライムが5000匹現れた!
558デフォルトの名無しさん
2021/01/03(日) 20:23:57.03ID:ixJIhJjK559デフォルトの名無しさん
2021/01/03(日) 21:45:20.19ID:hFPMmBD/ single writer or multiple readerのモデルに沿うようなロジックに変換するか
interior mutabilityを使うかのどちらか
interior mutabilityを使うかのどちらか
560デフォルトの名無しさん
2021/01/05(火) 22:41:10.79ID:fwCCjwkT561デフォルトの名無しさん
2021/01/05(火) 23:32:43.62ID:rno8zcnm RustでTDみたいなブラウザゲー作った猛者おりゅ?
562デフォルトの名無しさん
2021/01/08(金) 08:35:58.68ID:WNrzsb9T なんでこんなゴミを100M単位でボコボコダウンロードせなならんのや
ゴミ
ゴミ
563デフォルトの名無しさん
2021/01/09(土) 00:36:27.01ID:ntvhJtwv >>562
それって回線がゴミなだけじゃ...
それって回線がゴミなだけじゃ...
564デフォルトの名無しさん
2021/01/10(日) 12:11:15.45ID:smlN1G6e 評価順序のルールがよくわからないんですが、
タプル生成のときの呼出し順序って保証がありますか?
つまり
(foo(), bar())
みたいに書いたときに foo が常に先に呼ばれることは保証されますか?
タプル生成のときの呼出し順序って保証がありますか?
つまり
(foo(), bar())
みたいに書いたときに foo が常に先に呼ばれることは保証されますか?
565デフォルトの名無しさん
2021/01/10(日) 13:02:46.89ID:fqhi9u3I 保証されてるんじゃない?
でも呼び出し順が重要なら行を分けて書いてからtupleに入れたほうがいいような気もする
The meaning of each kind of expression dictates several things:
・Whether or not to evaluate the sub-expressions when evaluating the expression
・The order in which to evaluate the sub-expressions
・How to combine the sub-expressions' values to obtain the value of the expression
https://doc.rust-lang.org/reference/expressions.html
でも呼び出し順が重要なら行を分けて書いてからtupleに入れたほうがいいような気もする
The meaning of each kind of expression dictates several things:
・Whether or not to evaluate the sub-expressions when evaluating the expression
・The order in which to evaluate the sub-expressions
・How to combine the sub-expressions' values to obtain the value of the expression
https://doc.rust-lang.org/reference/expressions.html
566デフォルトの名無しさん
2021/01/10(日) 15:22:53.59ID:fqhi9u3I567デフォルトの名無しさん
2021/01/10(日) 15:34:43.17ID:smlN1G6e568デフォルトの名無しさん
2021/01/11(月) 14:09:54.51ID:MiJ5pxpq ファイル (またはネットワーク) から得られる所定の書式のレコードの繰り返しを
イテレータとして抽象化したいと考えました。
(ちなみにレコードの繰り返しの前にレコードの個数を含むヘッダもあります。)
しかし IO はエラーの可能性があります。
書式の仕様に違反する入力になっている可能性もあります。
イテレータが返す型を Option<Result<要素の型,エラーの型>> としてしまうと
エラーの時点で終端という扱いにならないので様々なメソッドと組み合わせ難いですし、
Result を挟まないとエラーの内容を返せないのでハンドリングしづらいです。
何か綺麗にやれるイディオムのようなものがあったりしませんか?
イテレータとして抽象化したいと考えました。
(ちなみにレコードの繰り返しの前にレコードの個数を含むヘッダもあります。)
しかし IO はエラーの可能性があります。
書式の仕様に違反する入力になっている可能性もあります。
イテレータが返す型を Option<Result<要素の型,エラーの型>> としてしまうと
エラーの時点で終端という扱いにならないので様々なメソッドと組み合わせ難いですし、
Result を挟まないとエラーの内容を返せないのでハンドリングしづらいです。
何か綺麗にやれるイディオムのようなものがあったりしませんか?
569デフォルトの名無しさん
2021/01/11(月) 15:21:23.54ID:8i1ZTkbL エラーの時点で終端にするかどうかは呼び出し側が決めることじゃない?
Option<Result<T, E>>もResult<Option<T>, E>もイディオムとしてよく使われてる
Option<Result<T, E>>もResult<Option<T>, E>もイディオムとしてよく使われてる
570デフォルトの名無しさん
2021/01/11(月) 15:47:03.74ID:MiJ5pxpq >>569
出来るか出来ないかで言えば出来るし好きにすれば良い話ではあるんですが、
標準で良いされている様々なメソッド (たとえば map のような基本的なメソッドさえ!)
と「組み合わせ難い」ということが綺麗じゃないなぁという気持ちなんですが、
そこらへんの不格好さは許容するしかない雰囲気ということでしょうか?
(通常の終端に到達するのとは別に) 中断を表現する方法があって
中断の理由を伝播するのに便利な語彙を詰め込んだクレートがあったりすると
助かるんですが。
出来るか出来ないかで言えば出来るし好きにすれば良い話ではあるんですが、
標準で良いされている様々なメソッド (たとえば map のような基本的なメソッドさえ!)
と「組み合わせ難い」ということが綺麗じゃないなぁという気持ちなんですが、
そこらへんの不格好さは許容するしかない雰囲気ということでしょうか?
(通常の終端に到達するのとは別に) 中断を表現する方法があって
中断の理由を伝播するのに便利な語彙を詰め込んだクレートがあったりすると
助かるんですが。
571デフォルトの名無しさん
2021/01/11(月) 16:05:22.66ID:cgTcg0uf >>570
公式にあるイディオムっぽいのはこれとか。
https://doc.rust-lang.org/rust-by-example/error/iter_result.html
クレートは探すと色々見つかるけど、結局「便利な」ってのが人それぞれだし、あまり流行ってる感じはしないな。
むしろその中断表現をうまくやるアイデアがあるなら自分で作ったほうがいいのでは。
公式にあるイディオムっぽいのはこれとか。
https://doc.rust-lang.org/rust-by-example/error/iter_result.html
クレートは探すと色々見つかるけど、結局「便利な」ってのが人それぞれだし、あまり流行ってる感じはしないな。
むしろその中断表現をうまくやるアイデアがあるなら自分で作ったほうがいいのでは。
572デフォルトの名無しさん
2021/01/11(月) 16:41:17.67ID:8i1ZTkbL >>570
組み合わせ難いと言ってる内容をコードで示してくれないとなんとも
組み合わせ難いと言ってる内容をコードで示してくれないとなんとも
573デフォルトの名無しさん
2021/01/11(月) 20:34:05.33ID:D6pgjuRM イテレータとして抽象化したいってどういう意味なの
Iteratorをimplするってことなのかしら
Iteratorをimplするってことなのかしら
574デフォルトの名無しさん
2021/01/11(月) 23:06:51.09ID:MiJ5pxpq >>573
ここでいう「イテレータとして」というのは std::iter::Iterator に限るわけではなく、
繰り返しを表現する何らかの型定義と思ってください。
適当なクレートがあるならそれでいいですし、考え方だけでもいいです。
欲しい機能をあらためてまとめると
・ 繰り返しに (終端に到達する以外の) 中断の方法が用意されている
・ 中断したときに中断の理由 (エラー型の値) を伝える方法がある
なのですが、
std::iter::Iterator だと next が返す Option<Result<T, E>> でエラーのときに
「中断」しようとすると for 文の中で break する書き方くらいしか思いつかず、
自分で便利なものを作ろうにもどう作れば便利になるのかも
想像がつかないのです。
ここでいう「イテレータとして」というのは std::iter::Iterator に限るわけではなく、
繰り返しを表現する何らかの型定義と思ってください。
適当なクレートがあるならそれでいいですし、考え方だけでもいいです。
欲しい機能をあらためてまとめると
・ 繰り返しに (終端に到達する以外の) 中断の方法が用意されている
・ 中断したときに中断の理由 (エラー型の値) を伝える方法がある
なのですが、
std::iter::Iterator だと next が返す Option<Result<T, E>> でエラーのときに
「中断」しようとすると for 文の中で break する書き方くらいしか思いつかず、
自分で便利なものを作ろうにもどう作れば便利になるのかも
想像がつかないのです。
575デフォルトの名無しさん
2021/01/12(火) 02:11:34.65ID:yVKQhIbd >>574
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=aaf882f54a7b6330ee6ad2106be92717
こんな感じでscan使えばNoneを返したところで
イテレーションを中断できるしErrの値も列挙できる
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=aaf882f54a7b6330ee6ad2106be92717
こんな感じでscan使えばNoneを返したところで
イテレーションを中断できるしErrの値も列挙できる
576デフォルトの名無しさん
2021/01/12(火) 02:12:25.76ID:yVKQhIbd 中断するだけなら take_while 使うという手もある
577デフォルトの名無しさん
2021/01/12(火) 08:20:11.60ID:tB/XA0DN 俺もtake_whileを思い浮かべたけど関数を作るわけじゃないんでしょ
ゴールがいまいちみえないからイメージでいいのでコードで用件を示してほしい
ゴールがいまいちみえないからイメージでいいのでコードで用件を示してほしい
578デフォルトの名無しさん
2021/01/12(火) 11:44:28.63ID:d2vxqIR1 単にエラー返して中断したいだけならResultにcollectしたりtry_for_eachで消費すればいいよ
イテレータアダプターとしてエラーも含めて列挙しつつ次につなげたいなら>>575が書いてるscanやtake_while系
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=113dcf689b4d941c89e714ebb1414958
イテレータアダプターとしてエラーも含めて列挙しつつ次につなげたいなら>>575が書いてるscanやtake_while系
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=113dcf689b4d941c89e714ebb1414958
579デフォルトの名無しさん
2021/01/12(火) 20:39:12.01ID:jo+wjg9+ AsRefトレイト使ってenumから&str返すのっておかしい?
Display実装で文字返してたらアロケートされるからAsRef使おうと思ってるんだけど
Display実装で文字返してたらアロケートされるからAsRef使おうと思ってるんだけど
580デフォルトの名無しさん
2021/01/12(火) 20:51:33.48ID:yLoNqPBg Rustの利用状況調査、ビジネス利用が進む一方で習得の難しさなどが依然課題
https://www.atmarkit.co.jp/ait/articles/2101/12/news046.html
https://www.atmarkit.co.jp/ait/articles/2101/12/news046.html
581デフォルトの名無しさん
2021/01/12(火) 21:41:00.77ID:yVKQhIbd >>579
AsRef に拘らず独立した as_str 用意した方が良いと思う
AsRef に拘らず独立した as_str 用意した方が良いと思う
582デフォルトの名無しさん
2021/01/12(火) 22:42:54.02ID:jo+wjg9+ AsPath が AsRef<Path> になった過去もあるから汎用性持たしてas_str実装するよりAsRefで実装する方がいいといいと思うけど他の人はどう思う?
583デフォルトの名無しさん
2021/01/12(火) 23:59:44.33ID:d2vxqIR1 as_strに一票
584デフォルトの名無しさん
2021/01/13(水) 08:49:31.39ID:u6YyMdJS 自分で使う、as_str
ライブラリとして他で使われる、AsRef
ライブラリとして他で使われる、AsRef
585デフォルトの名無しさん
2021/01/13(水) 09:22:05.24ID:C+q6Ee0+586デフォルトの名無しさん
2021/01/13(水) 10:55:46.25ID:vprvOgCy 単に学習難易度が高いだけでなく、学習が済んだ後もこの言語はめんどくさいが、
C++よりもむしろ。
C++よりもむしろ。
587デフォルトの名無しさん
2021/01/13(水) 12:45:22.11ID:jEgTYBOk >>582
AsRefはIntoOwnedと対になっていて str<->String Path<->PathBuf みたいな ref/owned 関係にあるもの同士の変換に使うものだと思う
enum -> &str はそういう関係にはないので微妙に思う
AsRefはIntoOwnedと対になっていて str<->String Path<->PathBuf みたいな ref/owned 関係にあるもの同士の変換に使うものだと思う
enum -> &str はそういう関係にはないので微妙に思う
588デフォルトの名無しさん
2021/01/13(水) 13:36:01.48ID:h3xJeFVZ >>586
風俗で事が済んだ後で説教始めるオッサンみたい
風俗で事が済んだ後で説教始めるオッサンみたい
589デフォルトの名無しさん
2021/01/13(水) 13:53:35.67ID:p3ZUleCk C++とRustで難しさめんどくささの方向性違うしな
好みの範疇だと思ってる
好みの範疇だと思ってる
590デフォルトの名無しさん
2021/01/13(水) 21:18:34.66ID:LRQMEOBI Rustのめんどくさいところはダントツでクレート関係だよな
標準で入ってないかつ、細かすぎるからコンパイル糞長いし、APIの仕様が統一されてないからドキュメント見ないと話にならんとこ
しかもクレートによっちゃライフタイム絡ませてきてめちゃくちゃになるし
C++はとにかく言語仕様のいらない豊富さが嫌気さす
標準で入ってないかつ、細かすぎるからコンパイル糞長いし、APIの仕様が統一されてないからドキュメント見ないと話にならんとこ
しかもクレートによっちゃライフタイム絡ませてきてめちゃくちゃになるし
C++はとにかく言語仕様のいらない豊富さが嫌気さす
591デフォルトの名無しさん
2021/01/13(水) 21:41:40.93ID:T6eZMBRK D言語かDelphiやれ
592デフォルトの名無しさん
2021/01/13(水) 23:05:33.49ID:q0SQNCdx もう.net5とC#でいいやん
593デフォルトの名無しさん
2021/01/14(木) 01:15:26.66ID:KFRMmKoU >>590
traitのおかげで他と比べるとAPIの統一性は達成されてるようにおもう
traitのおかげで他と比べるとAPIの統一性は達成されてるようにおもう
594デフォルトの名無しさん
2021/01/14(木) 01:57:39.37ID:vEkmKZjk クレートいいと思うけどな
標準ライブラリに入れると破壊的変更できなくなるけどクレートなら古いバージョン使うことも出来るから
気兼ねなくライブラリを進化させることが出来る
標準ライブラリに入れると破壊的変更できなくなるけどクレートなら古いバージョン使うことも出来るから
気兼ねなくライブラリを進化させることが出来る
595デフォルトの名無しさん
2021/01/14(木) 08:51:13.78ID:2AI/maqn pure-Rustのクレートなら今のところ確実にコンパイルは通るしな。
C++だとGitHubから拾ってきたライブラリが手元でコンパイル通るかどうか半々って感じで厳しい。
マイナーなディストリビューションのせいではあるけど、全部Ubuntuに統一というわけにもいかんしなぁ。
C++だとGitHubから拾ってきたライブラリが手元でコンパイル通るかどうか半々って感じで厳しい。
マイナーなディストリビューションのせいではあるけど、全部Ubuntuに統一というわけにもいかんしなぁ。
596デフォルトの名無しさん
2021/01/15(金) 20:23:33.58ID:nexKBT6E struct A;
struct A();
これとこれが定義できる理由ってなんかある?
struct A {};
だけで済むし、記述バラバラになるから統一したいんだけど
struct A();
これとこれが定義できる理由ってなんかある?
struct A {};
だけで済むし、記述バラバラになるから統一したいんだけど
597デフォルトの名無しさん
2021/01/16(土) 00:28:37.68ID:eM3BiVBC Rustが一番めんどくさいのはメモリ管理だな。
というよりメモリ管理の事ばかり気にしてプログラムしなくてはならない。
plain CやC++ではそこまで気にしなくて良い。
というよりメモリ管理の事ばかり気にしてプログラムしなくてはならない。
plain CやC++ではそこまで気にしなくて良い。
598デフォルトの名無しさん
2021/01/16(土) 01:28:58.93ID:/D0gGWRu ?????????
599デフォルトの名無しさん
2021/01/16(土) 11:40:00.74ID:IRkE9de+ いつものやつだ気にするな
600デフォルトの名無しさん
2021/01/16(土) 14:07:27.84ID:WupidWsu 結局メモリを気にする言語にへんな暗黙性を入れるのは失敗ってことだな。
601デフォルトの名無しさん
2021/01/21(木) 02:51:30.26ID:ooF1treM Rust で書いたツールにドキュメントを付けようとしています。
ライブラリのドキュメントではなくツールとしての使い方の詳細で、
readme に書くには大きすぎるような文章です。
cargo.toml では package.documentation でドキュメントの場所を URL で
示すことは出来るようですが、パッケージ内にドキュメントを一緒に入れておいて
cargo install で適当なところにインストールするようなことは出来ないのでしょうか?
あるいは cargo の直接の管理下には入れられないにしても
なんらかの習慣があったりしますか?
ライブラリのドキュメントではなくツールとしての使い方の詳細で、
readme に書くには大きすぎるような文章です。
cargo.toml では package.documentation でドキュメントの場所を URL で
示すことは出来るようですが、パッケージ内にドキュメントを一緒に入れておいて
cargo install で適当なところにインストールするようなことは出来ないのでしょうか?
あるいは cargo の直接の管理下には入れられないにしても
なんらかの習慣があったりしますか?
602デフォルトの名無しさん
2021/01/21(木) 07:00:10.04ID:OA0ITDHD ゴミ言語
603デフォルトの名無しさん
2021/01/21(木) 14:31:58.28ID:3s9o6nSW manみたいにドキュメントインストールする方法は知らないな。
ローカルにインストールしなくてもリポジトリのwikiあたりに使い方書いておいてそれ見てねでいいんじゃないかとおもうけど。
ローカルにインストールしなくてもリポジトリのwikiあたりに使い方書いておいてそれ見てねでいいんじゃないかとおもうけど。
604デフォルトの名無しさん
2021/01/21(木) 21:40:35.33ID:e05IQa93 ビルドスクリプト使ってenv::var("OUT_DIR”)で取得できるパスにファイル出力してるのが多いみたい
605601
2021/01/21(木) 22:18:23.22ID:ooF1treM なるほど。 そういうやり方もあるんですね。
でもドキュメントを各環境で適切な場所に
インストールするのは結局は手作業ということになりそうですね。
そういうことなら無理に自動化するのは諦めて
必要ならこのディレクトリで mdbook コマンドを実行してねみたいな感じにした方がかえって楽かな……
でもドキュメントを各環境で適切な場所に
インストールするのは結局は手作業ということになりそうですね。
そういうことなら無理に自動化するのは諦めて
必要ならこのディレクトリで mdbook コマンドを実行してねみたいな感じにした方がかえって楽かな……
606デフォルトの名無しさん
2021/01/21(木) 22:42:45.36ID:RNEMaupk cargo installでrustバイナリ以外をインストールするオフィシャルの方法は長年用意されてないから別の手段で頑張るしかない
https://github.com/rust-lang/cargo/issues/2729
https://github.com/rust-lang/cargo/issues/2729
607デフォルトの名無しさん
2021/01/24(日) 00:35:05.68ID:sFJWsyrt fn num() -> usize {
10.pow(9)
}
この定数はなぜ推論でusizeにならないんですか?
10.pow(9)
}
この定数はなぜ推論でusizeにならないんですか?
608デフォルトの名無しさん
2021/01/24(日) 19:33:54.83ID:tQo0lqIt もういい加減にしてクレート
609デフォルトの名無しさん
2021/02/03(水) 05:50:55.51ID:0f68sTlM なんでいちいちゴミをワサワサDLしなきゃならねーんだよゴミ言語
610デフォルトの名無しさん
2021/02/03(水) 21:58:38.43ID:eBd9v7fI どしたのわさわさ
611デフォルトの名無しさん
2021/02/03(水) 22:30:52.82ID:9t+fhzYK DustじゃなくRustだからゴミじゃなくてサビ言語だよ
612デフォルトの名無しさん
2021/02/04(木) 19:02:46.18ID:kqT/5NjJ &strってなんで&Stringじゃないの?
613デフォルトの名無しさん
2021/02/04(木) 20:19:37.24ID:qhstqCrC その2つは別のもの
どっちも存在する
&strはstring sliceのborrow
&StringはStringのborrow
どっちも存在する
&strはstring sliceのborrow
&StringはStringのborrow
614デフォルトの名無しさん
2021/02/04(木) 20:39:25.16ID:kqT/5NjJ615デフォルトの名無しさん
2021/02/04(木) 20:54:06.40ID:/mf7s98M それはDerefの効能
616デフォルトの名無しさん
2021/02/04(木) 21:06:19.09ID:/mf7s98M &strはStringの一部か全部へ参照 rust的にはスライスへの参照
&string[1..3] こういうこと
引数を&StringにするのStringの参照しか渡せないが、&strにすればStringの一部や””で囲った&strも渡せる
&string[1..3] こういうこと
引数を&StringにするのStringの参照しか渡せないが、&strにすればStringの一部や””で囲った&strも渡せる
617デフォルトの名無しさん
2021/02/05(金) 01:36:04.17ID:cqRcw5h6618デフォルトの名無しさん
2021/02/05(金) 01:46:13.57ID:ywW/HyXt >>617
StringはDeref<Target=str>を実装してるから&strをとる関数に&String渡せる
https://doc.rust-lang.org/std/string/struct.String.html#deref
StringはDeref<Target=str>を実装してるから&strをとる関数に&String渡せる
https://doc.rust-lang.org/std/string/struct.String.html#deref
619デフォルトの名無しさん
2021/02/05(金) 13:26:40.93ID:ou/gU5gH こういう暗黙変換て混乱を生むだけだと思う。
620デフォルトの名無しさん
2021/02/05(金) 15:35:15.48ID:cqRcw5h6621デフォルトの名無しさん
2021/02/06(土) 16:00:13.52ID:n3CNI52+ Option::filterのResult版って無いのかな?
622デフォルトの名無しさん
2021/02/06(土) 20:10:46.18ID:YrYkvgk0 >>621
条件に合致しない場合は何を返して欲しいの?
条件に合致しない場合は何を返して欲しいの?
623デフォルトの名無しさん
2021/02/06(土) 21:49:40.07ID:b3bDWNzR >>621
and_thenでErr返せば?
and_thenでErr返せば?
624デフォルトの名無しさん
2021/02/06(土) 21:55:40.99ID:n3CNI52+ >>622
引数で渡したエラー値をErrにくるんで返してほしい
引数で渡したエラー値をErrにくるんで返してほしい
625621
2021/02/07(日) 10:23:42.94ID:ik9tpY93 >>623
うん、それが最適でしたね
もともとTと&T -> boolからOption<T>を構築してたコードがあってSome(t).filter(|t| !t.is_hoge())ってしてたんだけど
それをResultに変えようとしたらif式で数行増えちゃって
ちょうど対応するようなのって無いのかな?って思って質問した次第でした
うん、それが最適でしたね
もともとTと&T -> boolからOption<T>を構築してたコードがあってSome(t).filter(|t| !t.is_hoge())ってしてたんだけど
それをResultに変えようとしたらif式で数行増えちゃって
ちょうど対応するようなのって無いのかな?って思って質問した次第でした
626デフォルトの名無しさん
2021/02/07(日) 11:40:55.51ID:NCHwUWPY それはok_orかok_or_elseで変換すればいいだけじゃなくて?
627デフォルトの名無しさん
2021/02/08(月) 19:14:38.32ID:g+sV++N4 Rustの良さが実感できるのは長大なコードをチーム開発するときなのかな
小さいプロジェクトならRustは
・生ポインタ使わない
・できる限りSTLを使う
・const、moveをデフォルトで使う
ことにしたC++に敵わないような
C++の方が柔軟だしず〜っと短く書けるし
小さいプロジェクトならRustは
・生ポインタ使わない
・できる限りSTLを使う
・const、moveをデフォルトで使う
ことにしたC++に敵わないような
C++の方が柔軟だしず〜っと短く書けるし
628デフォルトの名無しさん
2021/02/08(月) 19:48:24.23ID:g+sV++N4 あ、標準の機能とかイディオムを巧みに使えばC++並みに短く書けるよ、というのがあったら教えてください
629デフォルトの名無しさん
2021/02/08(月) 20:52:33.63ID:tj1CufyM どちらかというとC++の方が長くない?
ヘッダとソースの重複とかイテレータが冗長とかshared_ptrが長いとか。
あと小さいプロジェクトだとビルド環境構築の手間が
相対的に大きくなるからC++はつらいな。
ヘッダとソースの重複とかイテレータが冗長とかshared_ptrが長いとか。
あと小さいプロジェクトだとビルド環境構築の手間が
相対的に大きくなるからC++はつらいな。
630デフォルトの名無しさん
2021/02/08(月) 20:54:12.55ID:tj1CufyM あとなるべくconstにしたいのに多用すると結構長い
631デフォルトの名無しさん
2021/02/08(月) 21:36:53.51ID:UsSsiWeS RustスレなのでRustの味方をすれば良いと思うが、>>629はあまりにも言いがかりだろう
> ヘッダとソースの重複
重複するコードを書かなければならないことなどない
> イテレータが冗長
今どきautoせずにイテレータを書くことはない
> shared_ptrが長いとか
これは確かに
> ヘッダとソースの重複
重複するコードを書かなければならないことなどない
> イテレータが冗長
今どきautoせずにイテレータを書くことはない
> shared_ptrが長いとか
これは確かに
632デフォルトの名無しさん
2021/02/08(月) 22:14:40.49ID:tj1CufyM633デフォルトの名無しさん
2021/02/08(月) 22:48:07.53ID:UsSsiWeS >>632
特殊化が必要なら当然特殊化するし、プロトタイプしか与えられてない関数は当然中身を他の場所で実装しなければならない
が、いずれもヘッダその他で書いてあるのと同じことを繰り返し書くという意味ではない
「引数と返り値をプロトタイプと実装で二度書くじゃないか」と主張してるのか?
だとしたら、「Rustのtraitとimplは同じことの繰り返しだ」と同レベルのデタラメだ
> あとイテレータはbegin/endのこと
範囲for文はあるので、コンテナを走査する時にはbegin()もend()も書く必要はない
が、begin()やend()の指すイテレータが必要なら当然書く必要がある
しかしこれより簡潔な表現方法があるか?
特殊化が必要なら当然特殊化するし、プロトタイプしか与えられてない関数は当然中身を他の場所で実装しなければならない
が、いずれもヘッダその他で書いてあるのと同じことを繰り返し書くという意味ではない
「引数と返り値をプロトタイプと実装で二度書くじゃないか」と主張してるのか?
だとしたら、「Rustのtraitとimplは同じことの繰り返しだ」と同レベルのデタラメだ
> あとイテレータはbegin/endのこと
範囲for文はあるので、コンテナを走査する時にはbegin()もend()も書く必要はない
が、begin()やend()の指すイテレータが必要なら当然書く必要がある
しかしこれより簡潔な表現方法があるか?
634デフォルトの名無しさん
2021/02/08(月) 22:59:07.96ID:tj1CufyM >>633
いや、Rustのtraitとimplも同じことの繰り返しだと思うが。
もちろんそれぞれに意味があるのは分かるが、今話題になってるのは長いかどうかなので、単に長いのでは?ということ。
begin/endは言われてみれば確かにそんなに長くもないな。
いや、Rustのtraitとimplも同じことの繰り返しだと思うが。
もちろんそれぞれに意味があるのは分かるが、今話題になってるのは長いかどうかなので、単に長いのでは?ということ。
begin/endは言われてみれば確かにそんなに長くもないな。
635デフォルトの名無しさん
2021/02/08(月) 23:04:02.74ID:tj1CufyM そういえばRustだとderiveで導出できるようなのを
手で書かないといけないのも面倒だと思ってたけど
それも最近のC++だと便利になってるのかな?
手で書かないといけないのも面倒だと思ってたけど
それも最近のC++だと便利になってるのかな?
636デフォルトの名無しさん
2021/02/08(月) 23:09:22.70ID:UsSsiWeS >>634
〜〜〜〜〜ッッ!!?!!????
型を示すだけぞ???
どういう理屈で「どちらかというとC++の方が長い」???
「プロトタイプ」なる仕様が冗長だと思ってるということか?
だとしてもどこがどうRustより長い?
traitとimplが同じことの繰り返しに見えるなら尚更
〜〜〜〜〜ッッ!!?!!????
型を示すだけぞ???
どういう理屈で「どちらかというとC++の方が長い」???
「プロトタイプ」なる仕様が冗長だと思ってるということか?
だとしてもどこがどうRustより長い?
traitとimplが同じことの繰り返しに見えるなら尚更
637デフォルトの名無しさん
2021/02/08(月) 23:20:22.89ID:34Jom8HU 刃牙みてぇな驚き方
638デフォルトの名無しさん
2021/02/09(火) 00:25:25.36ID:HbSSO5iG >>636
気持ち悪いなお前……
気持ち悪いなお前……
639デフォルトの名無しさん
2021/02/09(火) 00:34:18.83ID:wDpL+x9E ゆうてID:tj1CufyMがもの知らん過ぎるよ
刃牙クンが正しい
刃牙クンが正しい
640デフォルトの名無しさん
2021/02/09(火) 00:49:55.66ID:M+MJQwFs >>627 がどういうところでrustを冗長に感じたのかが分からないと身のある議論にならないのではないか
641デフォルトの名無しさん
2021/02/09(火) 01:06:11.87ID:iu64Jkj8 let v2 = v.iter().take_while(pred).collect::<Vec<_>>();
auto iter_end = std::find_if_not(v.cbegin(), v.cend(), pred);
auto v2 = std::vector<Hoge>(v.cbegin(), iter_end);
auto iter_end = std::find_if_not(v.cbegin(), v.cend(), pred);
auto v2 = std::vector<Hoge>(v.cbegin(), iter_end);
642デフォルトの名無しさん
2021/02/09(火) 14:34:18.07ID:u94zqiaA Rust言語を推進する「Rust Foundation」設立。AWS、Google、マイクロソフト、モジラ、ファーウェイらが設立メンバー
https://www.publickey1.jp/blog/21/rustrust_foundationawsgoogle.html
https://www.publickey1.jp/blog/21/rustrust_foundationawsgoogle.html
643デフォルトの名無しさん
2021/02/09(火) 15:30:38.01ID:kPdoOyk6644デフォルトの名無しさん
2021/02/09(火) 15:37:53.29ID:hLMZgkSi ファーwww
ウェーイwww
ウェーイwww
645デフォルトの名無しさん
2021/02/09(火) 15:48:29.20ID:Pj9Pa3V5 >>642
GoogleもMSも節操ないな。
GoogleもMSも節操ないな。
646デフォルトの名無しさん
2021/02/09(火) 16:43:44.21ID:gWi0ogeT 非同期って結局のところtokio使えばいいの?
647デフォルトの名無しさん
2021/02/09(火) 17:12:10.08ID:hLMZgkSi648デフォルトの名無しさん
2021/02/09(火) 18:32:36.30ID:nK2/UuNc traitとimplが同じことの繰り返しは流石にキテレツ過ぎてワロタ
こういう基本的な言語仕様も分かってない人にとってRust使うメリットってあるのかな
「どっちが短く書けるか」については、流石にC++じゃないかな
良くも悪くも自由だし、短さだけを追求したクソコードも作れる
一方でRustも一応エルゴノミクスを掲げてはいるし、冗長さは感じない
C++が短くでき過ぎる、って言い方が正しいとおも
こういう基本的な言語仕様も分かってない人にとってRust使うメリットってあるのかな
「どっちが短く書けるか」については、流石にC++じゃないかな
良くも悪くも自由だし、短さだけを追求したクソコードも作れる
一方でRustも一応エルゴノミクスを掲げてはいるし、冗長さは感じない
C++が短くでき過ぎる、って言い方が正しいとおも
649デフォルトの名無しさん
2021/02/09(火) 19:12:15.97ID:tpC3waGh >>642
林檎やfacebookの参入、ゲームやスマホでの導入例が出てくればこれはかなりの地位を占めるな
林檎やfacebookの参入、ゲームやスマホでの導入例が出てくればこれはかなりの地位を占めるな
650デフォルトの名無しさん
2021/02/09(火) 20:13:22.59ID:G8as3nFu コードを短くできるなんてどうでもいいことに囚われて半端になってる印象。
651デフォルトの名無しさん
2021/02/09(火) 21:03:00.62ID:9cByPiIZ >>650
rustが?
rustが?
652デフォルトの名無しさん
2021/02/09(火) 22:20:32.26ID:tpC3waGh どうでもいいことか?
653デフォルトの名無しさん
2021/02/09(火) 23:19:34.12ID:iu64Jkj8 程度問題
654デフォルトの名無しさん
2021/02/10(水) 00:30:31.60ID:KzEq3JVg 具体的なコードの話も出さずに議論されても困る
655デフォルトの名無しさん
2021/02/10(水) 02:24:50.74ID:E/DLe6HD Firefoxでは160,000行のC ++コードを85,000行のRustコードに置き換えたと言ってる
656デフォルトの名無しさん
2021/02/10(水) 06:12:58.16ID:IJdnUleO いやーRust難しくないっすか…
3回くらい入門したけどrustlingsのiterあたりでつらくなってくる
アホは他の優しい最新言語やったほうがいいんですかねぇ
3回くらい入門したけどrustlingsのiterあたりでつらくなってくる
アホは他の優しい最新言語やったほうがいいんですかねぇ
657デフォルトの名無しさん
2021/02/10(水) 08:20:43.62ID:Y3LDlcI4 でもRustのコンパイル基盤のLLVMはいつまで経ってもC++製のまんまだよね
書き直さなきゃC++の牙城は壊せんで
書き直さなきゃC++の牙城は壊せんで
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 米大統領報道官「日本と強固な同盟維持、中国とも協力」 [少考さん★]
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ [冬月記者★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- ゆたぼん 二重手術を報告「めちゃくちゃ気に入っています」 [muffin★]
- 【山形】クマ駆除で誤射した猟友会隊員に町が1663万円請求へ...弾当たり男性大けが2023年 小国町 [nita★]
- 【マギレコ】VIPでマギアレコード&マギアエクセドラ【まどドラ】
- 中国人、ガチ超正論。「日本人がアイヌに対してやったことを『問題ない』とするなら、中国が日本人に同じことをしても文句ないだろう?」 [314039747]
- 【悲報】新米、全く売れなくて倉庫が満杯になってしまうwwwwwwwwwwwwwwwwwwww [802034645]
- 【画像】中国、ガチで未来感ハンパない変態スマホを発明してしまう
- 【高市悲報】ウクライナ、ガチで敗北か?東部の帰属国民投票にかける可能性-ゼレンスキー [888298477]
- 【画像】サーナイト「お、起きないとチューしちゃうぞ…」ボソ
