[過去ログ] Rust part30 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
714: はちみつ餃子 ◆8X2XSCHEME 06/09(月)22:14 ID:aoh/5V/q(3/3) AAS
C/C++ のマクロが駄目なのは衛生的じゃないからという問題以前に
スコープのルールなどを貫通してトークン単位でしか解釈しないからで、
それに対して構文解析してからそれを書き換えていくタイプのマクロは本物のマクロ (true macro) と呼んだりすることがある。
715: 06/10(火)01:25 ID:baavX47h(1) AAS
「衛生的なマクロ」ではなく「衛生的マクロ」
複合名詞化した専門用語なので連体形の「な」を付けるのは不健全
「健全なマクロ」も「健全マクロ」とすれば不健全度が和らぐ
716: 06/10(火)01:28 ID:zWRGTibt(1) AAS
Rustはマクロも安全で強力でいいね
717: 06/10(火)01:42 ID:OrUO8mmc(1/2) AAS
プリプロセッサは駄目だと言われることがある
マクロをすべて展開した後に残るものが機械語や中間言語のたぐいだったら
それは前処理などではなくコンパイラの本質なのだが、そんな言語はほとんどない
718
(1): 06/10(火)02:16 ID:HpZ87BJ9(1) AAS
結局利便性と言語本来の堅牢性のトレードオフであり、前者をより重視している言語を不健全だとかいうのは不遜
マクロ自体が存在しない言語から見ればRustのマクロも不健全なのだから
719: 06/10(火)02:21 ID:I0746o4+(1) AAS
>>718
hygienic macroの意味すら理解できないマヌケは出直して来い
720
(1): 06/10(火)07:40 ID:NHBgn55o(1) AAS
このスレ、訳語の話題が好きね
721: 06/10(火)08:56 ID:JftAYQGG(1) AAS
マクロが無ければコンパイルはもうずいぶん速くなってただろう
再コンパイルで全体を書き換えとかしなくても良かった
マクロは害でしかない
722: 06/10(火)11:28 ID:Xnr//oCx(1) AAS
>>720
英語の原文の意図の話題と捉えていただきたい
訳語そのものに意味があるのではないし
723: 06/10(火)11:59 ID:OrUO8mmc(2/2) AAS
printlnは害でしかないという結論になればそれはそれでいい
一番困るのは、printlnは友達だけどマクロは排除するべきみたいなやつ
724: 06/10(火)12:27 ID:sYrAmguw(1) AAS
自分でマクロを封印しておいてRustは記述量が多いとか文句言う人も見かける
「マクロ=悪」の先入観で最初から視野に入れてないなら仕方ないけど
725
(1): 06/10(火)12:50 ID:Ry2q2P+U(1) AAS
そういや、printlnがマクロなのは、どういう設計上の判断なのかな?
726
(2): 06/10(火)12:53 ID:elVv+WXw(1) AAS
>>725
Rustが可変長引数書けないクソ言語だからだろ
727: 06/10(火)13:11 ID:5Ydz39vk(1) AAS
Rustの次の言語に期待してる
728: 06/10(火)14:11 ID:TSrtovVZ(1) AAS
>>726
その辺からガチガチなんだな
729: 06/10(火)16:00 ID:HozJcGjt(1/3) AAS
>>726
どの静的型付け言語の可変長引数も末尾に同じ型で暗黙に個数を渡す
Rustはスライスで対応してる
730
(1): 06/10(火)16:03 ID:HozJcGjt(2/3) AAS
一方でprintf系はどの安全な言語も静的に個数と型チェックするため言語組み込みになっていてRustも同じ
731: 06/10(火)16:13 ID:HozJcGjt(3/3) AAS
言語組み込みでもRustなら関数風手続きマクロと同じ形にできるのでprintなどformat系はマクロ記法
732: 06/10(火)16:47 ID:S2dix7lV(1) AAS
うわでた
733: 06/10(火)16:50 ID:7qJHI/Wj(1) AAS
RustはC++のiosteamを取り入れるべきだったね
734
(2): 06/10(火)17:32 ID:6a9r0WpG(1) AAS
Rustのフォーマット文字列で変数取り込めるのは不衛生なマクロの例だよ
そもそも構文解析とは無関係に単なる文字列を独自に解釈しているから真のマクロですらない
735: 06/10(火)17:42 ID:g81VuXMB(1) AAS
>>734
Rustにはprocedural macroもあるさ
736: 06/10(火)17:57 ID:IO/uE4l6(1) AAS
>>730
constexprと同等のコンパイル時評価ができれば言語組み込みじゃなくkても静的に個数と型のチェックは可能だよ
亀のような歩みだけどRustも一応その方向に進んでいる
737
(1): 06/10(火)21:25 ID:210+b0Ig(1/2) AAS
>>734
Rustのマクロは2種類あることを理解できてない?
古典的なマクロは衛生的だよ
738
(1): 06/10(火)21:31 ID:5sczGeWD(1) AAS
>>737
そりゃ生ポを封印してスマポを使えばC++でも安全なコードが書けると言っているようなものだ
739: 06/10(火)21:53 ID:210+b0Ig(2/2) AAS
>>738
衛生的は古典的マクロ上の概念だよ
構文木を自在に操れる手続きマクロは枠外だけど安全だよ
740: 06/10(火)22:17 ID:tc1jgizD(1) AAS
今度はマクロの名称で論争すかw
Rustのプログラムが書かれないスレだねえw
741: 06/10(火)23:09 ID:ZGMSD8h1(1) AAS
実際の所Rust使うようなのは、何かしらの他言語を相応のレベルで習得してるから
いちいち人に質問するようなことにならない
742: 06/10(火)23:33 ID:qWI8P8cy(1) AAS
>>704
>>707
Rustで最も使われるのは属性マクロとderiveマクロ
インライン展開のために使う人はいない
743: 06/11(水)12:22 ID:jlvxxwmL(1) AAS
>>677
面白そうだけど雑誌1冊に1500円か~…
普通の本買えちゃう
1-
あと 259 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.021s