【初心者歓迎】C/C++室 Ver.104【環境依存OK】

■ このスレッドは過去ログ倉庫に格納されています
2018/12/28(金) 06:04:52.38ID:ufThBpcD
エスケープシーケンスやWin32APIなどの環境依存なものもOK
そのような質問は必ず環境を書きましょう
半角空白やタブでのインデントはスレに貼ると無くなります

コードを貼れる所
http://codepad.org/
https://ideone.com/

前スレ
【初心者歓迎】C/C++室 Ver.103【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1530384293/
2019/01/05(土) 08:53:49.71ID:b8ezfK6l
じゃあ自力で頑張って下さい
59デフォルトの名無しさん
垢版 |
2019/01/05(土) 12:19:51.40ID:wMTnOPNR
>>55
http://eternalwindows.jp/control/controlbase/controlbase06.html
http://chokuto.ifdef.jp/urawaza/api/SetWindowLong.html
SetWindowLong 関数で変更されたそのデータは SetWindowPos 関数が呼び出されるまで反映されません 👀
Rock54: Caution(BBR-MD5:79b7e0206b0fd5ffcfddd514fa488d36)
6055
垢版 |
2019/01/05(土) 22:25:41.89ID:1yzAmca9
>>59
SetWindowLong()後にSetWindowPos()はコールしていたのですが、
WM_SETICONをSendMessage()するときのアイコンハンドル取得方法がまずかっただけでした(汗)
(LoadIcon()のHINSTANCE引数が正しくなかった)
今は問題なくアイコンが表示できています。
お騒がせしました!
2019/01/06(日) 01:50:50.63ID:crl+XFhH
>>60
https://g.co/kgs/ZEZu9X 👀
Rock54: Caution(BBR-MD5:36abcc1a7fb24404caf692865ab3af18)
2019/01/06(日) 13:24:20.28
>>57
盛んでないなら先ず盛んにしろよ
欲しい者は先ず自ら与えると言うぞ
2019/01/06(日) 16:05:17.54ID:s8+QTrGL
難癖つけ太郎
2019/01/07(月) 19:00:48.26ID:29GPlbw0
ツケタロサァン
2019/01/09(水) 15:58:07.62ID:LoPBTm2D
C++て3年周期で新規格リリースされるんだなC++20が来年発表て、
えーかげんもうついていけんわ
家電のモデルチェンジじゃあるまいし。言語の追っかけなんかやってられん。
2019/01/09(水) 18:23:48.31ID:h/UgfZoi
C言語の需要はそういうところじゃねえの
もうこれ以上進歩しないが大抵のことはできる
適度に難しいところもある
2019/01/09(水) 18:30:18.01ID:wEN9wc2j
>>65
もしそうしたければ古い版の規格で書いてもええんやで。
C++20 が出ても C++11 が消滅するというわけでなし。
まあ主要なコンパイラがサポートしなくなったらしょうがないけど……
2019/01/09(水) 22:38:39.03ID:teyoDIou
C++11が神過ぎる。
それまでとは雲泥の差。
これだけでずっと戦える。
2019/01/10(木) 07:42:30.84ID:JUlDRUM2
>>67
言語って自分だけで済まんだろ
キャッチアップしていかんと人の書いたコードが読めなくなる
こんな短期間でアップデート繰り返すんじゃなくもっと精査した上で規格変更しろといいたい
アップデート繰り返す度にユーザ減少してるだろ
2019/01/10(木) 07:53:15.61ID:JUlDRUM2
>>66
new/delete無造作に使ったコードを組込なんかで書くと、
メモリフラグメント作りまくるだけだからな。
ハードウェアの一部としてRTOS上で安定動作させるためには、
ポインタ使いまくりのbetter Cとして書くしかない。
4kB メモリのRL78でコード書いてみろと
71デフォルトの名無しさん
垢版 |
2019/01/10(木) 11:58:03.74ID:+qf2Eno1
>>69
C++の良かったのは仕様が枯れてることだったのにな
今は逆を逝っててどんどん人が離れて逝ってる
2019/01/10(木) 13:39:40.00ID:AlpMGZ50
utf-8の文字コードが格納されてるchar配列から、デコードされた文字をstd::string型に入れる方法を教えてください
以下のような変換を実装したいです

