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

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
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
要件によって変わるから一概にコレってのが無いな
691: (ワッチョイ 93f0-WivN) 2023/08/23(水)22:44 ID:slwUpp650(1) AAS
C++でGUI作るときはQt使ってる。Designerが便利
692
(1): (ワッチョイ 93f0-YAjS) 2023/08/24(木)03:00 ID:KjKP5fLp0(1) AAS
何故C++のGUIフレームワークのライセンスはLGPLばかりなのか
693: (ワッチョイ 599c-RKQT) 2023/08/24(木)08:48 ID:TNcuPvYX0(1) AAS
>>692
qtはqtライセンスあるだろ。
electron はMITだし、wxWidgetsも例外条項付きLGPL。
694: (アウアウウー Sa45-WivN) 2023/08/24(木)19:48 ID:IxxAot5ma(1) AAS
ImGuiってどうよ?
695
(1): (ワッチョイ db79-wKkg) 2023/08/24(木)22:02 ID:W+JHQ2GG0(1) AAS
>C++でGUI
出てくるモノが昔と代わり映えしてなくて草
C#でええやろ
696
(1): (ワッチョイ 3128-gjgG) 2023/08/25(金)07:08 ID:rQn+0/0C0(1/2) AAS
C++よりC#やJavaの方がGUIを書きやすいという言語の違いに起因する理由って何かあるっけ
リフレクションやガベージコレクションが別段必須でない気もするし
async/awaitが付く前からなんかJava/C#でGUI、という流れになっていた気がするし、
実はインテリセンスが効きやすい、とかアプレット的なやつがActiveXより書きやすかったから、とかそんなのが理由だったりして……
つなみにX window systemは良く知りま栓
697: (ワッチョイ 599c-HTZh) 2023/08/25(金)07:59 ID:w6iB83KR0(1) AAS
GUIツールキットの設計・開発は難しい
JavaはAWT→Swing→JavaFX
.NETはWinForms→WPF→UWP→WinUI3
何度も作り直してるんだよね

C++には標準GUIツールキットなんて要らないよ(どうせ何度も作り直すことになる)
698
(2): (ワッチョイ 3128-gjgG) 2023/08/25(金)08:10 ID:rQn+0/0C0(2/2) AAS
ゴメリよく考えたらフレクションがあると強いわ;;;
フォームエディタみたいなやつを提供する立場にたてば
ウィジェットクラスを作ったらそれだけでリフレクションを使ってそいつのプロパティーを即エディターのプロパティーに並べられるて
利用者に提供できうる
699: (ワッチョイ 93f0-WivN) 2023/08/25(金)08:33 ID:8nfgHtXd0(1) AAS
>>698
それくらいならC++でもヘッダ見ればリフレクション無しでできるんじゃね?
700: (アウアウウー Sa45-greZ) 2023/08/25(金)09:11 ID:5+gJach+a(1) AAS
>>696
X の頃は x 用の toolkit があったけど
tcl/tk が便利過ぎてそっちに行った人多し
701: (ブーイモ MMb3-HTZh) 2023/08/25(金)09:51 ID:5ARzKA7QM(1) AAS
フォームエディターっていつの時代よ
それってホームページビルダーでホームページ作るようなもので柔軟性がないんだよね
ウィンドウサイズ固定ならともかく、可変サイズのレイアウト作るならGUIデザイナ使うよりコード書いたほうが管理しやすい
ホームページビルダーよりHTML/CSS手書きを選ぶのと一緒
702: (ワッチョイ 9990-JowH) 2023/08/26(土)21:45 ID:uP0Ej+dj0(1) AAS
>>698
たしかにそうだよな
スレッド周りなんて他で試行錯誤して枯れて辺りで
正式採用されたもんな
703: (オイコラミネオ MM65-u1T+) 2023/08/28(月)00:05 ID:HI9+dVvpM(1) AAS
>>695
嫌だ。
704: (ワッチョイ 8610-4o0D) 2023/08/29(火)00:12 ID:VlZlfeK60(1) AAS
c++builderってネットに殆ど情報ないですね。
書籍もないし。
あまり使われてないからだと思うけど、これ使って開発すると躓いたら解決策見つからず苦労しますかね、、。
705: 2023/08/29(火)03:59 ID:7e4Tklec0(1) AAS
Builderの情報はほとんどないけどC++の情報はいっぱいある
VCLの情報はDelphiと同じだからなんとか探せばある
自分はBuilderだけ買ったけど同時にDelphiも買っておけばよかったとちょっと後悔はしているね
その程度には中途半端な存在と思う
706: (ワッチョイ 6dda-PUhn) 2023/08/29(火)11:29 ID:r8rvdmrM0(1) AAS
VCLのソースがないと中でなにやってるかワカランからな
707
(4): (ワッチョイ caad-VnR5) 2023/08/29(火)16:30 ID:2MvLEdvj0(1) AAS
ヘッダにインターフェースだけ書いてcppにインプリメントクラスを定義して隠蔽するのって
ライブラリとかフレームワークだと意味あるけどアプリケーションレベルの実装でやる意味って無いですよね?
708: はちみつ餃子◆8X2XSCHEME (ワッチョイ a13e-aWw4) 2023/08/29(火)16:40 ID:s7G+g/ai0(1/2) AAS
>>707
インターフェースって何?
709: (ワッチョイ d95f-1fgM) 2023/08/29(火)16:40 ID:Gj9jSZac0(1) AAS
インターフェースが何を指すか次第だけど、たぶんPimplイディオムのことかな?
ライブラリみたいに境界がかっちりしてないならそうかもね
710: 蟻人間◆T6xkBnTXz7B0 (スフッ Sdea-fyEs) 2023/08/29(火)16:40 ID:A1BJ1LVxd(1) AAS
>>707
ビルド時間を短縮する目的での隠蔽に使われることはある。隠蔽っていろいろ便利だから。
711: はちみつ餃子◆8X2XSCHEME (ワッチョイ a13e-aWw4) 2023/08/29(火)17:08 ID:s7G+g/ai0(2/2) AAS
pimpl は疎結合にできる分だけ
差分ビルドでコンパイルする範囲が
小さくなるから特に巨大なプログラムの開発では
ビルド時間を短縮する意味はあるはずだが
余計な構造を挟む煩わしさと比べて
割にあうのはよっぽど極端な場合に限ると思われている。
(意味はあるが意味のある状況は限定的)
1-
あと 291 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.023s