[過去ログ] 【初心者歓迎】C/C++室 Ver.106【環境依存OK】 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
903(1): はちみつ餃子 ◆8X2XSCHEME 2022/01/28(金)23:39 ID:hT9TavA0(5/5) AAS
ログ用途だとアドレスだけでは意味が薄そうに思うけど……
(実行のたびに値は変わるだろうし、検証に使えない。)
少なくとも整数などではないという区別が出来れば十分ということはあり得るかな。
タイプライブラリがちゃんと用意されているなら型名などが取得できる場合もあるので可能ならそういう情報も欲しいけど、
いずれにしても「文字列にする」という要求はユースケースが多用すぎて標準的な機能として決め打ちはしづらい。
904: 2022/01/28(金)23:47 ID:Bry4gZCu(1) AAS
>>903
Aのルーチンで使ってるオブジェクトとBのルーチンで使ってるオブジェクトが同じかどうかはわかる
それ以上のことを知りたいなら個別に表示ルーチンを組むしかない
905(3): 2022/01/29(土)16:18 ID:F6gMvu/h(1/2) AAS
ガチガチの初心者です
#include<iostream>
double func(double x){
if (x>0) return x;
else return 0;
}
double dfunc(double x){
if (x>0) return 1;
else return 0;
}
省10
906(1): 2022/01/29(土)16:41 ID:LNIGuTho(1/2) AAS
>>905 その3つファイル作って切り貼りして保存すればいいんじゃね。
907(2): 2022/01/29(土)16:44 ID:F6gMvu/h(2/2) AAS
>>906
すみません、書き方が悪かったです。分割の仕方?切り貼りして保存する3つのファイルの中身の書き方が知りたいです。
908(1): 2022/01/29(土)16:47 ID:3ZSK4aSw(1) AAS
>>907
なぜ調べもしない?
「C言語 分割コンパイル」でググりゃあ出てくるっしょ
909: 2022/01/29(土)16:48 ID:LNIGuTho(2/2) AAS
>>907 自分でやった結果を見せてもらわないと何に困ってるのかわからない。
910: 2022/01/29(土)17:08 ID:fQ9LbNHB(1) AAS
>>905
とりあえず func.f はやめとけ
911: 2022/01/29(土)17:27 ID:54L0j00R(1) AAS
ふぉーとらんらんらん
912: 2022/01/29(土)17:27 ID:CzloZbS7(1) AAS
>>905
どんな入門書にも書いてあるようなことを質問するのは嫌がられる。
学ぶ気がなく代わりにやらせようとしているように見えるので。
そんで関連する事柄が多いので質問が具体的でないと単純に情報量的にとてもここには書けない。
細々としたところで引っかかるのは当然あることだしそういうのは喜んで回答するから
何がわからずに引っかかってるのかもうちょっと具体的にして欲しい。
わからないことをまとめられないなら
とりあえず自分なりにやってみたらどうなったのか見せれば、
何がわかってないかこっちで推測できる可能性がある。
913(1): 2022/02/02(水)00:03 ID:9peRckoc(1) AAS
if (fp = fopen("file.txt", "W+"))
って書くと↓が出るんだけど?
warning: suggest parentheses around assignment used as truth value
914: 2022/02/02(水)00:50 ID:5Jw8HjAD(1) AAS
まあ気に食わないが括弧でくくってやってる
915: 蟻人間 ◆T6xkBnTXz7B0 2022/02/02(水)00:57 ID:gV8dH/Sr(1) AAS
if文では、代入と比較の混乱が深刻で、警告を出さなければいけなかったと聞いてるが。
916: 2022/02/02(水)08:17 ID:BmWHIg0d(1) AAS
論理型を省略した代償は高くつきすぎたな。
917: 2022/02/02(水)10:18 ID:l1cc3wPX(1) AAS
0とヌルの違いも曖昧な部分があったな
918: はちみつ餃子 ◆8X2XSCHEME 2022/02/02(水)11:07 ID:5i7w7V2o(1/3) AAS
>>913
強めの警告オプションを付けてたら言語仕様上の問題がないものでも良くない作法に対しては警告が出ることはある。
a && b || c
とかいう式でも (人間が) 優先度を勘違いしやすいから括弧を付けることを勧められるし、
インデントの付け方がずれてる場合とかも警告は出る。
余計なお世話だと思うなら大抵はオプションで抑制できるよ。
919: 2022/02/02(水)16:52 ID:Os1L/Ifx(1) AAS
括弧でくくっただけじゃ文句いわれたこともあるので二重否定しとく
if (!!(fp = fopen("file.txt", "W+")))
920: はちみつ餃子 ◆8X2XSCHEME 2022/02/02(水)17:18 ID:5i7w7V2o(2/3) AAS
C++17 以降では if 文の括弧の中に初期化を書けるようになった。
初期化の内容と判断に使う式をセミコロンで区切って書ける。
if (fp = fopen("file.txt", "W+"); fp)
このとき変数の宣言を書いてもよく、
if (FILE* fp = fopen("file.txt", "W+"); fp)
というようにすると、この変数のスコープを if 文の内側だけに制限できるので便利。
便利だから C にも導入して欲しい。
921(1): 2022/02/02(水)17:39 ID:il4bRKm2(1) AAS
if括弧中で初期化なんて前からやってたことだし
今じゃ代入も初期化になったのか
922: はちみつ餃子 ◆8X2XSCHEME 2022/02/02(水)18:18 ID:5i7w7V2o(3/3) AAS
>>921
以前は「条件が宣言でもよい」だったところに
あらたに「初期化文と条件のふたつを書ける」「初期化文は式、もしくは単純宣言である」というルールが追加された形。
923: 2022/02/08(火)08:24 ID:vXrgdSa9(1) AAS
デストラクタだけ書いてあってムーブできないクラスをメンバ変数にすると色んな所でコンパイルエラーが出て困りました
値ではなくポインタで持つか、自分のクラスででムーブコンストラクタを書いたらとりあえずはエラーが出なくなったのですが、
こういうクラスは一体どう使われるのを想定して実装したんでしょうか?
924: 2022/02/08(火)18:34 ID:SQWxHGFm(1/2) AAS
基底クラスからたくさん派生クラスを作りました。
基底クラスの1つのvirtualメソッドを、各派生クラスでoverrideしました。
基底クラスを指す箱から、派生クラスのメソッドを呼ぶ方法を教えてください。
多少スタイルを変えても実現する方法があればお願いします。
ただし、場合分けやインデックスで対応するのは(派生クラスが増えたときに修正箇所が分散するので)厳しいです。
コンパイラは最近のvisual studioのC++を使っています。
struct Basic{
virtual void work(){cout<<"Basic";}
};
struct B1:public Basic{
省10
925(2): 2022/02/08(火)19:25 ID:WarIH046(1) AAS
Basicの配列にはBasicのオブジェクトしか入らないから、b30もコピーしたときにBasicになってしまったからだよ
Basic*の配列にするかvector<uniq_ptr<Basic>>を使えば
926: 2022/02/08(火)19:56 ID:SQWxHGFm(2/2) AAS
>>925
ポリモーフィズム成功しました。基底クラスのポインタを使って解決しました。
また、基底クラスの変数にコピーすると派生クラス独自のメンバが全て無くなることが理解できました。
ありがとうございました。
void main(){
Basic*basic_array[9];
basic_array[0]=&b30;
basic_array[0]->work();//B30のメソッドが呼ばれた。
}
927: 2022/02/11(金)14:30 ID:/nAwqwYv(1) AAS
>>925
> vector<uniq_ptr<Basic>>を使え
動的にインスタンスを作り始めた途端に、コンテナとスマートポインタが必要になりました。
見事すぎる回答に改めて感謝します。
928(2): 2022/02/18(金)10:16 ID:+V9f8lU9(1/5) AAS
例外で飛んじゃうと後始末ができなくてメモリリークしちゃうんだけど
クラスでラップしてデストラクタっていちいちやる感じ?
929: 2022/02/18(金)10:30 ID:+V9f8lU9(2/5) AAS
try~catchで囲えば処理できるけど
すべての例外が出る可能性のあるコード全部try~catchしちゃっていい?
930: 2022/02/18(金)11:08 ID:v7utSHD9(1/2) AAS
>>928
「いちいちやる」っていうか、同種のリソースを扱うときはいつも必要になる対応だからデストラクタでいいんだよ。
大抵はunique_ptrとか標準にあるもので済むし。
931(1): はちみつ餃子 ◆8X2XSCHEME 2022/02/18(金)11:40 ID:fowo2HBL(1/2) AAS
>>928
いちいち個別対応したくないからクラス定義に押し込めるんだよ。
932(2): 2022/02/18(金)12:17 ID:+V9f8lU9(3/5) AAS
>>931
今回のとこちょっとなんだけどなぁ
例外発生するとこ全部でやらなあかんやんコレ
クソ杉ちゃう?
933: 2022/02/18(金)12:21 ID:mVeDXtSU(1) AAS
なにいってんの
934(1): 2022/02/18(金)12:27 ID:+V9f8lU9(4/5) AAS
えー、わからんのー?
つまり例外が発生しうるとこすべてで
尻切れトンボされる可能性があって
以前のようにmalloc-freeのコードが混じってるとそいつらは問答無用でメモリリークしちゃうって話よ
935: 2022/02/18(金)12:47 ID:YFQd7auv(1) AAS
malloc/freeなら検出できるやん
936: はちみつ餃子 ◆8X2XSCHEME 2022/02/18(金)12:48 ID:fowo2HBL(2/2) AAS
>>932
対処する必要があるところで catch して解放するだけだろう。
それがどうして出来ないんだ?
937: 2022/02/18(金)13:19 ID:+V9f8lU9(5/5) AAS
まあ、それよ
そういう対応が必要になるって話よ
追加するやつ全部trycatchで包むか
mallocfreeをクラスで包むか
入れたのは20行程度なのにルーチンの流れまで変える必要があったりなかったりで(# ゚Д゚) イラッ!
938: 2022/02/18(金)13:39 ID:v7utSHD9(2/2) AAS
>>934
malloc-freeしてる既存コードに例外発生する処理を混ぜるなんて特殊状況ならしょうがない。
面倒な状況なのはわかる。あきらめて心を殺してtry catchするか小さいRAII用クラスを作るか。
あるいはmalloc-freeしてるところも標準コンテナやunique_ptrに置き換えていけばすっきりするかもね。
939: 2022/02/19(土)09:00 ID:AlOKsuc0(1) AAS
>>932
クソすぎかもしれないが、それは必要だし普通だろ
940: 2022/02/19(土)10:43 ID:MFjncly/(1) AAS
メモリ解放以外にデストラクタでやることはあるわけだしな
集約して定義しとけよという
941: 2022/03/09(水)22:51 ID:wIy/pNxS(1) AAS
LinuxでyyyyMMddhhmmss.fffを出力する
一番簡単な方法を教えて下さい
942: 2022/03/09(水)23:05 ID:w9Xuob20(1) AAS
printf("yyyyMMddhhmmss.fff");
943: 蟻人間 ◆T6xkBnTXz7B0 2022/03/09(水)23:58 ID:ptoc1SJJ(1) AAS
GNU/Linuxを仮定
system("date +%Y%m%d%H%M%S.%3N\");
944: 2022/03/10(木)00:03 ID:IfzvyEOT(1) AAS
日付のフォーマットなんて都度調べるもんな
覚えてる変なやつもいるんだろうね
945(1): 蟻人間 ◆T6xkBnTXz7B0 2022/03/10(木)00:11 ID:3vn8A8hZ(1) AAS
外部リンク:shino-tec.com
946(1): 2022/03/10(木)07:16 ID:ZtFzrJEF(1) AAS
>>945
これやったら秒とミリ秒を別で取得してるので
秒が59.999(ミリ秒はイメージ)のときに
ミリ秒は00.002ってなるときに前回の値が59.857ぐらいだったとすると
59.002ってなってしまうので逆転が起きたときは前回の値と比較して
逆転してたらミリ秒を強制的に999にするとかダサイことやってるんですけど
マジでこんな方法しかないでしょうか?
947(1): 2022/03/10(木)07:48 ID:E/Z/b8gJ(1) AAS
>>946
そのダサいことをやってるのは何行目?
見つからないよ
948: 2022/03/10(木)08:52 ID:pPpJXJXf(1) AAS
localtimeが時刻取得だと思ったんじゃろうね
949: 2022/03/10(木)18:51 ID:xl0leRXC(1) AAS
>>947
timespecで取得できるのがミリ秒だけだと思ってました
自分のプログラムでtime_tで取得できる関数と複合してたのが原因でした
950(1): 2022/03/10(木)20:18 ID:udY9aSDo(1/3) AAS
あー、だめだ
localtime_rがないって言われる
951: 2022/03/10(木)20:21 ID:udY9aSDo(2/3) AAS
localtime_sもないって言われる
しばらくクソ方法で保留で
952(1): 2022/03/10(木)20:46 ID:xH/r/VUj(1) AAS
>>950
環境は?
953: 2022/03/10(木)23:26 ID:udY9aSDo(3/3) AAS
>>952
ubuntu
954: 2022/03/11(金)00:11 ID:3xV59ngV(1) AAS
rはあるやろ
955: 2022/03/11(金)13:08 ID:2pJSEvK3(1) AAS
ビルドの設定いじってもらって通りました
ありがとう御座いました
956: 2022/03/17(木)11:34 ID:qJRouQ9M(1/2) AAS
【質問】
switch constexpr って無いんですか?
【背景】
if constexpr(false){
}
if constexpr(false){
}
if constexpr(true){
}
if constexpr(false){
省3
957(1): 2022/03/17(木)11:40 ID:Y2OAtTnf(1) AAS
無いけど俺も欲しい
958: 2022/03/17(木)11:44 ID:qJRouQ9M(2/2) AAS
>>957
早速の回答ありがとうございます。
否定的な解決で残念ですが、前向きに生きていきます!
959: 2022/03/19(土)13:40 ID:nPptgbtB(1) AAS
クロスプラットフォーム対応のキーボードイベント入力・マウスイベント入力があるライブラリで、規模がそこまで大きくないものって何かありますか?
960(1): 2022/03/19(土)14:54 ID:Q/NZ1iFj(1) AAS
ncurses
961: 2022/03/21(月)11:06 ID:Prmlj1K5(1) AAS
>>960
情報ありがとうございます
ncursesだとWindowsで動かしにくいみたいなんでフォークのpdcursesでやってみます
962(1): 2022/03/26(土)22:10 ID:U9Dry82x(1) AAS
>>908
ググって出てこないようなことをおまえら答えれるのか?
963: 2022/03/26(土)23:30 ID:po6dvxnc(1) AAS
日本語で記述された問題や目的から有用なページを紹介するのはグーグル先生は苦手なんだよ。
核心的なキーワード抜きだと特に。
964: 2022/03/26(土)23:42 ID:as/ML4Ec(1) AAS
>>962
軽く調べた結果:
外部リンク[php]:el.mml.tuis.ac.jp
外部リンク[html]:www.cc.kyoto-su.ac.jp
外部リンク[html]:programming.pc-note.net
省2
965: 2022/03/29(火)22:17 ID:JBheGd8b(1) AAS
スマホが普及しきった2015年くらいからGoogle検索の難易度一気に上がったな
昔はガバガバキーワードでもGoogle先生が忖度してくれていた
966: 2022/03/30(水)08:00 ID:NklUKb3w(1) AAS
忖度の意味知らなそう
967: 2022/03/30(水)10:53 ID:2Q6y3di6(1) AAS
Google ADの顧客は優遇致します
968: 2022/03/30(水)12:23 ID:eoFMqmT7(1) AAS
広告出してくれるインチキ医療サイトや適当プログラミングスクール優遇しまーす!!
無能
969(2): 2022/03/31(木)16:42 ID:Pfu/lGwO(1/5) AAS
初心者歓迎ということで、ちょっと聞いてみたいのですが、c++の世界ではboostというライブラリは有名なのでしょうか?
c++で勤怠管理できるwebシステムを作るんだといってコンストラクタがなんだかわからないまま
boostを読んでヘッダファイルをいくつか読んだあたりで英語読めなくて投げ出したことがあります。
970(1): 2022/03/31(木)16:48 ID:R4GrqV7T(1/2) AAS
>>969
有名だけど、使わんほうがいいよ
標準で十分だよ
971: 2022/03/31(木)17:01 ID:Pfu/lGwO(2/5) AAS
>>970
ありがとうございます!!
それに、あなた有識者の方ですね?
もしよければ少しだけ詳しく評判を教えていただければ幸いです。
972(1): はちみつ餃子 ◆8X2XSCHEME 2022/03/31(木)17:23 ID:Dq8nC8PK(1/2) AAS
>>969
かなり有名で活発。
最初から標準化委員会の人がかかわってるし、 Boost が出自の機能が標準入りしたこともある。
ただ、実験的な要素も多分にある。
急に仕様がかわることもある。
適切な場面では適切だし適切でない場面では適切でないというごく普通の話なんで、
評判がどうこうというより何をしたくて Boost に関心を持ってるのか説明したほうがいいよ。
973(1): 2022/03/31(木)17:31 ID:Pfu/lGwO(3/5) AAS
>>972
ありがとうございます。
boostは今はそんなに興味は持っていないんですが、今ちょうどMIMEタイプらへんのところを読んでいて、
そういえばboostにMIMEタイプって書いてあったなぁ、boostって業界だとどんな感じなんだろ?という感じです。
何となくなのですが、仕様が良く変わるから使いにくいと言う感じなのかな?と理解しました。
974(1): はちみつ餃子 ◆8X2XSCHEME 2022/03/31(木)17:51 ID:Dq8nC8PK(2/2) AAS
>>973
標準ライブラリほどには互換性は意識されないってだけで、
特に実験的な部分を除いては頻繁に変わるというほどでもないけど。
アップストリームでの変更の影響を避けるために
必要な部分だけ抜き出して自分のプロジェクトツリーに入れておくという運用もよくあるし。
(そのためのツールも用意されている。)
外部リンク[html]:www.boost.org
975: 2022/03/31(木)18:00 ID:Pfu/lGwO(4/5) AAS
>>974
更に詳しく有難うございます。確かに抜き出しちゃえば変わらないですもんね。
他でも応用できそう。
976(1): 2022/03/31(木)18:34 ID:YOGNRVrk(1) AAS
boost自体は使う必要はないけど、boostのドキュメントを読めないやつも不要だよな
ドキュメントもしっかりしてるから、使うだけなら簡単に使えるし
977: 2022/03/31(木)19:04 ID:Pfu/lGwO(5/5) AAS
>>976
ありがとうございます。
boostくらい軽く読めないならエンジニアになるなと言うことですね。
初めて3か月くらいなもんでポートフォリオの一つもないですけれど、
本当に読んでおきますね。
978: 2022/03/31(木)19:25 ID:R4GrqV7T(2/2) AAS
これから年単位でトレーニングが続くのに初心者がいちいちポートフォリョーポートフォリョー言うのは大変めんどくせえ感
979: 2022/03/31(木)23:41 ID:Sxv2nhUu(1) AAS
boost有用性は分かっていてもコンパイル時間やらなんやらで本チャンに適用しにくいんだよなぁ
980: 2022/04/01(金)01:53 ID:46G1puQR(1) AAS
boostなんてtemplateで悪ふざけしてるだけだから
普通のアプリには使えない
981: 2022/04/09(土)01:43 ID:fJGplIUn(1/4) AAS
VC++である動画を再生するのにコーデックのDLLが必要なのですが
予めレジストリにDLL情報を登録して、実行ファイルと同じディレクトリにDLLを置けば動きます。
でも他の環境でレジストリに登録するのが大変なので(権限がらみで面倒)、登録なしでどうにか動かす事が出来ないでしょうか?
DLLを参照とかしても無理でしょうか?
982: 2022/04/09(土)09:41 ID:nJhutFId(1) AAS
レジストリで何を登録してるんだろう?
関数をexportするだけのsusieプラグイン
なんかはレジストリ登録不要で利用できるけど
983: 2022/04/09(土)13:44 ID:unOoTfDz(1) AAS
COMだろ
仕様が公開されてればLoadLibrary()して使えるんじゃね?
984(1): 2022/04/09(土)14:04 ID:ehpYMGIZ(1) AAS
DirectShowやMediaFoundationのcodecなら自分で呼ぶわけにもいかんだろうな
985(2): 2022/04/09(土)17:06 ID:fJGplIUn(2/4) AAS
みなさんレスありがとう。
>>984
たぶんこれなんですよね… やっぱ無理ですかね。
986: 985 2022/04/09(土)18:31 ID:fJGplIUn(3/4) AAS
今見たら、Video For Windowsの機能を利用してるみたいでした。
こんな古いのを使ってるから専用のコーデックを使わないといけないのか。
コーデックはH.264用のDLLみたいですね。どうにかならないかな。
HKEY_LOCAL_MACHINEにプログラムから簡単に登録出来ればいいんだけど。
なんか良い案はないでしょうか。
987(1): 蟻人間 ◆T6xkBnTXz7B0 2022/04/09(土)19:04 ID:3yKii3E5(1) AAS
権限が必要ならプログラムのマニフェストで権限を要求。
自動化が必要なら、必要なコマンドラインを調べてバッチプログラム化する。
988: 2022/04/09(土)19:39 ID:fJGplIUn(4/4) AAS
>>987
ありがとうございます。調べてやってみます。
989: 2022/04/09(土)19:45 ID:s5Ocn4sk(1) AAS
一般的な動画再生ソフトでもコーデックをインストールしないと見れないのがあるが
一方、コーデック内臓もあるので技術的にはインストール不要だとおもうが
やり方はしらん、どっちも
990: 985 2022/04/10(日)14:43 ID:pRTmUSXM(1) AAS
とりあえずはマニフェストの設定変更で、起動した時に権限要求するようにしました。
調べて更に良い方法あればまた変更するつもりです。みなさんレスありがとうございました。
991(1): 2022/04/14(木)15:42 ID:VkbtJkFZ(1/2) AAS
SIMDの勉強中で、下のようなことをしたいのですが、コンストラクタでエラーになります。
プリミティブ型をアライメント指定してnew,deleteするにはどうすればいいですか?
class MyClass {
public:
MyClass() : member(new (std::align_val_t{32}) int[1000]) {}
~MyClass() { delete[] member; }
int* member;
};
992(1): 2022/04/14(木)16:34 ID:4tVKG4Xu(1) AAS
コンパイラの吐き出すエラーは見た?
std::align_val_t を使えるのは C++17以降みたいだけど
そこらへんは大丈夫?
(※ ideone は C++14までやよね?)
993: 991 2022/04/14(木)16:56 ID:VkbtJkFZ(2/2) AAS
>>992
C++20です。
visual studio 2022でエラーC2956が出ます。
エラーのリンク先には構造体をnewしたい場合の対処法が書かれてます。
対処法:構造体の宣言時にalignas()でアライメント指定する。
プリミティブ型を宣言することができない(?)ので、この対処法では解決できませんでした。
994: 2022/04/15(金)15:16 ID:KM+JgYPL(1/7) AAS
うめ
995: 2022/04/15(金)15:16 ID:KM+JgYPL(2/7) AAS
埋め
996: 2022/04/15(金)15:16 ID:KM+JgYPL(3/7) AAS
ume
997: 2022/04/15(金)15:17 ID:KM+JgYPL(4/7) AAS
梅
998: 2022/04/15(金)15:17 ID:KM+JgYPL(5/7) AAS
ウメ
999: 2022/04/15(金)15:17 ID:KM+JgYPL(6/7) AAS
生め
1000: 2022/04/15(金)15:17 ID:KM+JgYPL(7/7) AAS
産め
1001(1): 1001 ID:Thread(1/2) AAS
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 641日 1時間 25分 58秒
1002(1): 1002 ID:Thread(2/2) AAS
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
省4
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.051s