char ai[] = {0xe3, 0x81, 0x82, 0xe3, 0x81, 0x84}; // "あい"のutf-8コード
std::string str = ??
std::cout << str << "\n"; // prints "あい"
2019/01/10(木) 14:15:08.46ID:XfqugDbL
>>72
aiの最後にnull文字は入れないの?
入れないなら
srd::string str { ai, sizeof(ai)/sizeof(ai[0]) };
74デフォルトの名無しさん
垢版 |
2019/01/10(木) 14:38:26.46ID:f6PjJx/6
>>72
wstringに入れろ
2019/01/10(木) 17:13:07.72ID:2cm4ZQb/
>>69
時間を掛けたら扱う項目 (提案) も増えるからどっちでも同じだよ。
一度の変更が大量になるよりは小さな変更を頻繁にした方が良いというポリシー。
その方が実際の運用で出た問題をフィードバックしやすいという利点もあるしな。

>>73
配列の大きさを知るには std::size か std::extent を使えよ。
2019/01/10(木) 17:38:07.90ID:d84NrtHP
C++ には C 以来伝統の sizeof / sizeof 以外に
配列の要素数を知る方法があったはず…と思ったが std::size だったか。
でも標準で使えるのは C++17 以降だよね。

「C++ならテンプレート使えばできますよ」的な情報は色々あるけど、
結局、移植性を考えると古典的な sizeof 割り算が便利だったり。
2019/01/10(木) 19:00:06.40ID:K/rzzMpV
ちょっと知ったかは、よくよく初心者を馬鹿にする。
自分も、初めは、初心者だったくせに。
2019/01/10(木) 19:11:35.64
スタティックおじさんにならないように戒めなければ
79デフォルトの名無しさん
垢版 |
2019/01/10(木) 20:37:36.88ID:WIE9C9TP
ヒカキンの年収が10億超え!?明石家さんま・坂上忍も驚愕の総資産とは??
https://logtube.jp/variety/28439
【衝撃】ヒカキンの年収・月収を暴露!広告収入が15億円超え!?
https://nicotubers.com/yutuber/hikakin-nensyu-gessyu/
HIKAKIN(ヒカキン)の年収が14億円!?トップYouTuberになるまでの道のりは?
https://youtuberhyouron.com/hikakinnensyu/
ヒカキンの月収は1億円!読唇術でダウンタウンなうの坂上忍を検証!
https://mitarashi-highland.com/blog/fun/hikakin
なぜか観てしまう!!サバイバル系youtuberまとめ
http://tokyohitori.hatenablog.com/entry/2016/10/01/102830
あのPewDiePieがついに、初心YouTuber向けに「視聴回数」「チャンネル登録者数」を増やすコツを公開!
http://naototube.com/2017/08/14/for-new-youtubers/
27歳で年収8億円 女性ユーチューバー「リリー・シン」の生き方
https://headlines.yahoo.co.jp/article?a=20170802-00017174-forbes-bus_all
1年で何十億円も稼ぐ高収入ユーチューバー世界ランキングトップ10
https://gigazine.net/news/20151016-highest-paid-youtuber-2015/
おもちゃのレビューで年間12億円! 今、話題のYouTuberは6歳の男の子
https://www.businessinsider.jp/post-108355
彼女はいかにして750万人のファンがいるYouTubeスターとなったのか?
https://www.businessinsider.jp/post-242
1億円稼ぐ9歳のYouTuberがすごすぎる……アメリカで話題のEvanTubeHD
https://weekly.ascii.jp/elem/000/000/305/305548/
世界で最も稼ぐユーチューバー、2連覇の首位は年収17億円
https://forbesjapan.com/articles/detail/14474
2019/01/10(木) 22:25:25.90ID:jgU/jZru
std::sizeが使えなかったとしても(主要なゲーム機の環境の1つはC++14止まりだし)、テンプレートで取得するのはC++の移植性には影響しなくないか?
2019/01/10(木) 22:41:00.66ID:poVh1zdG
ていうかGUIとかマングリングの統一とかvtblが最初に来ることとか
テンプレート周りばっかりじゃなくて解決して欲しい問題いっぱいあるんだけどなぁ
あと個人的にはプロパティとかも欲しい
2019/01/11(金) 00:50:02.24ID:le18Krsa
配列の要素数を取得するだけのものを自分で書くならこんな感じかな。

