X



C++相談室 part143
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん (ワッチョイ)
垢版 |
2019/06/15(土) 13:51:53.57ID:DKQ0QQLH0
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。

前スレ
C++相談室 part142
https://mevius.5ch.net/test/read.cgi/tech/1554124625/

このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.105【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1556142878/

■長いソースを貼るときはここへ。■
 http://codepad.org/
 https://ideone.com/

[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)

----- テンプレ ここまで -----
VIPQ2_EXTDAT: default:vvv:1000:512:----: EXT was configured
0858デフォルトの名無しさん (ワッチョイ)
垢版 |
2019/07/15(月) 13:31:00.46ID:ex33LrHm0
>>853
registerは名詞でもあるだろ
ただ意味が限定される(帳簿とかこの業界だとCPUのレジスタとかになる)ので登録という意味ならregistrationの方がいい
0861◆QZaw55cn4c (ワッチョイ)
垢版 |
2019/07/15(月) 14:07:48.53ID:Nn+acajv0
>>859
ドイツ語ではヌルでいいんですよ、ドイツ語と言い張ればいいのではないでしょーか
0866デフォルトの名無しさん (ワッチョイ)
垢版 |
2019/07/15(月) 15:22:17.78ID:vaP/RuJr0
正直、メモリ管理もできないような言語の仕事なんか限定されすぎだろうよ。
ゲーム業界くらい?

