【初心者歓迎】C/C++室 Ver.106【環境依存OK】

レス数が1000を超えています。これ以上書き込みはできません。
2020/07/13(月) 13:51:48.09ID:WBkWHxcT
エスケープシーケンスやWin32APIなどの環境依存なものもOK
そのような質問は必ず環境を書きましょう
半角空白やタブでのインデントはスレに貼ると無くなります

コードを貼れる所
http://codepad.org/
https://ideone.com/

前スレ
【初心者歓迎】C/C++室 Ver.105【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1556142878/
2022/02/18(金) 12:47:42.19ID:YFQd7auv
malloc/freeなら検出できるやん
2022/02/18(金) 12:48:02.74ID:fowo2HBL
>>932
対処する必要があるところで catch して解放するだけだろう。
それがどうして出来ないんだ?
2022/02/18(金) 13:19:45.68ID:+V9f8lU9
まあ、それよ
そういう対応が必要になるって話よ
追加するやつ全部trycatchで包むか
mallocfreeをクラスで包むか
入れたのは20行程度なのにルーチンの流れまで変える必要があったりなかったりで(# ゚Д゚) イラッ!
2022/02/18(金) 13:39:34.12ID:v7utSHD9
>>934
malloc-freeしてる既存コードに例外発生する処理を混ぜるなんて特殊状況ならしょうがない。
面倒な状況なのはわかる。あきらめて心を殺してtry catchするか小さいRAII用クラスを作るか。
あるいはmalloc-freeしてるところも標準コンテナやunique_ptrに置き換えていけばすっきりするかもね。
2022/02/19(土) 09:00:24.16ID:AlOKsuc0
>>932
クソすぎかもしれないが、それは必要だし普通だろ
2022/02/19(土) 10:43:55.59ID:MFjncly/
メモリ解放以外にデストラクタでやることはあるわけだしな
集約して定義しとけよという
2022/03/09(水) 22:51:16.35ID:wIy/pNxS
LinuxでyyyyMMddhhmmss.fffを出力する
一番簡単な方法を教えて下さい
2022/03/09(水) 23:05:24.02ID:w9Xuob20
printf("yyyyMMddhhmmss.fff");
2022/03/09(水) 23:58:24.65ID:ptoc1SJJ
GNU/Linuxを仮定
system("date +%Y%m%d%H%M%S.%3N\");
2022/03/10(木) 00:03:44.70ID:IfzvyEOT
日付のフォーマットなんて都度調べるもんな
覚えてる変なやつもいるんだろうね
2022/03/10(木) 00:11:23.45ID:3vn8A8hZ
https://shino-tec.com/2019/06/08/time-to-string-on-linux/
2022/03/10(木) 07:16:50.83ID:ZtFzrJEF
>>945
これやったら秒とミリ秒を別で取得してるので
秒が59.999(ミリ秒はイメージ)のときに
ミリ秒は00.002ってなるときに前回の値が59.857ぐらいだったとすると

59.002ってなってしまうので逆転が起きたときは前回の値と比較して
逆転してたらミリ秒を強制的に999にするとかダサイことやってるんですけど
マジでこんな方法しかないでしょうか?
2022/03/10(木) 07:48:07.93ID:E/Z/b8gJ
>>946
そのダサいことをやってるのは何行目?
見つからないよ
2022/03/10(木) 08:52:39.45ID:pPpJXJXf
localtimeが時刻取得だと思ったんじゃろうね
2022/03/10(木) 18:51:28.19ID:xl0leRXC
>>947
timespecで取得できるのがミリ秒だけだと思ってました
自分のプログラムでtime_tで取得できる関数と複合してたのが原因でした
2022/03/10(木) 20:18:24.41ID:udY9aSDo
あー、だめだ
localtime_rがないって言われる
2022/03/10(木) 20:21:17.65ID:udY9aSDo
localtime_sもないって言われる
しばらくクソ方法で保留で
2022/03/10(木) 20:46:05.68ID:xH/r/VUj
>>950
環境は?
2022/03/10(木) 23:26:58.80ID:udY9aSDo
>>952
ubuntu
2022/03/11(金) 00:11:00.88ID:3xV59ngV
rはあるやろ
2022/03/11(金) 13:08:09.69ID:2pJSEvK3
ビルドの設定いじってもらって通りました
ありがとう御座いました
2022/03/17(木) 11:34:53.41ID:qJRouQ9M
【質問】
switch constexpr って無いんですか?

【背景】
if constexpr(false){
}
if constexpr(false){
}
if constexpr(true){
}
if constexpr(false){
}
という記法に疲れました。
switch(定数) で実現可能ですが、コンパイラがwarningを出すので避けたいところです。
2022/03/17(木) 11:40:14.61ID:Y2OAtTnf
無いけど俺も欲しい
2022/03/17(木) 11:44:52.12ID:qJRouQ9M
>>957
早速の回答ありがとうございます。
否定的な解決で残念ですが、前向きに生きていきます!
2022/03/19(土) 13:40:31.67ID:nPptgbtB
クロスプラットフォーム対応のキーボードイベント入力・マウスイベント入力があるライブラリで、規模がそこまで大きくないものって何かありますか?
2022/03/19(土) 14:54:00.91ID:Q/NZ1iFj
ncurses
2022/03/21(月) 11:06:17.41ID:Prmlj1K5
>>960
情報ありがとうございます
ncursesだとWindowsで動かしにくいみたいなんでフォークのpdcursesでやってみます
2022/03/26(土) 22:10:06.23ID:U9Dry82x
>>908
ググって出てこないようなことをおまえら答えれるのか?
2022/03/26(土) 23:30:57.78ID:po6dvxnc
日本語で記述された問題や目的から有用なページを紹介するのはグーグル先生は苦手なんだよ。
核心的なキーワード抜きだと特に。
2022/03/26(土) 23:42:52.67ID:as/ML4Ec
>>962

軽く調べた結果:

https://el.mml.tuis.ac.jp/moodle/mod/page/view.php?id=913

http://www.cc.kyoto-su.ac.jp/~hxm/cstext/prog06.html

https://programming.pc-note.net/c/header.html


どこだったか忘れたけど俺は検索して学んだ記憶がある
記憶違いかもしれないけど
2022/03/29(火) 22:17:14.91ID:JBheGd8b
スマホが普及しきった2015年くらいからGoogle検索の難易度一気に上がったな
昔はガバガバキーワードでもGoogle先生が忖度してくれていた
2022/03/30(水) 08:00:47.76ID:NklUKb3w
忖度の意味知らなそう
2022/03/30(水) 10:53:25.40ID:2Q6y3di6
Google ADの顧客は優遇致します
968デフォルトの名無しさん
垢版 |
2022/03/30(水) 12:23:34.00ID:eoFMqmT7
広告出してくれるインチキ医療サイトや適当プログラミングスクール優遇しまーす!!

無能
969デフォルトの名無しさん
垢版 |
2022/03/31(木) 16:42:12.47ID:Pfu/lGwO
初心者歓迎ということで、ちょっと聞いてみたいのですが、c++の世界ではboostというライブラリは有名なのでしょうか?
c++で勤怠管理できるwebシステムを作るんだといってコンストラクタがなんだかわからないまま
boostを読んでヘッダファイルをいくつか読んだあたりで英語読めなくて投げ出したことがあります。
2022/03/31(木) 16:48:44.96ID:R4GrqV7T
>>969
有名だけど、使わんほうがいいよ
標準で十分だよ
971デフォルトの名無しさん
垢版 |
2022/03/31(木) 17:01:55.62ID:Pfu/lGwO
>>970
ありがとうございます!!
それに、あなた有識者の方ですね?
もしよければ少しだけ詳しく評判を教えていただければ幸いです。
2022/03/31(木) 17:23:59.00ID:Dq8nC8PK
>>969
かなり有名で活発。
最初から標準化委員会の人がかかわってるし、 Boost が出自の機能が標準入りしたこともある。
ただ、実験的な要素も多分にある。
急に仕様がかわることもある。

適切な場面では適切だし適切でない場面では適切でないというごく普通の話なんで、
評判がどうこうというより何をしたくて Boost に関心を持ってるのか説明したほうがいいよ。
973デフォルトの名無しさん
垢版 |
2022/03/31(木) 17:31:25.58ID:Pfu/lGwO
>>972
ありがとうございます。
boostは今はそんなに興味は持っていないんですが、今ちょうどMIMEタイプらへんのところを読んでいて、
そういえばboostにMIMEタイプって書いてあったなぁ、boostって業界だとどんな感じなんだろ?という感じです。
何となくなのですが、仕様が良く変わるから使いにくいと言う感じなのかな?と理解しました。
2022/03/31(木) 17:51:26.52ID:Dq8nC8PK
>>973
標準ライブラリほどには互換性は意識されないってだけで、
特に実験的な部分を除いては頻繁に変わるというほどでもないけど。
アップストリームでの変更の影響を避けるために
必要な部分だけ抜き出して自分のプロジェクトツリーに入れておくという運用もよくあるし。
(そのためのツールも用意されている。)
https://www.boost.org/doc/libs/1_78_0/tools/bcp/doc/html/index.html
975デフォルトの名無しさん
垢版 |
2022/03/31(木) 18:00:17.34ID:Pfu/lGwO
>>974
更に詳しく有難うございます。確かに抜き出しちゃえば変わらないですもんね。
他でも応用できそう。
2022/03/31(木) 18:34:15.90ID:YOGNRVrk
boost自体は使う必要はないけど、boostのドキュメントを読めないやつも不要だよな

ドキュメントもしっかりしてるから、使うだけなら簡単に使えるし
977デフォルトの名無しさん
垢版 |
2022/03/31(木) 19:04:21.70ID:Pfu/lGwO
>>976
ありがとうございます。
boostくらい軽く読めないならエンジニアになるなと言うことですね。
初めて3か月くらいなもんでポートフォリオの一つもないですけれど、
本当に読んでおきますね。
2022/03/31(木) 19:25:23.71ID:R4GrqV7T
これから年単位でトレーニングが続くのに初心者がいちいちポートフォリョーポートフォリョー言うのは大変めんどくせえ感
2022/03/31(木) 23:41:57.85ID:Sxv2nhUu
boost有用性は分かっていてもコンパイル時間やらなんやらで本チャンに適用しにくいんだよなぁ
2022/04/01(金) 01:53:53.30ID:46G1puQR
boostなんてtemplateで悪ふざけしてるだけだから
普通のアプリには使えない
981デフォルトの名無しさん
垢版 |
2022/04/09(土) 01:43:32.41ID:fJGplIUn
VC++である動画を再生するのにコーデックのDLLが必要なのですが
予めレジストリにDLL情報を登録して、実行ファイルと同じディレクトリにDLLを置けば動きます。
でも他の環境でレジストリに登録するのが大変なので(権限がらみで面倒)、登録なしでどうにか動かす事が出来ないでしょうか?
DLLを参照とかしても無理でしょうか?
2022/04/09(土) 09:41:01.85ID:nJhutFId
レジストリで何を登録してるんだろう?
関数をexportするだけのsusieプラグイン
なんかはレジストリ登録不要で利用できるけど
983デフォルトの名無しさん
垢版 |
2022/04/09(土) 13:44:11.76ID:unOoTfDz
COMだろ
仕様が公開されてればLoadLibrary()して使えるんじゃね?
2022/04/09(土) 14:04:17.62ID:ehpYMGIZ
DirectShowやMediaFoundationのcodecなら自分で呼ぶわけにもいかんだろうな
2022/04/09(土) 17:06:35.88ID:fJGplIUn
みなさんレスありがとう。
>>984
たぶんこれなんですよね… やっぱ無理ですかね。
986985
垢版 |
2022/04/09(土) 18:31:18.53ID:fJGplIUn
今見たら、Video For Windowsの機能を利用してるみたいでした。
こんな古いのを使ってるから専用のコーデックを使わないといけないのか。
コーデックはH.264用のDLLみたいですね。どうにかならないかな。
HKEY_LOCAL_MACHINEにプログラムから簡単に登録出来ればいいんだけど。
なんか良い案はないでしょうか。
2022/04/09(土) 19:04:00.95ID:3yKii3E5
権限が必要ならプログラムのマニフェストで権限を要求。
自動化が必要なら、必要なコマンドラインを調べてバッチプログラム化する。
2022/04/09(土) 19:39:38.43ID:fJGplIUn
>>987
ありがとうございます。調べてやってみます。
2022/04/09(土) 19:45:37.96ID:s5Ocn4sk
一般的な動画再生ソフトでもコーデックをインストールしないと見れないのがあるが
一方、コーデック内臓もあるので技術的にはインストール不要だとおもうが
やり方はしらん、どっちも
990985
垢版 |
2022/04/10(日) 14:43:33.45ID:pRTmUSXM
とりあえずはマニフェストの設定変更で、起動した時に権限要求するようにしました。
調べて更に良い方法あればまた変更するつもりです。みなさんレスありがとうございました。
991デフォルトの名無しさん
垢版 |
2022/04/14(木) 15:42:21.39ID:VkbtJkFZ
SIMDの勉強中で、下のようなことをしたいのですが、コンストラクタでエラーになります。
プリミティブ型をアライメント指定してnew,deleteするにはどうすればいいですか?
class MyClass {
public:
MyClass() : member(new (std::align_val_t{32}) int[1000]) {}
~MyClass() { delete[] member; }
int* member;
};
2022/04/14(木) 16:34:45.62ID:4tVKG4Xu
コンパイラの吐き出すエラーは見た?
std::align_val_t を使えるのは C++17以降みたいだけど
そこらへんは大丈夫?

(※ ideone は C++14までやよね?)
993991
垢版 |
2022/04/14(木) 16:56:57.03ID:VkbtJkFZ
>>992
C++20です。
visual studio 2022でエラーC2956が出ます。
エラーのリンク先には構造体をnewしたい場合の対処法が書かれてます。
対処法:構造体の宣言時にalignas()でアライメント指定する。
プリミティブ型を宣言することができない(?)ので、この対処法では解決できませんでした。
994デフォルトの名無しさん
垢版 |
2022/04/15(金) 15:16:32.90ID:KM+JgYPL
うめ
995デフォルトの名無しさん
垢版 |
2022/04/15(金) 15:16:44.85ID:KM+JgYPL
埋め
996デフォルトの名無しさん
垢版 |
2022/04/15(金) 15:16:54.57ID:KM+JgYPL
ume
997デフォルトの名無しさん
垢版 |
2022/04/15(金) 15:17:03.44ID:KM+JgYPL
998デフォルトの名無しさん
垢版 |
2022/04/15(金) 15:17:12.94ID:KM+JgYPL
ウメ
999デフォルトの名無しさん
垢版 |
2022/04/15(金) 15:17:37.65ID:KM+JgYPL
生め
1000デフォルトの名無しさん
垢版 |
2022/04/15(金) 15:17:46.37ID:KM+JgYPL
産め
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 641日 1時間 25分 58秒
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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