template<class T, size_t N>
std::size_t size(T (&)[N]) {
return N;
}

実装自体には sizeof を使ったって害はあまりない (あえてする意味もないけど)。

template<class T, size_t N>
std::size_t size(T (&a)[N]) {
return sizeof a/sizeof a[0];
}

sizeof でのやり方を「そのまま」書く、またはマクロで覆うのは、
型チェックの支援を受けられないから変なミスをしやすい。

変数 a が (配列ではなく) ポインタのときに
sizeof(a)/sizeof(a[0]) という式がコンパイルは通っちゃったりするし。
変数名を二回書かなきゃならないのも、
何かの修正のときにうっかり片方だけ書き換えたりとか有りがち。

プログラミングをそれなりに長くやってると、
馬鹿みたいなつまらないミスをした経験のひとつやふたつやみっつや二百くらいはあるでしょ。
型システムはそういうのを多少なりとも事前に検出してくれるありがたい仕組みなんだから、
積極的に活用したいところ。
2019/01/11(金) 01:26:18.63ID:bUNhmYA9
C++標準じゃないけどVC++の_countofが重宝してる
2019/01/11(金) 07:47:16.24ID:PueFbUtC
>>75
>時間を掛けたら扱う項目 (提案) も増えるからどっちでも同じだよ。

同じ訳ないだろが、
仕様変更、追加したものの、さんざん使ったあげくそんなもん使うなってのはいくらでもあるだろ。
auto_ptrはどーした。
だから3年なんて製品のモデルチェンジ並の仕様変更じゃなく、言語オタク共がもっと時間をかけて精査して、
10年に一度ぐらいの変更にしとけってこった。
そもそもCのプリプロセスだったわけで、
Cとの整合性は確保した上で双方同時に仕様変更しろといいたい。
だいたいどっち見て仕様変更してんの?言語オタクのセンズリか?wwww
2019/01/11(金) 11:25:51.10ID:saOHWwmK
3年ごとなのはいいと思うけど、クラステンプレートの引数推定なんか
関数テンプレートみたいに推論できないテンプレート引数が残る形に出来ない上に
エイリアステンプレートには使えないしクラステンプレートの参照にも使えないし
デフォルトテンプレート引数では省略できないしで・・

便利だけど、あまりにも片手落ちじゃね?と思うことはある
2019/01/11(金) 13:40:13.69ID:le18Krsa
>>84
> 同じ訳ないだろが、
> 仕様変更、追加したものの、さんざん使ったあげくそんなもん使うなってのはいくらでもあるだろ。

同じだよ。
散々使ったからようやくわかったことで、ただの言語オタクどもがどんだけ理屈をこねた
ところで現実的なプロダクトの実際なんかわかりゃしない。
精査をしっかりすれば事前にどうにか出来てたと本当に思うのか?

> auto_ptrはどーした。

これはまあ……アレだ……
これ自体は擁護しようがないほどアレだけど、
一番アレなのを抜き出して言うのもちょっとどうかなって。

強いて言えば、当時としてはスマートポインタという概念を提示出来たという
成果といえなくもないんじゃないかな……。

> 10年に一度ぐらいの変更にしとけってこった。

https://i2.wp.com/ds3.jp/wp-content/uploads/2017/07/023.jpg

> だいたいどっち見て仕様変更してんの?言語オタクのセンズリか?

そうならないために言語オタクにゆだねない (実際の運用で見極める) という選択なのに、
お前はもっと言語オタクに活躍しろって言ってんだぞ。
おかしいだろ。
2019/01/11(金) 14:33:07.36ID:iMdUEP7b
仕様変更が止まってる言語はともかくとして仕様策定のない言語に比べればC++の更新スパンは割と長い方という認識がある

これより長いのメジャーどころだとC11(1,20年)/Fortran2008(5年)/Ada2005(10年)/Haskell(5年前後)くらい?
Haskellなんかは処理系拡張ゴリゴリだしアテにならないし他はもう古めかしさを感じるなぁ
88デフォルトの名無しさん
垢版 |
2019/01/11(金) 14:56:08.31ID:9UT8ehvY
これ以上Dをdisるのはやめて
2019/01/11(金) 16:08:50.25ID:c9plSaZI
まぁ、TypeScriptは年6回updateしてるけど次が待ち遠しいな。
2019/01/11(金) 20:26:13.94ID:KLK+GnJ4
426名無しでいいとも!@放送中は実況板で2019/01/10(木) 18:17:49.03ID:b7PfIJnh0