俺は一応社内システムの仕事でやってるけど、 c++の機能フルで使えないからストレスだわ
c言語のソースそのままコピーしたであろう共通関数あったり、既存ソースはポインタ生で使ってたり、 コンパイラーがc++03だったり、boost使えなかったり、微妙
0868デフォルトの名無しさん (ワッチョイ)
垢版 |
2019/07/15(月) 16:11:03.46ID:ioQvo5hA0
俺もナマポ暮らしになりたいわ
0875デフォルトの名無しさん (ワッチョイ)
垢版 |
2019/07/15(月) 18:05:18.40ID:vaP/RuJr0
>>869
しがないフリーランスだからその権限がないっす。
親方が気に入らなければ変えられません使えません。
俺「これーcharじゃなくてstd ::stringにした方がシンプルじゃないっすかねー・・・」
敵「既存がそうなってるからchar使ってね」
俺「はい」
0876デフォルトの名無しさん (ワッチョイ)
垢版 |
2019/07/15(月) 18:39:11.23ID:1J86p0R40
>>875
ちゃんと相手にわかるメリットを示せよ。実装にかかる時間とか安全性とか信頼性とか、あるだろ。
無いなら既存に合わせるのが正解だろうよ。
0879デフォルトの名無しさん (ワッチョイ)
垢版 |
2019/07/15(月) 18:55:19.89ID:TrI7uaVY0
>>875
そういう案件ならしゃーないんじゃない?
上が細かな技術的なとこまで意思決定権持っちゃってる残念な現場なんて腐るほどあるんだし
説得して環境を変えるのもありだけどフリーで入ってるなら頑張ったところで将来的に得するかは微妙だろうね
0882デフォルトの名無しさん (ワッチョイ)
垢版 |
2019/07/15(月) 19:05:04.52ID:vaP/RuJr0
>>879
まさにそうなんだよねぇ。
「\0飛んだだけで暴走するcharなんか捨ててしまえ」って熱弁して血反吐吐いて納得させても将来得するの俺じゃねぇし・・・って言う
0883デフォルトの名無しさん (ワッチョイ)
垢版 |
2019/07/15(月) 19:29:53.08ID:uSWgDnpR0
>>882
説得先も大概だけどそんな理由で入れ替え勧めたってウンとは言わないでしょ…
0885デフォルトの名無しさん (ワッチョイ)
垢版 |
2019/07/15(月) 20:04:45.07ID:pjR6BG980
char*とstd::stringを比較するんじゃなくて、スタックとヒープの違いで安全性・安定性をアピールしたほうが良かったんじゃないかな。
0886デフォルトの名無しさん (ワッチョイ)
垢版 |
2019/07/15(月) 20:13:41.55ID:MjmXYKrZ0
別にインターフェイス部分だけcharで内部ではstring使えばいい話だろ?
まあ多分インターフェイスなんて概念自体なさそうな現場には見えるが。
0887デフォルトの名無しさん (ワッチョイ)
垢版 |
2019/07/15(月) 20:28:18.61ID:7B/nougm0
>>875
メリット説得して、さらにstringに馴染みがないやつへの説明
さらにその変更によって万一(どころではないと思うが)生じた不具合に対する責任を負う覚悟があり
それら全部タダ働きでいい、というのならOKしてくれるかもな
0893デフォルトの名無しさん (スフッ)
垢版 |
2019/07/16(火) 01:26:16.84ID:0uDObdGpd
クソなところならどうせそこ直しても所詮うんこの一角だしクソなだけ
いいところなのになんだかなー思うんなら訴えかけて良くしてやればいい
クソなところなんてどうせ金も払わんし出来る限り関わりを持たずにずらかるのが一番(´・ω・`)
0895デフォルトの名無しさん (ラクッペ)
垢版 |
2019/07/16(火) 16:19:36.53ID:Df6fhjhOM
C++で個人開発したいんだけど、やりたいものが思いつかない
個人的にはC++らしいものをやりたい
→openGL
やってはみたけど、webのレイマーチングにはまる
→レイトレーシング
今もやってる趣味ではある
→競プロ
人生で一番費やしてるプログラミングの趣味
0896デフォルトの名無しさん (ワッチョイ)
垢版 |
2019/07/16(火) 20:27:49.59ID:Z97hyaL80
test1 = 0x0123¥ntest2 = 0x0111¥n......
みたいなstring文字列から、指定のtest番号の0x0123みたいな6文字を取り出す関数を作りたい
引数をstring型文字列、戻り値を16進数のstring文字列みたいな

test1 と = の間のスペースの数が1つなのか複数なのかがランダムだから、それを考慮してうまく抜き出す方法ないかな?
(test1って名称が本当は別の文字列だから、見映えよくするためにスペースで調整されている)

regexを使った正規表現しかないかな??
今は指定の文字列をfind検索して、指定の文字列+1の位置から、全部文字列切り取って、スペース= 0x0111¥n.....みたいな文字列を一度作ってからさらにfindでやってるのだけども
0900デフォルトの名無しさん (ワッチョイ)
垢版 |
2019/07/16(火) 21:02:58.38ID:LGntUIQm0
C++標準が3年ごとにリリースされるのはなぜ? 2019/07/16 18:06 後藤大地
https://news.mynavi.jp/article/20190716-860461/

2012年以降、C++標準化委員会は3年ごとに新たなC++標準(C++14、C++17)をリリースして
いる。次のC++標準はC++20として作業が進められており、タイムスケジュールどおりの
リリースが予定されている。C++98とC++11のリリースにはそれぞれ9年ほどの時間が
かかったことを考えると、この7年間ですでに2つのC++標準が3年ごとにリリースされたのは
大きな変化だ。

ISO C++標準化委員会の議長でありMicrosoftでソフトウェアアーキテクトを務めるHerb
Sutter氏が2019年7月13日(米国時間)「Draft FAQ: Why does the C++ standard ship
every three years? - Sutter's Mill」においてその理由を説明した。(中略)

標準化委員会はC++11をリリースした後にこのモデルを見直し、タイムスケジュールベース
でリリースするモデルへ変更。Sutter氏は、機能ベースで進めるやり方とタイムスケジュー
ルベースで進めるやり方を比較しつつ、結果的には、タイムスケジュールベースのほうが
業界全体でよい効果を持つことがわかったと説明している。同氏は「機能ベースのリリース
モデルには戻りたくない」と明言しており、現在のモデルの方がうまく機能していることを
主張している。(後略)
0912デフォルトの名無しさん (ワッチョイ)
垢版 |
2019/07/16(火) 22:10:14.84ID:I+f7TCiw0
昔はドヤ顔でトリッキーコード書く奴いたが最近は見ない
理由は、
できる新入社員が入ってこない
年寄りは昔ドヤ顔で書いた自分のコードを十年ぶりくらいに保守して反省するから
0913デフォルトの名無しさん (ワッチョイ)
垢版 |
2019/07/16(火) 22:24:54.49ID:Qaka0H/h0
真のトリッキーコードだったら地獄はむしろ最初も最初、
離陸前に訪れているはず

もうそんな悲劇は繰り返させないRustによって、
0914デフォルトの名無しさん (ワッチョイ)
垢版 |
2019/07/16(火) 22:29:08.57ID:Qaka0H/h0
ていうか今日日スマホ系だとIDEに命ぜられるがままイベントハンドラを設けて、
インテリセンスに従って高水準APIを呼べばだいたいのところできてしまうるし…

バッドノウハウとか差別化のためのトリックがむしろ脚光
0915デフォルトの名無しさん (アウアウカー)
垢版 |
2019/07/17(水) 00:30:14.40ID:OvMw+j5/a
初心者です。苦戦してます。お知恵を貸してください。
仮想端末を含んだ GTK+3 アプリを C++ で作りたいです。
gtkmm だと vte が使えない(?)ので、gtk-3.0 を使って試してます。
サンプルを下のリンクに置きました。

make すると main 最後の return app->run(window); の所で、
[no member named 'run' in '_GtkApplication']とエラーになってしまいます。
この部分は gtkmm の例から持って来たもなので、変える必要があるのですが、
gtk+3 ではどう書くのが正解でしょうか?よろしくお願いします。
あるいは、gtkmm でも vte を使う簡単な方法がもしあれば、教えてください。

Makefile
http://codepad.org/wldK76KY

main_test_3.cc
http://codepad.org/NopgbNXP

sample_3.h
http://codepad.org/BiQt354F

sample_3.cc
http://codepad.org/I1B7AyJL
0925デフォルトの名無しさん (ワッチョイ)
垢版 |
2019/07/17(水) 21:40:04.62ID:PwP8j0Dr0
>>896
Haskellで丁度ピッタリの処理を自作した(組み込み関数が既にある)のでアルゴリズム自体は参考になるかも?

import Data.Char

main = (print.mywords) "hello world\t\t hahaha\n\n hohoho\n"

mywords [] = []
mywords xs = a:mywords (dropWhile isSpace b)
where (a,b) = break isSpace xs

生の配列じゃ無くてvector,list辺り使えば難しく無いはず。
文字列から、スペース削除した文字列のリストを作る。
“Hello world” -> [“Hello”,”world”]

a = スペース文字が出る直前までの文字列(上で言うところの”Hello”)
b = 残った部分(必ずスペース文字始まり。上で言うところの” world”)
dropWhile isSpace b = Haskellだと空リストにtail(リストの先頭を削除)だとエラーになるのでdropWhile使ってるが、単純に先頭を削除してループ。
0928デフォルトの名無しさん (ワッチョイ)
垢版 |
2019/07/17(水) 22:12:32.03ID:PwP8j0Dr0
嘘教えてた。。。
dropWhileは先頭削除じゃなくて、先頭も含め、普通の文字が出るまで空白文字を(続く限り)削除。
その後またa,bに分解する処理に戻る。
文字列終端に来たら、削除処理やめてループ抜ければ良い。
0935デフォルトの名無しさん (ワッチョイ)
垢版 |
2019/07/18(木) 23:34:17.47ID:tHz4DA4Z0
std::unique_ptrを使い倒すなどして所有権について完璧に理解したら
Rustのコンパイルが通る確率が増すから
C++はきちんと勉強しといた方が良い
0936デフォルトの名無しさん (アウアウウー)
垢版 |
2019/07/18(木) 23:57:13.50ID:6wWDWcUja
rustはジェネリクスが弱いのでまだまだC++の方が優位。
0937デフォルトの名無しさん (ワッチョイ)
垢版 |
2019/07/19(金) 00:19:57.42ID:M7PKBqIe0
Rustは所有権に関する厳格なルールの強制という土台の上に、
ありえないぐらい強力な型推論と並列実行の安全性を実現しているから
トータルで見たらわからん
ていうかセルフホスティングはもちろんGUI付きのOSまで記述し切った数少ないシステム記述言語
0944デフォルトの名無しさん (ワッチョイ)
垢版 |
2019/07/19(金) 20:41:48.13ID:mIvdqWR30
オッパイソンていう名前もいいよな。
0945デフォルトの名無しさん (ワッチョイ)
垢版 |
2019/07/19(金) 23:17:35.58ID:Bc1kXVzL0
昔はトリッキーな事をしないと
まともな動作速度にならないことが有ったからなんじゃないか
今は小手先的な方法は余り必要ないから
明らかに遅くなる様な方法を避けるだけで済む
0948デフォルトの名無しさん (ワッチョイ)
垢版 |
2019/07/20(土) 01:54:09.02ID:FW5VH8uR0
>>938
プログラミング言語Cなら一日かけて通読したら次の日からばりばりCが書けるようになるから
3日目からはプログラミング言語C++を2週間かけて通読したら良い
レス数が950を超えています。1000を超えると書き込みができなくなります。

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