C++相談室 part143
レス数が950を超えています。1000を超えると書き込みができなくなります。
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 それはconfigureをconfigって略すのと同じだろ >>841
誤字だと分かりきっているものを茶化さないでおくれ 本当に省略形なら"registed"だの"registing"だの"registation"だのはどう説明付けてくれるんだろうね >>853
registerは名詞でもあるだろ
ただ意味が限定される(帳簿とかこの業界だとCPUのレジスタとかになる)ので登録という意味ならregistrationの方がいい warningとかもなるべく正しい(近い)発音を心がけてるんだけど
nullだけはヌルだわ
2chリスペクトだと思ってるw >>849
resist と書かれちゃうよりはましだとおもいますぅ >>859
ドイツ語ではヌルでいいんですよ、ドイツ語と言い張ればいいのではないでしょーか なるほど
ヌルポはヌルポッセンドルフの略と思っておきます nullはむしろ英語読みが間違っている
外来語導入して読み方変えているのを間違いと言うなら 大規模開発やったことないんだけど、C++の仕事ってやらせてください 正直、メモリ管理もできないような言語の仕事なんか限定されすぎだろうよ。
ゲーム業界くらい?
俺は一応社内システムの仕事でやってるけど、 c++の機能フルで使えないからストレスだわ
c言語のソースそのままコピーしたであろう共通関数あったり、既存ソースはポインタ生で使ってたり、 コンパイラーがc++03だったり、boost使えなかったり、微妙 規模次第だけど社内システムなんて結構好き勝手できるから気に入らない部分はどんどん新技術に載せ替えて行けば? プロジェクトのひな形を生成したときにまずすることはboostのパスを入力すること vcpkg install boost:windows-x64 >>869
しがないフリーランスだからその権限がないっす。
親方が気に入らなければ変えられません使えません。
俺「これーcharじゃなくてstd ::stringにした方がシンプルじゃないっすかねー・・・」
敵「既存がそうなってるからchar使ってね」
俺「はい」 >>875
ちゃんと相手にわかるメリットを示せよ。実装にかかる時間とか安全性とか信頼性とか、あるだろ。
無いなら既存に合わせるのが正解だろうよ。 >>876
既存のやり方がそうであるのに、流石にそれは許されないでしょ 「正しい」形にすることは何よりも優先されることなんだが >>875
そういう案件ならしゃーないんじゃない?
上が細かな技術的なとこまで意思決定権持っちゃってる残念な現場なんて腐るほどあるんだし
説得して環境を変えるのもありだけどフリーで入ってるなら頑張ったところで将来的に得するかは微妙だろうね 何が正しいかはケースバイケース
保守する社員がcharしか理解できないボンクラと言うことも考えられる >>878
関係者がみな納得できる共通の「正しい」があるならそれでいいと思うよ >>879
まさにそうなんだよねぇ。
「\0飛んだだけで暴走するcharなんか捨ててしまえ」って熱弁して血反吐吐いて納得させても将来得するの俺じゃねぇし・・・って言う >>882
説得先も大概だけどそんな理由で入れ替え勧めたってウンとは言わないでしょ… char*とstd::stringを比較するんじゃなくて、スタックとヒープの違いで安全性・安定性をアピールしたほうが良かったんじゃないかな。 別にインターフェイス部分だけcharで内部ではstring使えばいい話だろ?
まあ多分インターフェイスなんて概念自体なさそうな現場には見えるが。 >>875
メリット説得して、さらにstringに馴染みがないやつへの説明
さらにその変更によって万一(どころではないと思うが)生じた不具合に対する責任を負う覚悟があり
それら全部タダ働きでいい、というのならOKしてくれるかもな >>880
数年後に保守する奴が新人ってケースは普通にあるからねえ てかこのレベルでグダグダならc++なんて一番使っちゃいけないものなんだけどね。 >>886
でもさ、どのメモリに入ってるかも分かんない文字列ポインタなんか、使いたくねーってならないか? >>889
C++使っちゃいけないとか、C++使ってるやつは自意識過剰のクズばっかだな
Linusも言ってたし むしろchar使ってる箇所stringでラップして新人さんにもメンテしやすくするべき クソなところならどうせそこ直しても所詮うんこの一角だしクソなだけ
いいところなのになんだかなー思うんなら訴えかけて良くしてやればいい
クソなところなんてどうせ金も払わんし出来る限り関わりを持たずにずらかるのが一番(´・ω・`) C++で個人開発したいんだけど、やりたいものが思いつかない
個人的にはC++らしいものをやりたい
→openGL
やってはみたけど、webのレイマーチングにはまる
→レイトレーシング
今もやってる趣味ではある
→競プロ
人生で一番費やしてるプログラミングの趣味 test1 = 0x0123¥ntest2 = 0x0111¥n......
みたいなstring文字列から、指定のtest番号の0x0123みたいな6文字を取り出す関数を作りたい
引数をstring型文字列、戻り値を16進数のstring文字列みたいな
test1 と = の間のスペースの数が1つなのか複数なのかがランダムだから、それを考慮してうまく抜き出す方法ないかな?
(test1って名称が本当は別の文字列だから、見映えよくするためにスペースで調整されている)
regexを使った正規表現しかないかな??
今は指定の文字列をfind検索して、指定の文字列+1の位置から、全部文字列切り取って、スペース= 0x0111¥n.....みたいな文字列を一度作ってからさらにfindでやってるのだけども >>891
通常の開発は一人でやるもんじゃないんだよ。
自分はできるからですませてるうちはプロジェクトではゴミだから。 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氏は、機能ベースで進めるやり方とタイムスケジュー
ルベースで進めるやり方を比較しつつ、結果的には、タイムスケジュールベースのほうが
業界全体でよい効果を持つことがわかったと説明している。同氏は「機能ベースのリリース
モデルには戻りたくない」と明言しており、現在のモデルの方がうまく機能していることを
主張している。(後略) >>898
!!!!!!
天才か!!!!!!!
>>899
regexのが安定なんかなぁ 文字列の切った貼ったはセキュリティ的に怖いからね
有り物で書けるならその方がいい std::getlineで\n区切りで回してから
後は知らん splitあれば改行で区切ってlist化するだけなんだけどな
Qt環境ならそうする =で分割した後
左右でfind_first_not_of,find_last_not_ofで空白以外まで切り詰めかな Cですが。自力分割やregexよりは早い気がする
const char* s = "abc= 123";
sscanf(s, "%[^=]=%d", key, &value); 昔はドヤ顔でトリッキーコード書く奴いたが最近は見ない
理由は、
できる新入社員が入ってこない
年寄りは昔ドヤ顔で書いた自分のコードを十年ぶりくらいに保守して反省するから 真のトリッキーコードだったら地獄はむしろ最初も最初、
離陸前に訪れているはず
もうそんな悲劇は繰り返させないRustによって、 ていうか今日日スマホ系だとIDEに命ぜられるがままイベントハンドラを設けて、
インテリセンスに従って高水準APIを呼べばだいたいのところできてしまうるし…
バッドノウハウとか差別化のためのトリックがむしろ脚光 初心者です。苦戦してます。お知恵を貸してください。
仮想端末を含んだ 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 個人開発したいとやったら、やるなと言う職業プログラマー
そんなにC++の弁護士気取りたいのか? >>918
一言で言えば、C++らしいものを作りたい
なんかおすすめ教えてです プログラミング言語は道具だからな
鉄筋コンクリートらしい建物作りたいから教えてと聞いてるようなもの 自信のソースコードを文字列定数としてコンパイル時に埋め込む方法ってありますか? ファイル読み込みとかしないで、自身のソースコードを表示するプログラムなら作れるが >>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使ってるが、単純に先頭を削除してループ。 なぜC++にsplitが無いのかに行き当たり議論は再燃し一晩で鎮火する 嘘教えてた。。。
dropWhileは先頭削除じゃなくて、先頭も含め、普通の文字が出るまで空白文字を(続く限り)削除。
その後またa,bに分解する処理に戻る。
文字列終端に来たら、削除処理やめてループ抜ければ良い。 真面目に考えると
空白の定義は何か?
に始まり、様々な議論の末に
localeとかcodecvtとか糞が出来上がり
もうUTF8でええか
ってなる codecvt使おうとしてdeprecated に気づいてイラッとしたが、使い込んでからでなくて良かったとも言える >>920
競技プログラミング一生やるわ!
C++は糞!
こんな言語二度と使わねえ
競技プログラミングの時は使うけど c++らしさがあるとするならば使う外部ライブラリや成果物にではなく設計に出るもんだし C++ではあなたが書いたプログラムで競技するが、
Rustではあなたが書く速度が競技される…! std::unique_ptrを使い倒すなどして所有権について完璧に理解したら
Rustのコンパイルが通る確率が増すから
C++はきちんと勉強しといた方が良い rustはジェネリクスが弱いのでまだまだC++の方が優位。 Rustは所有権に関する厳格なルールの強制という土台の上に、
ありえないぐらい強力な型推論と並列実行の安全性を実現しているから
トータルで見たらわからん
ていうかセルフホスティングはもちろんGUI付きのOSまで記述し切った数少ないシステム記述言語 >>935
一ヶ月でC++理解できるならするけど
個人開発すら許されない string型をunsigned short型へ
unsigned long型をunsigned short型へ
この二つの変換ってどうすれば良いのでしょうか 上はstd::stoiしてからint->unsigned short変換
下は普通のキャストの何が不満なのか言ってくれないと答えようがない 俺は遊びにc++なんか使わないな
仕事で嫌々触るだけ(ヽ´ω`) 昔はトリッキーな事をしないと
まともな動作速度にならないことが有ったからなんじゃないか
今は小手先的な方法は余り必要ないから
明らかに遅くなる様な方法を避けるだけで済む LDIRのsrcとdstを1バイトずらしてV-RAMを高速0クリア、
しかしさらに速いPUSH BCループとか、 >>938
プログラミング言語Cなら一日かけて通読したら次の日からばりばりCが書けるようになるから
3日目からはプログラミング言語C++を2週間かけて通読したら良い >>948
うるせえカス!
個人開発も出来ない言語を誰が触るか
>>941
うるせえカス!
俺は五年前からやってるわ 「俺ごときではC++を使ったら」個人開発も出来ないって意味じゃない? レス数が950を超えています。1000を超えると書き込みができなくなります。