新しい物好きな人は、よく、古いもの馬鹿にする。
古いものに、大切なものがあることが、
よくあることを、知らない人が多い。
2019/01/12(土) 08:06:07.36ID:TXMmMfvK
古いという感覚を持つと話をしただけで古いものが悪いとは一言も言っていないが……?
一方でもしその良さが「新しい仕様を頻繁に覚えなくて良い」なら、言語に対して掛けるコストが減る事と、自身が怠惰である事の2面性を常に持つかもね

プログラマなんて怠惰でナンボだけど覚える事に怠惰か書く事に怠惰か人それぞれよね

個人的には草案で嬉しそうな機能を追加します!って言いながら実際の仕様では無限に延期される方が嫌
92デフォルトの名無しさん
垢版 |
2019/01/12(土) 13:08:56.44ID:k/r1EiKa
これな
youtube
qqwgldvnNlk
#t=41m41s
93388
垢版 |
2019/01/12(土) 23:22:31.27ID:0iVYXuy3
>>82
配列の参照のsizeofは配列のサイズじゃないから害はあるな()
94388
垢版 |
2019/01/12(土) 23:28:35.62ID:0iVYXuy3
>>84 は面白いよな、散々使うことで問題が見付かるって自分で初っ端から言ってるのに「だからスパンを長くしろ」つまり散々使うことが出来ないようにしろって言ってる
そして最後には言語オタクのセンズリかって、言ってる事が弾けまくってるな。

言語オタクのセンズリになってるのが不味いから、積極的に一定毎に更新するようにしていってるんだがな
2019/01/13(日) 09:10:56.47ID:47MX21Fj
何が言いたいのか分らん
2019/01/13(日) 09:35:19.34ID:e8OabTpu
箇条書きでよろ
2019/01/13(日) 14:11:24.44ID:goGtxYMD
おれは >>84 に同意だな
数年で更新ってそれがどれだけワークしてるのさ
だいたいどれだけ認知されてるのかようわからん小さい機能追加が山盛りな一方で
大規模なconstexprとかひかえめにいって大クソじゃん?
理論もなければ、現実のワークフローなにも考慮にはいってない
結局オナニーでしょ、何オタクかはしらんが
2019/01/13(日) 15:03:59.93ID:lykUAvmZ
1.仕様が確定してからでなければ実務には使われない
2.実務で使われないと良し悪しは分からない

3-1.仕様確定のスパンが短いと、仕様に提案されてから試されるまでが短い(もし悪ければ次で撤回も可能)
3-2.仕様確定のスパンが長いと、提案されてから実務で試されるまでが長い(撤回されないと言えば聞こえは良いが、当然悪いものが残り続ける)

んで仕様策定を言語オタクのオナニーって言ってるのに、実務で試されない、策定の期間だけ伸ばして言語オタクなんとかしろって言ってるように聞こえるからよく分からんわけだ
だって君たち仕様確定してからじゃないとそうそう草案の機能なんて使わないでしょ?追わないでしょ?私だってそうだ

