[過去ログ] C++相談室 part164 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
610: (ワッチョイ 2301-9pon) 2023/07/30(日)23:58 ID:Phugis3j0(2/2) AAS
boostの方が親切ですよね
何でstdでなくしたんでしょ?
611
(1): (ワッチョイ 2301-9pon) 2023/07/31(月)00:15 ID:ulrQSEBD0(1/3) AAS
stdはパフォーマンスを気にしたんでしょうかね?
612
(1): (ワッチョイ 8f7c-xLd3) 2023/07/31(月)00:17 ID:kuDsfsru0(1) AAS
未定義動作をどうしようとコンパイラの勝手
613
(1): (ワッチョイ 2301-9pon) 2023/07/31(月)00:42 ID:ulrQSEBD0(2/3) AAS
>>612
boostでは初期化済みかどうかを確認していたのを
stdでなぜ確認を外したのか?って問いになります
>>611に書いたようにパフォーマンスってこでしょうかね?
614: (ワッチョイ d35f-X/lp) 2023/07/31(月)01:10 ID:cE0Z6rmj0(1/2) AAS
>>613
std::optionalの仕様がboost::optionalを参考にしたのは確かだろうけど、
std::optionalの実装はboost::optionalの実装をもとにしたわけじゃないだろうから、
不要なチェックが無い状態でむしろ自然。
何か意図を持って「なくした」「外した」などという事実がおそらく無い。
仮に意図的だったとして、ここで誰かがその質問にyes/noを答えても本当かどうかはわからない。
どうしても気になるならライブラリ実装者に聞くべき。
615
(1): (ワッチョイ 2301-9pon) 2023/07/31(月)02:06 ID:ulrQSEBD0(3/3) AAS
仕様はboostが元になっているのは間違いないので
規格に入れるときになぜこれを変えたのか理由が分かればなと考えました
proposal追ってる人でご存知の方がいればなと思いましたが
自分でも読んでみます
616: (ワッチョイ d35f-X/lp) 2023/07/31(月)03:26 ID:cE0Z6rmj0(2/2) AAS
>>615
仕様はどちらも事前条件違反での未定義動作で、変わってない。
なので仕様について調べてもおそらく答えは出ない。
assertの有無は実装の範疇。
617
(3): (ワッチョイ a6a4-2Bsr) 2023/08/02(水)01:27 ID:UwRg95UI0(1/3) AAS
プログラミングの面接を受けた。言語は何でもいいというので今使ってるC++で予め申請。
ロジックを問う問題なので言語で差はつかない、という話... だったが実際は文字列処理
の問題が多く、これはスクリプト系とかの方が有利じゃないか

C++にはなんで文字列のsplit系はないんだろ。どうしてます? <- あ、これが雑多な質問w
618
(1): (ワッチョイ a6a4-2Bsr) 2023/08/02(水)01:29 ID:UwRg95UI0(2/3) AAS
ちなみに自分は以前Pythonを使っていた時期もJavaを使っていた時期もあるけど
今は頭が「C++脳」になっている気がして、とっさにそれらを使うとなると不安を感じたのだった
やはり常日頃から他の言語も回しておくべきだろうか
619: (ワッチョイ a6a4-2Bsr) 2023/08/02(水)01:31 ID:UwRg95UI0(3/3) AAS
マ系の話かもしれないですね、すみません
620: (ワッチョイ 4af0-0TAO) 2023/08/02(水)01:45 ID:JKibevwe0(1) AAS
次の問題でグラフにプロットしろとか言われそうだなw
621: (ワッチョイ b73e-4j5P) 2023/08/02(水)01:58 ID:Vhf3uqZN0(1) AAS
>>617
普通は申告した技能に嘘がないことを確かめるのが
面接の主な目的であって
正解率に意味があるような試験ではないよ。
622
(1): (ワッチョイ 33d6-cK++) 2023/08/02(水)06:20 ID:NkBPLpHI0(1) AAS
>>617
istringstream と getline を使えば、区切られた文字を順番に取り出せる。
空白文字区切りなら、getline の代わりに >> が使える。

外部リンク[html]:maku77.github.io
623: (アウアウウー Sa1f-IPSQ) 2023/08/02(水)09:31 ID:4pI1Wfnva(1/2) AAS
>>617
C/C++でそれが出来て初めて「C/C++が使えます」って言えるんだ
624: (ワッチョイ befb-LsOw) 2023/08/02(水)09:36 ID:y1hozJP20(1/3) AAS
1つの言語で覚えたあたらしい機能を実現するのに他の言語ではどう書く?って感じで比較しながら書くと記憶が精緻化しやすく忘れにくくなる
625
(1): (アウアウウー Sa1f-IPSQ) 2023/08/02(水)10:22 ID:4pI1Wfnva(2/2) AAS
>>618
「C++脳」
良く言えるな
C++も不安だらけじゃないか
626: (ワッチョイ befb-LsOw) 2023/08/02(水)12:38 ID:y1hozJP20(2/3) AAS
コーディングテストのはずがメインメソッド作ってって言われたときはこちらからお断り申し上げたことがある
627: (ワッチョイ befb-LsOw) 2023/08/02(水)12:43 ID:y1hozJP20(3/3) AAS
チンチンシュッシュシュですわ
628
(2): (ワッチョイ 4b9a-2Bsr) 2023/08/03(木)09:24 ID:lr2Ednh70(1) AAS
>>625
あ、別にC++が得意という意味でなく、それ以外の言語を使うとき頭がすぐに切り替わらない、
というぐらいの話で

結局そのとき自分は文字をチェックして区切り文字の位置を調べてstring.substr()で切り出し
vector<string>に追加というベタな感じを。でも他の言語でsplit()を呼んで終わりなのと比べると
無駄に焦ったと思われ >>622はすっかり忘れていた
629: (ワッチョイ 6af0-PvkJ) 2023/08/03(木)09:35 ID:IPuBCl990(1) AAS
自分で作れよw
簡単だろ
630: はちみつ餃子◆8X2XSCHEME (ワッチョイ b73e-yh3V) 2023/08/03(木)09:36 ID:HBD/4AdY0(1) AAS
>>628
C++20 以降なら std::views::split を使えるよ。
631: (ワッチョイ befb-LsOw) 2023/08/03(木)20:08 ID:IJZbd6wk0(1) AAS
>>628
c++がマニアックなのはまぁわかる
他の言語に切り替わらないっていうのは鍛錬不足じゃあ無いのかね
c++で書いたものを見ながら別の言語に書き換えるっていう作業の時間が足りてないんじゃない?
632: (ワッチョイ 43a5-IPSQ) 2023/08/04(金)21:09 ID:5lu3SOws0(1) AAS
プリプロセッサディレクテブでマクロを組む方法はないでしょうか?
#ifndef XX
#define XX 1
#endif

define_default (XX, 1); <-こんな感じにマクロ化したい
633: (ワッチョイ 7510-oj1Z) 2023/08/05(土)01:51 ID:L/LBNngA0(1/2) AAS
🤔…(こんな感じとは?)
634: (ワッチョイ 7510-oj1Z) 2023/08/05(土)02:15 ID:L/LBNngA0(2/2) AAS
スマン言いたい事分かった

直接の回答は:わからん。
多分、君の実装アイデアでは無理。
C++というかCな気がするが、コンパイラの規格の中に翻訳作業のステージが確か7つ位定義されてて、その一つがプリプロセス。で無限ループしないようになってたような。