期間が長ければその間に普及する概念も多くなるし(少なくともc++はそれを取り込む方針の言語なので)あんまり長くすると大変だと思うよ
2019/01/13(日) 16:52:54.35ID:bhcZ5Z4Z
>>97
c++14のconstexprは条件分岐とかループにも対応してるから、そこそこ使えるよ。
文字列リテラルの長さを取得する関数とかも定数化できるし。
テンプレートの非型引数をあれこれする関数を定数化したりとか。
2019/01/13(日) 16:58:40.56ID:goGtxYMD
機能追加したい人が、ブランチして機能追加して実務で実証して、
それから正式に仕様を提案すりゃいいじゃん
なんで仕方なく業務でC++使ってるだけなのにベータテストみたいな
仕様更新に巻きこまれなきゃならないのさ
2019/01/13(日) 17:05:15.75ID:zLcYabhS
そんなことよりrvoを強制してほしい…
2019/01/13(日) 17:05:25.96ID:bhcZ5Z4Z
仕様を確定させないと各コンパイラでの実装と互換性チェックとか出来ないし、
既存のコードが動かなくなるわけでもなし、
10年くらい経って十分枯れた機能を使ってれば良いだけでは?
2019/01/13(日) 17:06:11.78ID:goGtxYMD
>>99
その程度の最適化はコンパイラが勝手にやればよくね?
もっと大規模なことしたいからわざわざconstexprなんてキーワード追加して
かつ人間様がわざわざそれを指定するんだろ?
で大規模なことをできる仕様か?あれが?
どうせみんなデバッグするときにconstexprをはずしてんだろ?
アホと思わないか?
2019/01/13(日) 17:10:55.99ID:bhcZ5Z4Z
>>103
Visual Studioでしか試してないけど、わざわざ外さなくてもデバッグビルドでは定数化されないのが普通じゃないの?
2019/01/13(日) 17:11:37.75ID:zLcYabhS
constexpr相当を勝手にやられたら、参照してるほうがリコンパイルが必要か判断できなくなるんじゃないの?
2019/01/13(日) 17:27:56.15ID:bhcZ5Z4Z
constexpr指定を使わずに同じような定数化を自動でやるとなると、
一度全ての関数を定数化可能か調べるためのプレビルドみたいなことをしないと無理だよね。
2019/01/13(日) 17:43:24.56ID:goGtxYMD
定数畳み込みなんて古典的な最適化手法だし、
gccはstrlenの最適化やるだろ
だからもっと大規模なことをやるためのconstexprだろと言ってる
2019/01/13(日) 17:50:38.42ID:bhcZ5Z4Z
その最適化をコンパイラ依存でなく標準規格化したことに意味があると思うんだけど。
gccで出来ればあとは何でも良いの?
2019/01/13(日) 18:13:13.67ID:goGtxYMD
珍説どうも
その程度の最適化技術を持たないコンパイラベンダなんてどうでもいいな
clangのバックエンド自分で作った方が早い
2019/01/14(月) 02:10:17.55ID:ybeYuaGe
constexpr 相当のことはコンパイラが最適化で頑張るのが筋だというのは
まったく正当な意見だと思うんだが、本当に速度が必要な個所のチューニング
をしたいとき、つまりコンパイラの最適化以上のことがしたいときに
打てる手段が無かったりだとか処理系の拡張構文を使わなければならないというよりは、
不格好でも constexpr の方がマシ。

C++ は現実的に使えることを指向した言語で、現実はクソなんで、
クソを少しマシに書けるようにするってのは妥当な選択肢。
コンパイラが十分に賢いだとかいうような
理想的な世界で生きてる人は別に constexpr を使わなくてもいいよ。
2019/01/14(月) 06:19:38.07ID:S0iGLcvV
pythonやmatlabみたいに配列やvectorを:とかでスライス抽出できないんですか?
2019/01/14(月) 07:17:53.28ID:4qrkuOlT
技術スキンだけ高い奴が、できる奴と思い込んでるチキン。
2019/01/14(月) 09:22:28.84ID:UgNfZwvf
>>111
それをアセンブラで書いてみてくれ
2019/01/14(月) 10:26:42.41ID:3TGcl/LH
++20のfilterでスライスみたいな事ができるようになる
しばし待たれよ
2019/01/14(月) 13:02:31.28ID:BcFaCsuL
>>110
constexpr指定はコンパイラにはわからない関数呼び出し先で
定数化できる計算であるとコンパイラに教えられるので
指定できるならした方がいいだろうけど

>本当に速度が必要な個所のチューニング
そういう個所がコンパイル時にわかってる定数だけで構成されてる例なんて
まず滅多にないんだけどね
2019/01/14(月) 13:29:30.02ID:ybeYuaGe
>>115
>> 本当に速度が必要な個所のチューニング
> そういう個所がコンパイル時にわかってる定数だけで構成されてる例なんて
> まず滅多にないんだけどね

constexpr はコンパイラに対するヒントであるだけでなく、プログラマにとっての制約でもある。
「そういう (速度が必要な) 箇所」であるにもかかわらず実行時の値に依存しているということを
プログラマが気づくことが出来る (ので分離するなどの工夫をする機会があるかもしれない)
というのは十分に便利だよ。
2019/01/14(月) 13:39:03.52ID:BcFaCsuL
わかってないな
本当に解決しなきゃいけないボトルネックが、たかだか定数の畳み込みだけで
解決出来ることなどまず無いと言ってんの

ただの数回、数十回の普通の演算はそのままやっても十分速いんだよ
むしろ定数化できるとこを全部定数化したせいで、(即値にならないような構造体の場合)定数を読みに行くコストの方が大幅に高くなる可能性もある
constexprというか言語の機能を盲信しすぎ
2019/01/14(月) 13:47:53.15ID:BcFaCsuL
あと、
>「そういう (速度が必要な) 箇所」であるにもかかわらず実行時の値に依存しているということを
ファイルから読んだ内容、mainに渡された引数、ネットワークから受け取ったデータ
そういうの(および一度でもそれらと関わった変数)全て実行時の値だってわかってる?
2019/01/14(月) 22:35:17.67ID:SOyXSPCI
オフラインで複雑な計算して、結果をバイナリで埋め込んでおくことはよくやる
ゲームなら当たり前にやるワークフローだよな
しかしそういう典型的な用途にconstexprは向いてないという間抜け具合
C++でなんでもやるというのが目的になってんだよね
こういうのをオナニーって言う
2019/01/15(火) 09:17:36.65ID:f9+1p0X/
>>117-118
やりたいときに出来る方法があるというのは無いより「マシ」と私は >>110 で述べたが、
それが君にとっての妄信なのかい?
要するに、 constexpr の成果は限定的すぎると言いたいんだろ?
ほとんどの機能は個別に見ればどうでもいいような些細なものなのは普通のことだ。
2019/01/15(火) 09:57:48.09ID:fPstZ0f7
何度も言ってきたが、負けを認めたら死ぬ病気なのか?君は
2019/01/15(火) 10:02:02.52ID:fPstZ0f7
ついでに言えば、俺は「指定できるならした方がいい」と書いた
俺が成果を限定的だと貶してるんじゃなくて、
君が過信してるの
2019/01/15(火) 10:05:46.91ID:f9+1p0X/
>>122
じゃあ何が問題なんだい?
指定できるならした方がよくて、指定できるようになってるのは指定できないより良いというのなら意見は一致してるじゃないか。
2019/01/15(火) 10:23:37.90ID:p3r+u4ET
>本当に速度が必要な個所のチューニング
>をしたいとき、つまりコンパイラの最適化以上のことがしたいときに
>打てる手段が無かったりだとか処理系の拡張構文を使わなければならないというよりは、
>不格好でも constexpr の方がマシ。
2019/01/15(火) 10:26:22.74ID:fPstZ0f7
(途中送信してしまった)
本当に"速度"が必要なときに速度より移植性やC++標準への準拠を優先してconstexprマンセーする
これを過信と言わずして何と言う
2019/01/15(火) 10:40:35.59ID:f9+1p0X/
>>125
速度が必要な個所が「なるべく」移植性が高い形で表現できればそれに越したことは無いし、
更にそれ以上が欲しいなら移植性を犠牲にすることも出来るんだから、
constexpr の導入に何の問題もないだろ?
2019/01/15(火) 19:01:25.37ID:CKmovdLr
何でC++スレはプログラム板で勢いあるんですか?
2019/01/15(火) 19:02:26.94ID:CKmovdLr
C++で有名人になりたいです
どうすればいいでしょうか?
2019/01/15(火) 21:38:31.55ID:niK8DUcQ
>>128
c++ のコンパイラを c で記述すれば、それだけで有名になれると思います
gcc が c から c++ になったときは心底残念に思っていました
2019/01/15(火) 22:36:39.63ID:CKmovdLr
>>129
それって無理では‥
2019/01/16(水) 01:23:29.16ID:CLrL7dI7
>>130
つ ttps://www.amazon.co.jp/dp/4797344369
2019/01/16(水) 04:10:04.96ID:GtMBox+p
>>94
はちみつなんとかもそーだけど、
おまえもほんま馬鹿やね。表面しか読めないんだな。
10年間、言語オタを隔離してしまえといってるのだよ間抜けちゃん。
世の中から隔離された世界でせんずりこいてろといってる。ザーメン臭でくさいやつは地上に出るな。