本当にやりたいであろう事(定数定義の記述に定形があって煩雑なのをシンプルに書きたい)なら、私なら別の方法でやる、けどそれは聞かれてないよね
635: (スッップ Sd2f-YWx9) 2023/08/05(土)09:38 ID:wvUeqD5zd(1) AAS
定義をマクロ定義する事はできないよ
都度意味を変えてincludeで読み込ませるとか
636: (ワッチョイ 4f7c-HETv) 2023/08/05(土)10:20 ID:9rqysa6s0(1) AAS
よく分からんがC++の範疇じゃなくてcamkeとかコンパイラオプションでやる事っぽく見える
637
(1): (ワッチョイ 31a5-mBaV) 2023/08/05(土)22:30 ID:a9xEz2i50(1/2) AAS
コンパイルオプションでdefineを省略されていればデフォルト値を使うようなコードの構造にしたいのですが、
なるたけmakeやコンパイル環境に依存しないことが希望です。
プリプロセッサを使うと煩雑で読みづらくなってしまうので、カプセル化したいです。
C++ならもう少し洗練された方法がないものかと思うところですが、
定数定義の記述定形があって煩雑なのをシンプルに書く方法があれば教えて下さい
638: (ワッチョイ 4d01-zxRi) 2023/08/05(土)23:17 ID:NzC+Rt9F0(1) AAS
現状のサンプルコードを書いた方が答えやすい
639: (ワッチョイ 31a5-mBaV) 2023/08/05(土)23:34 ID:a9xEz2i50(2/2) AAS
#ifndef XX1
#define XX1 1
#endif

#ifndef XX2
#define XX2 0
#endif
:
640: (ワッチョイ 5b3e-8WNR) 2023/08/06(日)00:25 ID:Mgx3ApDu0(1/2) AAS
C++ はなるべくマクロを使わずに済む方向に進化してはいるが
マクロを使うのであればそれより良い方法はないと思うよ。
641: (ワッチョイ e3f0-uQHI) 2023/08/06(日)01:54 ID:7ys7hHtb0(1) AAS
俺ならテンプレート引数のデフォルト引数を使うけど、
既存のコードを何とかしたいって事かい?
642: (ワッチョイ 7510-WTQk) 2023/08/06(日)04:00 ID:VdM0xi000(1/2) AAS
>>637
君の求めてるエレガントな方法は、知らない。スマンね

私がもし 今すぐ 仕事でやる必要があるなら
XX1 1
XX2 0
というテキストファイルから、君の例示したソースファイルを生成する「ツール」を勝手に作って使い、手で書いたフリをする

数百あるならツールに意味があるし
省2
643: (ワッチョイ 7510-7C81) 2023/08/06(日)04:31 ID:VdM0xi000(2/2) AAS
ここって#とかの文字書けるのかな...

#!/bin/bash