大体、大規模プログラミングはすでにC++には向かないことが露呈して久しく、
せいぜいbetter Cとして生き残るぐらいしか道はないのにどういう意図を持っての3年ごとの改訂なんだ。
ポリシーなき改訂ははた迷惑なだけ
これだけ頻繁に改訂されると、スペック以外の解説本では、すでにストラウストラップ本自体改訂をキャッチアップできてない。
その邦訳ともなればますます現行仕様から浦島太郎になるのは必至。せっかく覚えた頃に新スペックの登場か?
C++初心者はいったいどの本買ってるのさ?キチガイ言語オタ江添本でも買うのか?
結局、ユーザー減少させてるだけだろうが
2019/01/16(水) 04:55:20.85ID:M8dG57eU
他人をけなす人には、なりたくないな
https://lavender.5ch.net/test/read.cgi/pav/1534982458/
2019/01/16(水) 05:13:03.61ID:CLrL7dI7
なるな人間になるな
2019/01/16(水) 09:06:01.53ID:Cj0f6L/5
もしかして、最初の「なる」はNULLと掛かってる?
中身のない人間、アクセスしちゃダメな奴、みたいな意味で。

ちなみに自分は「ヌル」派。
だってNULLを「ナル」と読んだら「ぬるぽ」と言えなくなるもの。
2019/01/16(水) 09:58:04.96ID:qfBMRYbT
>>131
一応買ってみました
でもどうせコンパイラ作るならC++でClangとかの実装を勉強したい
2019/01/16(水) 12:17:10.07ID:qfBMRYbT
C++好きな人って、C‡‡、Java嫌いな人が多いのって偏見ですか?
関数型言語かRustの話しかしてない気がします
2019/01/16(水) 13:56:12.46ID:CLrL7dI7
>>135
回文
2019/01/16(水) 15:05:52.98ID:kJO3cJ8H
>>132
C++ の言語としてのポリシーはこのように提示されている。
Stroustrup 自身がその著書に書いたもの。
委員会の公式な文書にするとかどうとかいう議論はあったけど、
結局どうなったのかは知らない。

・C++ の進化は現実の問題をその動因とする
・完全主義にはこだわらない
・C++ は今現在役に立つ言語でなければならない
・人に何かを強制しない
・静的タイプシステムに対する暗黙の違反が無い
・同じ機能なら人に教えやすい方を選ぶ
・C のプリプロセッサは使わないように
・C との正当でない非互換性が無い
・C++ 以外に他の低レベル言語を必要としない (アセンブラは除く)
・使わない機能はコストを発生させない

これらの考え方に基づいて今要求されているものが (不完全でも) より素早く反映しやすくする
リリース体制として ship train model が導入された。
多くの人が関わるので妥協はあるだろうが、一環したポリシーの下で改定されている。

そのポリシーを気に入らないでいる自由はあるし、それはどんどん主張して良いが、
ポリシーが無いというのは事実誤認だし、自分にとって妥当ではないからといって
必要としている人を侮辱するべきではないよ。
2019/01/16(水) 15:25:10.37ID:mUX6kDFm
俺が以前「D&E読んでないのか」、って言ったせいではちみつはD&Eの受け売りするようになったな・・・

ttp://i-saint.hatenablog.com/entry/20101012/1286822888
「あるプログラム言語を使うためにその言語の弁護人になるべきではない。」
そういうただの弁護人になってるバカは大抵C++を実用レベルで使ってない人間ばっかりだ
141デフォルトの名無しさん
垢版 |
2019/01/16(水) 15:27:49.73ID:vTKVQdGX
そやな
2019/01/16(水) 15:39:55.50ID:kJO3cJ8H
>>140

このスレで言われたから読んだということは無いはずだが、どの発言のこと?
正確に覚えてないけど
私が持ってるやつは (日本語版の) 初版だからたぶん 2006〜2007 年頃には読んでるはず。
2019/01/16(水) 15:56:46.23ID:kJO3cJ8H
現実的な問題があるならそれは解決されなければならない問題であって、
改定を先延ばしにすることを要求するのはおかしな話じゃない?

ドキュメントが追い付いていないのは、これは確かにあるけど、
翻訳とかに時間がかかるのが分かっているから
早め早めに改定がリリースされるのはむしろありがたいことでしょ。
デカい改定が一気にくるよりは。

constexpr が限定的に過ぎるとかいうのはわかってる話で、
だから制限を緩くしたり consteval を検証したりしてるんだろ。
それでも必要だと判断したから入れたんだから、
そこに文句付けたって今更な話で擁護もクソもない。
駄目な部分があるのは知ってるっつーの。 それでも要るんだよ!
144135
垢版 |
2019/01/16(水) 17:16:27.25ID:Cj0f6L/5
>>138 回文には気づかなかった。
「なるな」「人間に」がそれぞれ反転同一で、
それらフレーズを反転同一になるように並べて作成した回文か。
「人間になるな人間に」でも構造的には同じね。

いくらかPPAPな感じがしないでもない。
あと、正規表現のパズルっぽくもある。
2019/01/16(水) 17:26:40.42ID:kJO3cJ8H
酢にピリッとした風味を足すのに使えます

_人人人人人人_
> スピリタス <
 ̄Y^Y^Y^Y^Y^Y ̄
2019/01/16(水) 17:28:13.10ID:kJO3cJ8H
>>145
すまん。 誤爆した。
2019/01/16(水) 17:58:49.69ID:Cj0f6L/5
はちみつと関係ないと思ったけど、餃子の方には関係ありそう。

しかし、C++スレッドでの真摯な態度と裏腹に、
他所ではどういうキャラクタなんだろ、と思わせる投稿ね。
2019/01/16(水) 18:12:30.55ID:mUX6kDFm
真摯かねぇ・・・・希望的観測で詳しくないことに首突っ込んだり
自分の間違いや認識の誤りは絶対に認めないクソコテなのに

まぁそれも俺の主観だから他の人がどう思うかは知らんけど。
2019/01/16(水) 18:41:54.90ID:YdXHJCw6
>>145
風味って鼻から空気が出る時に感じる食べ物の香りかと思ってたわ
2019/01/16(水) 20:40:09.12ID:iaQOejPk
c++が対象にしてる現実問題って何だ?
c++使う大規模プロジェクトってゲームがまずあると思うけど
例外禁止未だに普通だし標準ライブラリも限定的にしか使わないよ
2019/01/16(水) 20:47:01.61ID:Tucl/crz
c++で書かれたc++のコンパイラのことだろ
ここが0.001%早くなるだけで世界から年間100000時間くらいが節約できるんじゃねえの
2019/01/16(水) 21:54:11.46ID:gQtWsPR9
じゃあLLVMのコーディングスタンダードこれな
https://llvm.org/docs/CodingStandards.html

例外、RTTI、iostream使わない
現実に使えるソフトってのはこういう制約で作るわけだ
C++の標準化やってる連中はメタプログラミングで遊んでるだけ
現実問題なんて何もわかってない
2019/01/16(水) 23:10:45.86ID:4t4UncJr
例外使わないとかないわー
初心者かよ
2019/01/16(水) 23:12:36.63ID:Xh3PQjx5
だから、ブラウザ、ロケット射的距離のシミュレーション、機械学習
2019/01/16(水) 23:36:41.52ID:gQtWsPR9
>>153
初心者ってのはC++の例外のバイナリモデル説明できねーやつのことな
2019/01/16(水) 23:44:05.56ID:gQtWsPR9
>>154
でC++がそれらに対してどんな問題解決してくれたんだ?
2019/01/17(木) 01:07:41.88ID:/VOhvfFp
>>152
そこらへんはしゃーない。 便利な機能も害悪な場面は有るし、
ある時点では有用だったものが後には足を引っ張ることもある。
あるプロジェクトで縛りを設けるからといって
それが現実の全てというわけではない。

ただ、例外を使わない方向というのは大きなプロジェクトでは
そこそこあるかも?

>>153
例外が忌避されるのは他の言語と接続したときに、
呼出した側が例外を捕捉できないというのが致命的で、
つまりはそういった場面が想定されるようなライブラリでの一般的な規則。

外へ出る前に例外を全部キャッチしてしまうってのでも、
まあなんとかならんことはないが、
近頃では std::optional を活用した方がいいという雰囲気はある気がするね。

Go や Rust は最初からそういう方向だし。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況