put_data_list()
{
cat <<EOF
XX1 1
XX2 0
省14
644: (ワッチョイ 5b3e-8WNR) 2023/08/06(日)11:54 ID:Mgx3ApDu0(2/2) AAS
その手のパラメータをマクロとして大量に定義する
必要があるときというのは
開発・実行環境ごとに切り分けたいという要求なことが多くて、
そうだとしたら環境依存を避けたいという要件設定が
ナンセンスってことになるんよ。
645: (ワッチョイ 054e-c/5M) 2023/08/06(日)12:11 ID:R5xvWuDw0(1) AAS
その開発・実行環境がコンパイラ含めてまるごと提供される場合だと、C(++)基本機能だけで済ませないと何かと面倒というのは分かる
ゲーム機とかがそれ
646: (ワッチョイ c379-IXit) 2023/08/06(日)12:13 ID:SuulMMGF0(1) AAS
マイコン用のヘッダなんかはそういうテクニックが駆使されてて環境依存を減らしてるから参考になるよ
arduinoみたいな特定のマイコンに依存してない環境では特に
647: (ワッチョイ e3f0-uQHI) 2023/08/10(木)05:18 ID:cgZD1dE+0(1) AAS
最近はマイコンでもC++使うんですか?
普通にC使ったほうがいいと思うんですけどどうなってるんですか有識者の方
648: (ワッチョイ e3f0-WeFQ) 2023/08/10(木)08:37 ID:R9ss+SBt0(1) AAS
C++でもメモリを食わない書き方はあるとだけ言っておく
STLライブラリに恩恵を受けて育った温室育ちには理解出来んかもだがな
649
(1): (ワッチョイ 054e-c/5M) 2023/08/10(木)09:55 ID:4skaSxsv0(1/2) AAS
マイコンのことは知らないが、いまさら、
//コメント
スコープ内ローカル変数
関数のオーバーロードや引き数の省略
bool型とture/false識別子
等がないC言語とか無理だなw
650
(1): (ワッチョイ 5b3e-oz9p) 2023/08/10(木)10:54 ID:5Abh0bq20(1/3) AAS
>>649
その4つの内の3つはCにある機能だぞ
651: (ワッチョイ 054e-c/5M) 2023/08/10(木)14:04 ID:4skaSxsv0(2/2) AAS
組み込み向けでもC99つかえるの?
まぁ、最近はclangとかなのかな…日立コンパイラの恐怖とか思い出すわw
652: (ワッチョイ 5b3e-tyL0) 2023/08/10(木)14:23 ID:5Abh0bq20(2/3) AAS
スコープ内ローカル変数ってのが何を意味してるのかよくわからんが、
(関数ブロック以外でも) ブロックの先頭では変数宣言できるぞ。 C89 でも。
653: (ワッチョイ d105-GNKj) 2023/08/10(木)16:21 ID:ygto10X60(1/2) AAS
>>650
C++から逆輸入されたんだっけ?
654: (ワッチョイ d105-GNKj) 2023/08/10(木)16:23 ID:ygto10X60(2/2) AAS
マイコンって言ってももはや幅が広すぎるよな
655: はちみつ餃子◆8X2XSCHEME (ワッチョイ 5b3e-tyL0) 2023/08/10(木)16:42 ID:5Abh0bq20(3/3) AAS
Z80 だって C99 対応コンパイラは有るくらいだし、現代でも売ってるマイコン
かつ C コンパイラが存在するなら大抵は C99 対応くらいはしてるんじゃね。
完璧に準拠ってほどではないかもしれんけど。
656: (ワッチョイ dffb-IrHc) 2023/08/10(木)19:28 ID:rVmtE6nS0(1) AAS
今ってマクロ使うよりもモジュールにしてstaticでやる方がオトクなんだって?
657: (ワッチョイ 4f7c-HETv) 2023/08/11(金)07:07 ID:gKBPOQXo0(1/2) AAS
マイコンって関数呼び出しなんて重すぎてとんでもないmainに全部ベタ書きしろって世界でしょ?
そんなとこでモジュールなんて許されるのか
658: (ワッチョイ 61da-WeFQ) 2023/08/11(金)07:24 ID:RJhU8z4K0(1/3) AAS
とんだ時代錯誤だな
関数作るだけで容量が満杯になるっていつの時代のマイコンだよ
今何世紀だと思ってんだよ
動画リンク[YouTube]
659
(1): (ワッチョイ 4f7c-HETv) 2023/08/11(金)07:59 ID:gKBPOQXo0(2/2) AAS
そーなの?
昔受けた講習で「関数は重いので関数ポインタを扱う用途以外では作りません。処理をまとめるにはマクロかgotoを使います」って言ってて衝撃受けた口なんだけど
時代の流れなのかこの講習がタコなのかあなたがタコなのか専門外だから分からないよ
660: (ワッチョイ 61da-WeFQ) 2023/08/11(金)08:08 ID:RJhU8z4K0(2/3) AAS
ホントに極小サイズの容量小さい昔のマイコンならアセンブラでハードウェアアドレスにI/Oコールして組み上げんだろうけどいまのマイコンはそのレベルを既に凌駕して逸脱してるから誰でも気軽に組みやすく仕上がってる
micropythonみたいなインタープリタも走るしな
661: (オイコラミネオ MMc9-uQHI) 2023/08/11(金)08:32 ID:4oMIZBsGM(1/2) AAS
関数を使わないのはRAMは少なくてスタックがシビアだからです
662: (ワッチョイ 61da-WeFQ) 2023/08/11(金)08:36 ID:RJhU8z4K0(3/3) AAS
スタックフレームつくるからだろ
インラインで全部組めばスタック要らんくなるよ
コードの容量は増えるかもしれんけど
663: (オイコラミネオ MMc9-uQHI) 2023/08/11(金)08:40 ID:4oMIZBsGM(2/2) AAS
何らかの便利な仕組みがあるとそのせいでメモリが足りなくなることもあった

そのせいかどうかしらないけど過去はforの階層が7階層に制限されてたり今では意味不明
ブロックスコープの仕組みのためか?
ifとgotoにしたら回避できる
664: はちみつ餃子◆8X2XSCHEME (ワッチョイ 4132-oz9p) 2023/08/11(金)09:58 ID:vt/fQ4Il0(1) AAS
プログラムを 2KiB 程度しか書き込めない PIC なんかもあるが
そのレベルの機器だとどうせ低レイヤにべったりと
依存せざるをえないだろうし、
C で極端な書き方をするくらいならもっと低級な言語を
使った方が楽かもしれないな。
そういう割り切りが出来ない程度の中途半端なのが一番困る。
665: (スフッ Sdd7-A0iR) 2023/08/11(金)12:49 ID:oqyg1NI/d(1) AAS
>>659
組み込みなら
関数が重い
じゃなくて
スタックが浅い
の間違いじゃないのか?
666: (ワッチョイ 9af0-vKG+) 2023/08/12(土)01:11 ID:DKBxYxYv0(1) AAS
最近のは単価数百円で256kbとかメモリ積んでるんだな…
667: (ワッチョイ f358-yhDR) 2023/08/16(水)17:21 ID:hgmxYG6c0(1/2) AAS
その昔、使ってたHP-29Cがサブルーチンのネストが3段までで
その後に出荷されたHP-34Cが6段になってるの見て
おおーってなった懐かしい思い出
668: (ワッチョイ f358-yhDR) 2023/08/16(水)17:40 ID:hgmxYG6c0(2/2) AAS
今はinlineや関数テンプレートのように開いたサブルーチンが普通に使えるからなあ
669
(3): (ワッチョイ 2702-Dztr) 2023/08/16(水)22:34 ID:YHO3HAlN0(1) AAS
画像リンク[jpg]:i.imgur.com
670: (ワッチョイ 5b94-J+rV) 2023/08/17(木)00:57 ID:VKXPNJiw0(1) AAS
>>669
Amazonギフトに交換できるんだ
671: (JP 0H7f-YOEV) 2023/08/17(木)15:51 ID:BJu8USc1H(1) AAS
ちなみにその方法でアマギフ入手するとアマゾンアカウント停止させられるから気をつけてね
672: (ワッチョイ b690-g0y9) 2023/08/17(木)23:57 ID:4XlHHMDQ0(1) AAS
ショボい詐欺はスルーで
673: (スップ Sdba-aAP2) 2023/08/18(金)07:50 ID:ibegtSC/d(1) AAS
>>669
グロ
674: (ワッチョイ 5901-greZ) 2023/08/21(月)17:47 ID:mTvtbn+H0(1) AAS
週3日稼働案件の職種別月収ランキングNo.1は「データサイエンティスト」で月72万円。
上位7職種が月50万円を超える月収。ほぼ全ての案件がリモート可案件。

フリーランス・複業・副業の求人マッチングサービス『SOKUDAN(ソクダン)』を運営する
CAMELORS株式会社、週3日フリーランス・副業案件の時給月収年収・職種別
ランキングについて調査した内容をお知らせいたします
SOKUDANに掲載されているフリーランス・副業案件のうち、週3日案件に限定して
時給・月収・年収を職種別のランキング記事としています。
省6
675: (ワッチョイ 3136-wdUj) 2023/08/21(月)22:24 ID:qha1IMDa0(1) AAS
>>669
貰うだけ貰うか
676
(1): (ワッチョイ 2b10-OsaT) 2023/08/22(火)18:52 ID:vz2M4TZw0(1) AAS
c++でGUI作る時のフレームワークって今は何が主流なんでしょうか。
昔は、MFCとか有名でしたが。
それとも、c#で簡単にui作って内部的にc++で処理するとかですかね。
677: はちみつ餃子◆8X2XSCHEME (ワッチョイ 893e-glFA) 2023/08/22(火)20:03 ID:+W4fml+10(1) AAS
Windows での話なら WinUI を活用する方法が現代的なやり方だけど主流と言える感じでもないかな……。
WebView コントロールで全部をやってしまえばウェブ技術がかなり使えるので
プログラマの知識バックグラウンドによっては楽ということもあるかも。
678
(1): (ワッチョイ 597c-JHPd) 2023/08/22(火)20:29 ID:lpVGvukl0(1) AAS
なんかもう最近はPCでGUIプログラムなんぞ作ること自体が時代遅れみたいな風潮で息苦しいよ
679: (ワッチョイ 2bfb-KmyD) 2023/08/22(火)22:37 ID:0uc0qR5i0(1) AAS
基本はGUi作るのはひ
680
(2): (ワッチョイ 599c-HTZh) 2023/08/23(水)00:17 ID:+DZCM0il0(1) AAS
WindowsとLinuxで同じアプリ動かさないといけない案件でgtkmm使ったことある
UIをCSSで装飾できるのがモダンな感じでよかった!
681: (ワッチョイ 2bf2-N2rt) 2023/08/23(水)00:39 ID:Ev7RzN030(1) AAS
wxWidgetsおすすめ
682: (ワッチョイ 1990-PVU2) 2023/08/23(水)05:35 ID:syViBZyk0(1) AAS
JAVAを使うとこじゃないのか?
683: (ワッチョイ 93f0-YAjS) 2023/08/23(水)05:41 ID:yb1p7Ca/0(1) AAS
お前はスレタイも質問文の前提も読めないのか
684: (ラクッペペ MM4b-pGo3) 2023/08/23(水)06:02 ID:DtllJKP1M(1) AAS
VC++なら実体はC++/CLIの実装なのでちょっとした手間でWinUI 3が利用出来るんじゃないの?
知らんけど
685: (ワッチョイ d9da-IilA) 2023/08/23(水)07:20 ID:5hD/FFHF0(1) AAS
また知ったかが
VC++とC++/CLIは全くの別もんだろ
686
(1): (ラクッペペ MM4b-pGo3) 2023/08/23(水)07:45 ID:jTxxfogGM(1) AAS
C++/CLI
外部リンク:ja.wikipedia.org
687: (ワッチョイ a158-0WDc) 2023/08/23(水)10:20 ID:tOgZZX+q0(1) AAS
>>680
WineかWSL2あたりじゃね
今やるなら
688: (スフッ Sdb3-G+yN) 2023/08/23(水)11:25 ID:WaZBmlqUd(1) AAS
>>676
wxWidgets とか tcl/tk (C++じゃないが敢えて) とか

>>678
ほんそれ
ロストワールドになりそうな勢い
昔のコボちゃんもこんな感じで引退して逝ったんだろうか

>>680
省1
689: (テテンテンテン MM4b-RKQT) 2023/08/23(水)12:28 ID:SELcDCTxM(1) AAS
Electronどうかね。
使ったこと無いけど。
690: (ワッチョイ 5105-D2YO) 2023/08/23(水)12:39 ID:WZJfreeh0(1) AAS
要件によって変わるから一概にコレってのが無いな
1-
あと 312 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.018s