探検
0からの、超初心者C++相談室
レス数が950を超えています。1000を超えると書き込みができなくなります。
1デフォルトの名無しさん
2018/11/12(月) 14:55:13.35ID:Tf74ZWQr 何にも知らない0からの出発、超初心者のためのC++相談室
872デフォルトの名無しさん
2024/07/19(金) 12:25:52.15ID:HkXmecYp functionではなくオーバーロードで生の関数や関数オブジェクト(ラムダ含む)を受け取って、functionと共にアドレス値を保存すればいいのでは
関数オブジェクトの場合はoperator ()のアドレス
関数オブジェクトの場合はoperator ()のアドレス
873デフォルトの名無しさん
2024/07/21(日) 02:13:54.03ID:5YGWxq2c 独習でc++を勉強していて時々プロセッサとかライブラリ関数これなんだろ?になるのですがそういうの調べる辞典的なものってあるのでしょうか?
あるのでしたらおすすめのもの教えてもらえませんか
あるのでしたらおすすめのもの教えてもらえませんか
874デフォルトの名無しさん
2024/07/21(日) 02:27:27.18ID:neWsPxIF C++標準に関しては
https://cpprefjp.github.io/
https://ja.cppreference.com/w/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8
プラットフォーム固有のものに関してもそれぞれあるけど
関数名でググったら大抵上の方に出てくるとおも
https://cpprefjp.github.io/
https://ja.cppreference.com/w/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8
プラットフォーム固有のものに関してもそれぞれあるけど
関数名でググったら大抵上の方に出てくるとおも
875はちみつ餃子 ◆8X2XSCHEME
2024/07/21(日) 08:39:43.55ID:uupG6eva ググって出てくるようなのは誤った記述も多い。
あまり信用しすぎずになるべく複数の情報源を持つのが好ましいと思う。
言語仕様は改訂もあるから資料の日付を見てどの版に対応するのかも意識する必要がある。
>>874 が示すような有志がまとめているサイトはちょっとした企業よりも高いモチベーションがあるのか質は高い。
本当にありがたいサイトなので役に立ったと思ったらちょっとくらいは寄付してあげてね。
あまり信用しすぎずになるべく複数の情報源を持つのが好ましいと思う。
言語仕様は改訂もあるから資料の日付を見てどの版に対応するのかも意識する必要がある。
>>874 が示すような有志がまとめているサイトはちょっとした企業よりも高いモチベーションがあるのか質は高い。
本当にありがたいサイトなので役に立ったと思ったらちょっとくらいは寄付してあげてね。
876デフォルトの名無しさん
2024/07/21(日) 12:22:32.16ID:qC5USrOr Unix環境ならmanは割と手軽で良い
877デフォルトの名無しさん
2024/07/21(日) 15:22:13.51ID:neWsPxIF いや、プラットフォーム固有って言ったのは
Microsoft Learn(旧MSDN)とかApple Developerとかのことやぞ
Microsoft Learn(旧MSDN)とかApple Developerとかのことやぞ
878デフォルトの名無しさん
2024/07/21(日) 16:05:28.79ID:neWsPxIF 安価忘れてた、>>875ね
複数の情報源持つべきとかは同意するけど
プラットフォーム固有のは公式が一番信用できるに決まってる(ただMicrosoftのは機械翻訳になってから日本語版がアレだけど・・・)
複数の情報源持つべきとかは同意するけど
プラットフォーム固有のは公式が一番信用できるに決まってる(ただMicrosoftのは機械翻訳になってから日本語版がアレだけど・・・)
879デフォルトの名無しさん
2024/07/21(日) 19:10:23.03ID:5YGWxq2c880デフォルトの名無しさん
2024/07/21(日) 21:04:50.60ID:D0FAs2Ah cpprefjpはなんかTシャツ作るらしいから記念に買うわ
https://github.com/cpprefjp/site/issues/1296
https://github.com/cpprefjp/site/issues/1296
881デフォルトの名無しさん
2024/07/21(日) 21:06:26.85ID:neWsPxIF 手元に置いておく辞典系の本があっても良いと思うけどちょっとお勧めできるものを知らない・・(C++11より前のものしか買ったことない)
秋葉原とかの技術系の書店で手に取って読んでみるのがベストなんだけどねぇ
秋葉原とかの技術系の書店で手に取って読んでみるのがベストなんだけどねぇ
882デフォルトの名無しさん
2024/07/23(火) 01:20:07.66ID:Rfg4Mjqa >>880
誰得
誰得
883デフォルトの名無しさん
2024/07/25(木) 15:13:06.50ID:kulC2cnH >>882
1万円くらいで転売しようと考えています
1万円くらいで転売しようと考えています
884デフォルトの名無しさん
2024/07/29(月) 05:00:32.70ID:ycfafYuZ885デフォルトの名無しさん
2024/08/01(木) 04:44:09.33ID:ZgmEa4OS unordered_map の extract というのはC++17以降でしか使えないのですか
886デフォルトの名無しさん
2024/08/01(木) 09:34:34.68ID:jWmufzw0887デフォルトの名無しさん
2024/08/02(金) 22:37:31.58ID:8YStqjv0 ここでGoogleTestの質問をしてもよろしいでしょうか?
888デフォルトの名無しさん
2024/08/04(日) 12:54:37.69ID:jHE0rxct 質問なのですが派生とshared_ptr<T>を組み合わせたときに、
class Base {
int m_x;
protected: // Baseクラスのコンストラクタはprotected
Base(int x) : m_x(x) { }
virtual ~Base() { } // 仮想関数にしてもしなくても同じ下記現象
};
class Derived {
public: // 派生クラスのコンストラクタはpublic
Derived() : Base(10) { }
};
std::shared_ptr<Base> pBase(new Derived());
とやったら
error C2248: 'Base::~Base': protected メンバー (クラス 'Base' で宣言されている) にアクセスできません。
と言われるんだけどなんで?その判定要る??
class Base {
int m_x;
protected: // Baseクラスのコンストラクタはprotected
Base(int x) : m_x(x) { }
virtual ~Base() { } // 仮想関数にしてもしなくても同じ下記現象
};
class Derived {
public: // 派生クラスのコンストラクタはpublic
Derived() : Base(10) { }
};
std::shared_ptr<Base> pBase(new Derived());
とやったら
error C2248: 'Base::~Base': protected メンバー (クラス 'Base' で宣言されている) にアクセスできません。
と言われるんだけどなんで?その判定要る??
889デフォルトの名無しさん
2024/08/04(日) 12:56:00.59ID:jHE0rxct 自己解決しますた
文句が言われているのはBaseのコンストラクタでは無くてデストラクタか……orz
文句が言われているのはBaseのコンストラクタでは無くてデストラクタか……orz
890デフォルトの名無しさん
2024/08/04(日) 14:08:27.06ID:dHG4OJIq 本当に解決したの?
それDerivedがBaseを継承していないよ?
それDerivedがBaseを継承していないよ?
891デフォルトの名無しさん
2024/08/04(日) 15:33:06.74ID:jHE0rxct あっはい
class Base {
int m_x;
protected: // Baseクラスのコンストラクタはprotected
Base(int x) : m_x(x) { }
pulic: // Baseのデストラクタをpublicに修正 // (1)
virtual ~Base() { }
};
class Derived : public Base { // 誤記訂正 // (2)
public: // 派生クラスのコンストラクタはpublic
Derived() : Base(10) { }
};
std::shared_ptr<Base> pBase(new Derived()); // (3)
(1)で解決、(2)は誤記訂正
文句言われたのがBaseのコンストラクタだとすると(3)においてDerivedのインスタンスがshared_ptr<Base>に渡される時点で呼び出し済なので
class Base {
int m_x;
protected: // Baseクラスのコンストラクタはprotected
Base(int x) : m_x(x) { }
pulic: // Baseのデストラクタをpublicに修正 // (1)
virtual ~Base() { }
};
class Derived : public Base { // 誤記訂正 // (2)
public: // 派生クラスのコンストラクタはpublic
Derived() : Base(10) { }
};
std::shared_ptr<Base> pBase(new Derived()); // (3)
(1)で解決、(2)は誤記訂正
文句言われたのがBaseのコンストラクタだとすると(3)においてDerivedのインスタンスがshared_ptr<Base>に渡される時点で呼び出し済なので
892デフォルトの名無しさん
2024/08/04(日) 15:35:40.71ID:jHE0rxct (3)でコンパイルエラーになるのは辻褄があわなくね?!と思った次第
文句言われたのがBaseのデストラクタだったからだいたい理解すた
(std::shared_ptr<Base>はあくまでBaseしか知らないから、Base::~Base()がpublicでなかったら
呼べないという解釈でエラーにするのは当然な可能性
文句言われたのがBaseのデストラクタだったからだいたい理解すた
(std::shared_ptr<Base>はあくまでBaseしか知らないから、Base::~Base()がpublicでなかったら
呼べないという解釈でエラーにするのは当然な可能性
893デフォルトの名無しさん
2024/08/05(月) 09:26:19.70ID:SHyTm/CM std::unordered_map<std::string, std::unique_ptr<int>> map があった時のmapの管理について
教えてください
この場合値の方がunique_ptrなのでコピーはできませんよね。すると値を取り出す時は
foo = std::move(map["hoge"]); としないといけない?
で、moveしたあとは hogeに対する値は無効になっちゃってますよね。ということは
自分で消さないといけない? map.erase("hoo")とかで
教えてください
この場合値の方がunique_ptrなのでコピーはできませんよね。すると値を取り出す時は
foo = std::move(map["hoge"]); としないといけない?
で、moveしたあとは hogeに対する値は無効になっちゃってますよね。ということは
自分で消さないといけない? map.erase("hoo")とかで
894デフォルトの名無しさん
2024/08/05(月) 12:50:07.44ID:Gb5pye15 >>893
>この場合値の方がunique_ptrなのでコピーはできませんよね。すると値を取り出す時は
>foo = std::move(map["hoge"]); としないといけない?
「値を取り出す」をどういう意味で使っているかによる
単に中身を読むだけならmoveしなくても良い
>この場合値の方がunique_ptrなのでコピーはできませんよね。すると値を取り出す時は
>foo = std::move(map["hoge"]); としないといけない?
「値を取り出す」をどういう意味で使っているかによる
単に中身を読むだけならmoveしなくても良い
895はちみつ餃子 ◆8X2XSCHEME
2024/08/05(月) 12:51:26.12ID:cmuXon6W >>893
その考え方で正しい。
std::unique_ptr をムーブすると抜け殻のほうのオブジェクトは nullptr を指すようになることは保証されるが、
そのスマートポインタ自体が std::unordered_map から勝手に消えたりはしない。
消えて欲しいならそのための操作は必要。
その考え方で正しい。
std::unique_ptr をムーブすると抜け殻のほうのオブジェクトは nullptr を指すようになることは保証されるが、
そのスマートポインタ自体が std::unordered_map から勝手に消えたりはしない。
消えて欲しいならそのための操作は必要。
896はちみつ餃子 ◆8X2XSCHEME
2024/08/05(月) 12:53:54.43ID:cmuXon6W std::unique_ptr 自体はコピーできないがそれが指しているオブジェクトを読むだけなら出来るしコピーすることも出来る (コピーコンストラクタを削除していないなら) 。
897デフォルトの名無しさん
2024/08/06(火) 11:13:46.48ID:SBxTyrdX Rust使おうず
898デフォルトの名無しさん
2024/08/06(火) 12:55:07.35ID:7fXoqzm8 いらね
899デフォルトの名無しさん
2024/08/12(月) 00:31:08.71ID:YAf3BhD8 標準講座C++―基礎からSTLを利用したプログラミングまで 新装版 ハーバート シルト著が気になったのですがこれで勉強したことある方いますか?
900はちみつ餃子 ◆8X2XSCHEME
2024/08/12(月) 01:07:19.65ID:CLy07uUA >>899
読んだことは無いけど 2009 年発売ってのは微妙な部分かもと思う。
2011 年の言語仕様改定がインパクトの強い変更を含んでいて基本的な書き方の習慣に大きな変化があった。
そこらへんの事情が含まれない本だと現状にそぐわない。
読んだことは無いけど 2009 年発売ってのは微妙な部分かもと思う。
2011 年の言語仕様改定がインパクトの強い変更を含んでいて基本的な書き方の習慣に大きな変化があった。
そこらへんの事情が含まれない本だと現状にそぐわない。
901デフォルトの名無しさん
2024/08/12(月) 03:05:00.33ID:LOlm/bL8 weak_ptrが処理の途中で解放されてしまうのを防ぐために lock()を呼んでshared_ptrを
取得してから処理、というのがありますが、
lock()を呼んだ時点で既に解放されていることもあるわけですよね?
確かにlock()の戻り値をチェックして不正な呼び出し等を防げるのはありがたいのですが、
そもそもオブジェクトが既に解放されているのは残念といいますか。
lock()を呼んでからする処理の場所に来るまでに解放されないようにしたい、と思った場合、
どうしたらよいのでしょうか? もしかしてそもそもweak_ptrを使うな、ということになります?
取得してから処理、というのがありますが、
lock()を呼んだ時点で既に解放されていることもあるわけですよね?
確かにlock()の戻り値をチェックして不正な呼び出し等を防げるのはありがたいのですが、
そもそもオブジェクトが既に解放されているのは残念といいますか。
lock()を呼んでからする処理の場所に来るまでに解放されないようにしたい、と思った場合、
どうしたらよいのでしょうか? もしかしてそもそもweak_ptrを使うな、ということになります?
902デフォルトの名無しさん
2024/08/12(月) 03:59:48.65ID:ArETDaeV あいまいな言葉よりコード見せてみ
903デフォルトの名無しさん
2024/08/12(月) 08:49:28.44ID:+jMHtzbv 既に寿命が切れてる場合はlock() が無効な shared_ptr を返すのでそれで判定する
lock() を呼んだ後は戻り値の shared_ptr が寿命を伸ばすので問題ない
shared_ptrは「有効なshared_ptrが1つ以上ある間はオブジェクトの寿命が消えない」ものなので、lock() が返すshared_ptrを保持してる間は消えないよ
lockを「weak_ptrからshared_ptrへの昇格を試みる」ものと考えても良い
lockしたい箇所の時点で必ずオブジェクトが生きていて欲しいなら、それはweak_ptrでなくshared_ptrを使うべき
lock() を呼んだ後は戻り値の shared_ptr が寿命を伸ばすので問題ない
shared_ptrは「有効なshared_ptrが1つ以上ある間はオブジェクトの寿命が消えない」ものなので、lock() が返すshared_ptrを保持してる間は消えないよ
lockを「weak_ptrからshared_ptrへの昇格を試みる」ものと考えても良い
lockしたい箇所の時点で必ずオブジェクトが生きていて欲しいなら、それはweak_ptrでなくshared_ptrを使うべき
904デフォルトの名無しさん
2024/08/12(月) 10:20:21.64ID:Lq53CINI >>899
2000年くらいにSTLはこれで勉強したよ
基本的なことは網羅されているが
C++の新しい仕様には対応してないので
別途学習すべし
いまもっと良い本があるかは分からない
C++の仕様は建て増しなので
この本に書かれていることは無意味ではない
2000年くらいにSTLはこれで勉強したよ
基本的なことは網羅されているが
C++の新しい仕様には対応してないので
別途学習すべし
いまもっと良い本があるかは分からない
C++の仕様は建て増しなので
この本に書かれていることは無意味ではない
905デフォルトの名無しさん
2024/08/12(月) 13:09:35.61ID:XQ/hRBSk キメラ
906デフォルトの名無しさん
2024/08/12(月) 16:00:24.68ID:K9Aw1MHl 超初心者とは何なのか・・・
907デフォルトの名無しさん
2024/08/13(火) 01:12:06.02ID:sOEG0OlC >>900>>904
返答ありがとうございます。
今同著者の別の本で勉強中ですが基本的なところでこれも買っとこうかな?って質問しました。
基本参考書として買ってみます。
基礎的なところ終わったら自分が作りたいプログラムに必要な現状の本でも買ってみます。
返答ありがとうございます。
今同著者の別の本で勉強中ですが基本的なところでこれも買っとこうかな?って質問しました。
基本参考書として買ってみます。
基礎的なところ終わったら自分が作りたいプログラムに必要な現状の本でも買ってみます。
908デフォルトの名無しさん
2024/08/13(火) 01:32:59.16ID:sOEG0OlC すいません。誰か下のコンパイルオプションわかる方いますか?
解いてた問題の解答にも文字化けするって書いてあったので文字化け対策のオプションなんかないかな?って思って調べたらこのオプションで解決できるって出てたので使ってた人の入力例そのままオプション挿入してみてちゃんと解決できたから気になって調べたんですがググっても出てこなくて入力例が次の行のやつです。
g++ test.cpp -finput-charset=CP932 -fexec-charset=CP932
-finput-charset
-fexec-charset
解いてた問題の解答にも文字化けするって書いてあったので文字化け対策のオプションなんかないかな?って思って調べたらこのオプションで解決できるって出てたので使ってた人の入力例そのままオプション挿入してみてちゃんと解決できたから気になって調べたんですがググっても出てこなくて入力例が次の行のやつです。
g++ test.cpp -finput-charset=CP932 -fexec-charset=CP932
-finput-charset
-fexec-charset
909デフォルトの名無しさん
2024/08/13(火) 02:09:15.07ID:sAvdrrrS910デフォルトの名無しさん
2024/08/13(火) 07:27:51.38ID:8FMmWnXe ああなるほど、意図せずマイナス検索状態になってたから一件もヒットしなかったってことか
あるある
あるある
911デフォルトの名無しさん
2024/08/13(火) 08:43:34.22ID:6ajF2Nvb >>899
シルトは有名
ロベールも有名だったけど、
C++11 に対応していないので古い
STL標準講座、1999年
ハーバート・シルト 著
επιστημη(エピステーメー) 監修
この本も古い。
確か、エピステーメーはC++ の標準化委員だっけ?
C++テンプレートテクニック―簡潔で再利用しやすいコードのためのC++活用術
επιστημη/高橋 晶【著】、2009
独習C++ 新版、2019/11
高橋 航平 (著), επιστημη(エピステーメー) (監修)
シルトは有名
ロベールも有名だったけど、
C++11 に対応していないので古い
STL標準講座、1999年
ハーバート・シルト 著
επιστημη(エピステーメー) 監修
この本も古い。
確か、エピステーメーはC++ の標準化委員だっけ?
C++テンプレートテクニック―簡潔で再利用しやすいコードのためのC++活用術
επιστημη/高橋 晶【著】、2009
独習C++ 新版、2019/11
高橋 航平 (著), επιστημη(エピステーメー) (監修)
912デフォルトの名無しさん
2024/08/13(火) 12:38:43.84ID:sOEG0OlC913デフォルトの名無しさん
2024/08/13(火) 12:57:30.56ID:lcpgo4xV914デフォルトの名無しさん
2024/08/14(水) 09:51:50.71ID:UePmitOB 変数名の付け方について教えてくだち
Objectの個数、とかは nobjs とか objcnt (類例: argc)とかは本に載っていてそれぞれ
nobjs --- number of objects の短縮表記
objcnt --- object count の短縮表記(名詞obuectが形容詞的活用
となって対応する同じ語順の英語表現がある気がするのですが
<limit.h> の INT_MAX、INT_MIN はmaxやminがなぜ後置?
何の短縮形?
minやmaxの後置と前置の使い分けとは一体……
Objectの個数、とかは nobjs とか objcnt (類例: argc)とかは本に載っていてそれぞれ
nobjs --- number of objects の短縮表記
objcnt --- object count の短縮表記(名詞obuectが形容詞的活用
となって対応する同じ語順の英語表現がある気がするのですが
<limit.h> の INT_MAX、INT_MIN はmaxやminがなぜ後置?
何の短縮形?
minやmaxの後置と前置の使い分けとは一体……
915はちみつ餃子 ◆8X2XSCHEME
2024/08/14(水) 10:32:46.90ID:z6gmNdON >>914
C は一貫した名付規約 (naming convention) を定めていないし、主要な処理系が持っていたものを追認する形で仕様に入ることもよくあるので起源ごとに名前の方式は異なる。
慣例はおおよそ踏襲されるのでもし新しい整数型が追加されたらそれの最大・最小値は同じような名前で表されると思うけれど全体を通したルールはない。
C は一貫した名付規約 (naming convention) を定めていないし、主要な処理系が持っていたものを追認する形で仕様に入ることもよくあるので起源ごとに名前の方式は異なる。
慣例はおおよそ踏襲されるのでもし新しい整数型が追加されたらそれの最大・最小値は同じような名前で表されると思うけれど全体を通したルールはない。
916デフォルトの名無しさん
2024/08/14(水) 11:43:42.69ID:gAudIBvM MIN_LONG, MIN_SHORT, MIN_USHORT だとmin まで同じで探しにくい
INT_MAXだとINT_ まで打てばコード補完できるけど、逆の語順だとMAX_ まで打った際に各型の候補がズラーっと並ぶことになる
当時は高級なエディタは無いし、多分そんな意図で命名してないと思うけど 、便利と言えば便利
意味を考えるならそれは max of int でなく、intという空間におけるmaxという値 (言語によってはint.max と書くような値) と考えると良いと思う
INT_MAXだとINT_ まで打てばコード補完できるけど、逆の語順だとMAX_ まで打った際に各型の候補がズラーっと並ぶことになる
当時は高級なエディタは無いし、多分そんな意図で命名してないと思うけど 、便利と言えば便利
意味を考えるならそれは max of int でなく、intという空間におけるmaxという値 (言語によってはint.max と書くような値) と考えると良いと思う
917デフォルトの名無しさん
2024/08/14(水) 13:14:34.06ID:+mepCwPn C++ならstd::numeric_limits使おうよ
918デフォルトの名無しさん
2024/08/14(水) 13:42:54.01ID:UePmitOB919デフォルトの名無しさん
2024/08/14(水) 13:49:52.66ID:NvgdlQi4 些細なことにこだわんな
複数人で開発してる以上そういう揺れはどうしても起こり得る
受け入れて先行け
複数人で開発してる以上そういう揺れはどうしても起こり得る
受け入れて先行け
920デフォルトの名無しさん
2024/08/14(水) 14:35:57.51ID:uvjb8yy0 object count, count number of object
integer maximum, maximum of integer
…同じじゃね?
integer maximum, maximum of integer
…同じじゃね?
921はちみつ餃子 ◆8X2XSCHEME
2024/08/14(水) 15:32:03.62ID:z6gmNdON 全体を通した名前の指針としてはマクロは大文字でそれ以外は小文字 (スネークケース) ってくらいかなぁ。
関数形式のマクロは小文字なのもあったりと例外はいくらかあるけども。
関数形式のマクロは小文字なのもあったりと例外はいくらかあるけども。
922デフォルトの名無しさん
2024/08/14(水) 21:18:49.93ID:uPunKI9P 今ってクラス名とか割とキャメルケースじゃないですか? DocumentWindowみたいな
一方でC++自体は小文字とアンダースコアで
でも意外とちぐはぐな感じはない。むしろ予約語、システム的なものは小文字で
ユーザー定義のものと分離されていていい感じ?
一方でC++自体は小文字とアンダースコアで
でも意外とちぐはぐな感じはない。むしろ予約語、システム的なものは小文字で
ユーザー定義のものと分離されていていい感じ?
923はちみつ餃子 ◆8X2XSCHEME
2024/08/14(水) 22:08:58.60ID:z6gmNdON >>922
C++ の大元の設計者である Stroustrup は言語の技術的な詳細 (文法上の役割?) を名前に埋め込むことを嫌がってる。
https://www.stroustrup.com/bs_faq2.html#Hungarian
クラスだから、ユーザ定義だからという区別を名前に入れるべきじゃないという考え方を取ってるわけ。
その一方で言語としての縛りは入れないという方針も著書に書いてある。
思うところはありつつも個々の場面は言語ユーザの判断にゆだねるってことだね。
C++ は C++ だけで完結するわけじゃなくて色んなシステムと接続することもあるからその都合に合わさないといけないこともあるだろうし。
たとえば Windows だと多くの API がキャメルケースなわけで。
私自身にはクラス名をキャメルケースにするのはちぐはぐに見えている。
でも出自が違うライブラリを組み合わせるならそういうこともしょうがないとも思ってる。
C++ の大元の設計者である Stroustrup は言語の技術的な詳細 (文法上の役割?) を名前に埋め込むことを嫌がってる。
https://www.stroustrup.com/bs_faq2.html#Hungarian
クラスだから、ユーザ定義だからという区別を名前に入れるべきじゃないという考え方を取ってるわけ。
その一方で言語としての縛りは入れないという方針も著書に書いてある。
思うところはありつつも個々の場面は言語ユーザの判断にゆだねるってことだね。
C++ は C++ だけで完結するわけじゃなくて色んなシステムと接続することもあるからその都合に合わさないといけないこともあるだろうし。
たとえば Windows だと多くの API がキャメルケースなわけで。
私自身にはクラス名をキャメルケースにするのはちぐはぐに見えている。
でも出自が違うライブラリを組み合わせるならそういうこともしょうがないとも思ってる。
924デフォルトの名無しさん
2024/08/14(水) 22:31:40.03ID:gAudIBvM クラスや変数名に異なる命名を敵用するといった考え方が出てきたのがおそらC++登場の後だから仕方ないという感じ
C++は他の言語ほどには統一されたルールはない
自分は個人的に以下のルールを採用してる
おそらくPythonやRustあたりのルールに近い
・型の名前 (クラス、構造体、enum) は PascalCase
・変数と関数名は lower_snake_case
・定数とマクロは UPPER_SNAKE_CASE
・クラスのメンバー変数は value_ のように末尾にアンダースコアを付ける
・構造体のメンバーはアンダースコアなし (変数と同じ)
上記もあくまで個人的な意見に過ぎないので、プロジェクトの方針があるならそれに合わせるのが良いと思う
あと基本的な命名ルールも言語によって変わるので、その言語内に慣習やルールがあるならそれも見ておくと良いと思う
例えばC#はメソッドを PascalCase にするなど、上記とは異なる慣習がある
C++は他の言語ほどには統一されたルールはない
自分は個人的に以下のルールを採用してる
おそらくPythonやRustあたりのルールに近い
・型の名前 (クラス、構造体、enum) は PascalCase
・変数と関数名は lower_snake_case
・定数とマクロは UPPER_SNAKE_CASE
・クラスのメンバー変数は value_ のように末尾にアンダースコアを付ける
・構造体のメンバーはアンダースコアなし (変数と同じ)
上記もあくまで個人的な意見に過ぎないので、プロジェクトの方針があるならそれに合わせるのが良いと思う
あと基本的な命名ルールも言語によって変わるので、その言語内に慣習やルールがあるならそれも見ておくと良いと思う
例えばC#はメソッドを PascalCase にするなど、上記とは異なる慣習がある
925デフォルトの名無しさん
2024/08/14(水) 22:37:11.57ID:gAudIBvM 標準ライブラリは型が lower_snake なんだけどね
(std::string とか std::vectorとか)
自作型をこれに合わせるかは好みの域を出ない気がする
自分は型と関数で区別付けたいから PascalCaseにしてます (例. class MyData; enum MyEnum)
(std::string とか std::vectorとか)
自作型をこれに合わせるかは好みの域を出ない気がする
自分は型と関数で区別付けたいから PascalCaseにしてます (例. class MyData; enum MyEnum)
926デフォルトの名無しさん
2024/08/14(水) 22:37:12.21ID:gAudIBvM 標準ライブラリは型が lower_snake なんだけどね
(std::string とか std::vectorとか)
自作型をこれに合わせるかは好みの域を出ない気がする
自分は型と関数で区別付けたいから PascalCaseにしてます (例. class MyData; enum MyEnum)
(std::string とか std::vectorとか)
自作型をこれに合わせるかは好みの域を出ない気がする
自分は型と関数で区別付けたいから PascalCaseにしてます (例. class MyData; enum MyEnum)
927デフォルトの名無しさん
2024/08/18(日) 12:06:41.90ID:BK0va+Po iostreamとか糞やん
928デフォルトの名無しさん
2024/08/23(金) 00:25:52.73ID:Vi8prHau はちみつ先生の中の人ってエピステーメー氏じゃないですか。
929デフォルトの名無しさん
2024/08/23(金) 12:18:20.78ID:x07V73qD そなの? 何で?
930デフォルトの名無しさん
2024/08/23(金) 23:55:05.93ID:Vi8prHau エピ氏はかつて標準化委員だったそうです。はちみつ先生は、規格書が完全に頭に入ってる感じですから委員経験者と見ても違和感ない。
スレ民に委員がいるという話もあります。
あと前に「~じゃろ」ってレスを一度だけ見たのですが、それがエピ氏風に思えました。
スレ民に委員がいるという話もあります。
あと前に「~じゃろ」ってレスを一度だけ見たのですが、それがエピ氏風に思えました。
931デフォルトの名無しさん
2024/08/24(土) 00:19:56.05ID:czb9YTjo なるほどー
証拠としては足りないと思うけども矛盾はしない
はちみつ氏と対立する立場で議論したことがあるけども
エピ氏だとしたら感慨深い
STL標準講座で勉強した世代だし
証拠としては足りないと思うけども矛盾はしない
はちみつ氏と対立する立場で議論したことがあるけども
エピ氏だとしたら感慨深い
STL標準講座で勉強した世代だし
932デフォルトの名無しさん
2024/08/25(日) 00:23:17.55ID:zZ+WMAII >>928
私は個人的なことは書かないようにしているし書いている場合でも嘘を混ぜているのだけれどプロのプログラマではないのは本当だと断言する。
肯定も否定もしたくないんだけど変に誰かと混同されるとその人に迷惑がかかるかもしれないからはっきりさせておく。
私はプログラムなりプログラミングの解説なりで金を貰ったことは全くない素人で、名の知られた人物ではない。
アマチュアなりになんらかの分野で有名だったりもしない。
>>930
規格が頭に入ってるわけないでしょ。 毎回調べてる。
プログラムの設計の妥当性などについては議論を戦わせればよいと思うけど今ある規格がどうなってるかは規格を調べるしかない。
それなのに空想で議論するような馬鹿馬鹿しいことがちょくちょく起こってるから話を先に進めたくて規格を持ち出してるだけ。
私は個人的なことは書かないようにしているし書いている場合でも嘘を混ぜているのだけれどプロのプログラマではないのは本当だと断言する。
肯定も否定もしたくないんだけど変に誰かと混同されるとその人に迷惑がかかるかもしれないからはっきりさせておく。
私はプログラムなりプログラミングの解説なりで金を貰ったことは全くない素人で、名の知られた人物ではない。
アマチュアなりになんらかの分野で有名だったりもしない。
>>930
規格が頭に入ってるわけないでしょ。 毎回調べてる。
プログラムの設計の妥当性などについては議論を戦わせればよいと思うけど今ある規格がどうなってるかは規格を調べるしかない。
それなのに空想で議論するような馬鹿馬鹿しいことがちょくちょく起こってるから話を先に進めたくて規格を持ち出してるだけ。
933はちみつ餃子 ◆8X2XSCHEME
2024/08/25(日) 00:54:19.91ID:zZ+WMAII 名前が抜けてた。 >>932 は私ね。
JaneXeno で書き込めなくてウェブブラウザから書き込んだらミスった。
JaneXeno で書き込めなくてウェブブラウザから書き込んだらミスった。
934デフォルトの名無しさん
2024/08/25(日) 18:28:51.25ID:uK1NQ0Uz 質問です。参考書に乗ってた例試してたんですが下のコードがどういう動作してるのかよくわかりません。実行したらif(argc !=2)のところのコメント表示しかされませんでした。
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char *argv[])
{
if(argc !=2) {
cout <<"使い方: WRITE <ファイル名>\n";
return 1;
}
ofstream out(argv[1]);
if(!out) {
cout <<"出力ファイルが開けません\n";
return 1;
}
char str[80];
cout << "文字列をディスクに書き込み、$で停止します\n";
do {
cout << ": ";
cin >> str;
out << str << endl;
}while(*str !='$');
out.close();
return 0;
}
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char *argv[])
{
if(argc !=2) {
cout <<"使い方: WRITE <ファイル名>\n";
return 1;
}
ofstream out(argv[1]);
if(!out) {
cout <<"出力ファイルが開けません\n";
return 1;
}
char str[80];
cout << "文字列をディスクに書き込み、$で停止します\n";
do {
cout << ": ";
cin >> str;
out << str << endl;
}while(*str !='$');
out.close();
return 0;
}
935デフォルトの名無しさん
2024/08/25(日) 18:44:55.52ID:tzsbYjlF936デフォルトの名無しさん
2024/08/25(日) 23:27:35.25ID:uK1NQ0Uz >>935
返信ありがとうございます。
mainのところがコマンドライン実行用のものだとわかったのですがif(argc !=2)だけが実行されて
char str[80]の一行下のコメントまで行かないで実行終わってるのでそこがどうなってるのかよくわかってません。
返信ありがとうございます。
mainのところがコマンドライン実行用のものだとわかったのですがif(argc !=2)だけが実行されて
char str[80]の一行下のコメントまで行かないで実行終わってるのでそこがどうなってるのかよくわかってません。
937934
2024/08/26(月) 00:51:12.62ID:Lf2Vflpz 参考書に載ってるからまさかと思ったんですが>>934のコードってif文のreturnで強制終了させられてるってことですよね?
ちょっと気になってif文のところコメントアウトして動かしてみたらdo while文のところまで動いてたからif(argc !=2)の説明文表示しておいてがreturn 1で返してmainのところが終了させてるのかというのであってますか?
しかも出力ファイル検出用のif文のところも絶対に入る形になっちゃってるみたいなので説明文はdo while文の入力で出力ファイル指定してね。みたいな文章ついているんですが例として出てるのに欠陥あるコードという認識でよろしいのでしょうか?
ちょっと気になってif文のところコメントアウトして動かしてみたらdo while文のところまで動いてたからif(argc !=2)の説明文表示しておいてがreturn 1で返してmainのところが終了させてるのかというのであってますか?
しかも出力ファイル検出用のif文のところも絶対に入る形になっちゃってるみたいなので説明文はdo while文の入力で出力ファイル指定してね。みたいな文章ついているんですが例として出てるのに欠陥あるコードという認識でよろしいのでしょうか?
938934
2024/08/26(月) 01:02:13.28ID:Lf2Vflpz 自己解決しました。
今回の例って実行時に一緒に書き込みファイル名入力するだけだったのを気付いてなかっただけでした。
今回の例って実行時に一緒に書き込みファイル名入力するだけだったのを気付いてなかっただけでした。
939デフォルトの名無しさん
2024/08/26(月) 09:03:23.80ID:Nzy9klFi せっかく>>935がキーワードで検索してるのに「自己解決」かよ
940デフォルトの名無しさん
2024/08/26(月) 09:15:40.09ID:y+gYSKWx 超初心者スレでそんな回りくどい指摘で理解しろというほうが厳しいのでは
941デフォルトの名無しさん
2024/08/26(月) 09:42:05.98ID:B88aYAlq >>934
「よくわかりません」というのは質問になっていません。
何がわからないのかが伝わるようにまとめてください。
結果からすると argc や argv がコマンドラインから渡されるものだということがわかっていなかったようですが、質問一般のやり方としては「こうなると理解している」「でも実際にはこうなった」という形にすると伝わりやすいと思います。
質問を整理する過程で答えが分かってしまうのもよくあることです。 (ラバーダック・デバッグ)
それと参考書を元にしている場合は参考書のタイトルを書くのが望ましいです。
もしその本を持っている人がいたら前後の文脈からより適切な回答をできますし、同じ疑問をもった人がウェブ検索でここにたどり着くことが出来るかもしれないからです。
と、超初心者スレらしく質問の仕方の基本を書いておきます。
「よくわかりません」というのは質問になっていません。
何がわからないのかが伝わるようにまとめてください。
結果からすると argc や argv がコマンドラインから渡されるものだということがわかっていなかったようですが、質問一般のやり方としては「こうなると理解している」「でも実際にはこうなった」という形にすると伝わりやすいと思います。
質問を整理する過程で答えが分かってしまうのもよくあることです。 (ラバーダック・デバッグ)
それと参考書を元にしている場合は参考書のタイトルを書くのが望ましいです。
もしその本を持っている人がいたら前後の文脈からより適切な回答をできますし、同じ疑問をもった人がウェブ検索でここにたどり着くことが出来るかもしれないからです。
と、超初心者スレらしく質問の仕方の基本を書いておきます。
942デフォルトの名無しさん
2024/08/26(月) 10:49:37.17ID:3+7ACU+U !=2 よりも < 2 派は少数派?
943デフォルトの名無しさん
2024/08/26(月) 15:31:48.06ID:cZUTj8Xv !=2のほうが安全よね
引数が2つ以上渡された場合、ユーザーが引数の意味を勘違いしている可能性があるので第1引数をファイル名として扱うのは危険かもしれない
引数が2つ以上渡された場合、ユーザーが引数の意味を勘違いしている可能性があるので第1引数をファイル名として扱うのは危険かもしれない
944デフォルトの名無しさん
2024/08/26(月) 18:34:12.28ID:vEMD05Dv まんこまんこー まんこまんこー まんこまんこー 君にまんこまんこー
945デフォルトの名無しさん
2024/08/26(月) 18:43:51.64ID:FhzwHLyM 萬恋次郎
よろずれんじろう
よろずれんじろう
946デフォルトの名無しさん
2024/08/28(水) 10:09:54.84ID:W2AehnGr 一つや無しでも許容するかしないかの違い
947デフォルトの名無しさん
2024/10/29(火) 09:32:10.21ID:Pp2f7Vup すみません、std::atomic<bool> m_added = false; というインスタンス変数がある
クラスで bool isAdded() { return m_added; } というメンバ関数を作ると
error: use of deleted function 'std::atomic<bool>::atomic(const std::atomic<bool>&)'
というエラーになってしまいます。なぜこんなことに?
ググると return m_added.load(); とすればよさげで、実際エラーにはならなくなりますが
これで合っていますでしょうか?
クラスで bool isAdded() { return m_added; } というメンバ関数を作ると
error: use of deleted function 'std::atomic<bool>::atomic(const std::atomic<bool>&)'
というエラーになってしまいます。なぜこんなことに?
ググると return m_added.load(); とすればよさげで、実際エラーにはならなくなりますが
これで合っていますでしょうか?
948デフォルトの名無しさん
2024/10/29(火) 10:21:38.62ID:G3xxa4mJ949はちみつ餃子 ◆8X2XSCHEME
2024/10/29(火) 11:42:59.70ID:IsdOq2r9 >>947
インスタンス変数って何? 文脈から推測するとデータメンバのことかな?
だとするとこんな感じのことだと思って説明するよ。
class foo {
std::atomic<bool> m_added = false;
public:
bool isAdded() { return m_added; }
};
こういう書き方だと std::atomic<bool> m_added = false; はコピー初期化という扱いになる。
なのでコピーコンストラクタが必要だが std::atomic にはコピーコンストラクタが無いのでコピーコンストラクタがないという旨がエラーメッセージとして表示される。
解決方法としてはメンバ初期化子リストで初期化すればいい。 これなら直接初期化の扱いになる。
class foo {
std::atomic<bool> m_added;
public:
foo(void) : m_added(false) {}
bool isAdded() { return m_added.load(); }
};
C++17 以降だとコピー省略が保証される (かつコピーコンストラクタの存在を要求しない) 場面なので C++17 以降を使うのなら修正は必要ない。
std::atomic<T> には operator T() があるので std::atomic<bool> から bool へは変換できて、そのときの効果は std::atomic<bool>::load を呼び出すのと同じ。
暗黙に変換するのでこの部分は本来なら問題ないはず。
ここを修正してエラーが出なくなったというのは何か誤解してると思う。
インスタンス変数って何? 文脈から推測するとデータメンバのことかな?
だとするとこんな感じのことだと思って説明するよ。
class foo {
std::atomic<bool> m_added = false;
public:
bool isAdded() { return m_added; }
};
こういう書き方だと std::atomic<bool> m_added = false; はコピー初期化という扱いになる。
なのでコピーコンストラクタが必要だが std::atomic にはコピーコンストラクタが無いのでコピーコンストラクタがないという旨がエラーメッセージとして表示される。
解決方法としてはメンバ初期化子リストで初期化すればいい。 これなら直接初期化の扱いになる。
class foo {
std::atomic<bool> m_added;
public:
foo(void) : m_added(false) {}
bool isAdded() { return m_added.load(); }
};
C++17 以降だとコピー省略が保証される (かつコピーコンストラクタの存在を要求しない) 場面なので C++17 以降を使うのなら修正は必要ない。
std::atomic<T> には operator T() があるので std::atomic<bool> から bool へは変換できて、そのときの効果は std::atomic<bool>::load を呼び出すのと同じ。
暗黙に変換するのでこの部分は本来なら問題ないはず。
ここを修正してエラーが出なくなったというのは何か誤解してると思う。
950949
2024/10/29(火) 21:08:49.76ID:DeRlzLOn すみません、色々勘違いやら説明不足やらあるようです。あと用語もいろいろと。
まず std::atomic<bool> m_added = false; という初期化ですが、
自分の環境はC++17(のはず)なので、これは大丈夫だったようです
まず std::atomic<bool> m_added = false; という初期化ですが、
自分の環境はC++17(のはず)なので、これは大丈夫だったようです
951949
2024/10/29(火) 21:14:42.30ID:DeRlzLOn で、本当の問題は、condition_variable::wait_for()の述語バージョンのコードでして
諸般の事情でネットから拾ってきたコードを一部変更して書きますと(たぶんインデントが
壊れますが、ご了承ください)
#include <iostream>
#include <thread>
#include <mutex>
#include <condition_variable>
#include <chrono>
#include <atomic>
std::mutex mtx;
std::condition_variable cv;
std::atomic<bool> ready = false;
void wait_for_event() {
std::unique_lock<std::mutex> lock(mtx);
cv.wait_for(lock, std::chrono::seconds(3), []{ return ready; });
std::cout << "Event occurred or timeout reached" << std::endl;
}
int main(void) {
std::thread worker(wait_for_event);
worker.join();
return 0;
}
諸般の事情でネットから拾ってきたコードを一部変更して書きますと(たぶんインデントが
壊れますが、ご了承ください)
#include <iostream>
#include <thread>
#include <mutex>
#include <condition_variable>
#include <chrono>
#include <atomic>
std::mutex mtx;
std::condition_variable cv;
std::atomic<bool> ready = false;
void wait_for_event() {
std::unique_lock<std::mutex> lock(mtx);
cv.wait_for(lock, std::chrono::seconds(3), []{ return ready; });
std::cout << "Event occurred or timeout reached" << std::endl;
}
int main(void) {
std::thread worker(wait_for_event);
worker.join();
return 0;
}
952デフォルトの名無しさん
2024/10/29(火) 21:15:37.83ID:oxmgzCly volatileが廃止されてatomicになったんだっけ?
953949
2024/10/29(火) 21:19:59.00ID:DeRlzLOn この、述語部分のラムダ式で return ready; とするとコピーが発生するのでatomic的に
まずい(それをコピーコンストラクタをdeleteすることで実現している)、という理解です
で、ではどうしたらいいかという話に
まずい(それをコピーコンストラクタをdeleteすることで実現している)、という理解です
で、ではどうしたらいいかという話に
954デフォルトの名無しさん
2024/10/29(火) 21:25:03.73ID:DeRlzLOn955デフォルトの名無しさん
2024/10/29(火) 21:37:22.02ID:vJbaxs/e 述語の戻り値型にboolを明示的に指定すればおk
956はちみつ餃子 ◆8X2XSCHEME
2024/10/30(水) 07:03:45.19ID:o3z0lAnP >>951
ラムダ式の返却値の型は省略すると return に与えた式から推論され、推論結果は参照にはならない。
つまり []{ return ready; } は []->std::atomic<bool>{ return ready; } と書いたのと同じということ。
これだと値を返すときにコピーが発生するのでコピーコンストラクタが必要 (だけど実際には無い) ということになってしまう。
解決方法としては load を呼ぶというのは妥当な方法のひとつだけど、
返却値として bool を明示する、つまり []->bool { return ready; } とするのでもよいし、
キャストを書いて [] { return static_cast<bool>(ready); } というようにするのでも良い。
見栄えからすると [] { return bool(ready); } のほうが綺麗かな?
ラムダ式の返却値の型は省略すると return に与えた式から推論され、推論結果は参照にはならない。
つまり []{ return ready; } は []->std::atomic<bool>{ return ready; } と書いたのと同じということ。
これだと値を返すときにコピーが発生するのでコピーコンストラクタが必要 (だけど実際には無い) ということになってしまう。
解決方法としては load を呼ぶというのは妥当な方法のひとつだけど、
返却値として bool を明示する、つまり []->bool { return ready; } とするのでもよいし、
キャストを書いて [] { return static_cast<bool>(ready); } というようにするのでも良い。
見栄えからすると [] { return bool(ready); } のほうが綺麗かな?
957はちみつ餃子 ◆8X2XSCHEME
2024/10/30(水) 15:17:53.47ID:o3z0lAnP 色々と書いたけど、この場合について言えば変換に頼るよりは load を呼んだほうが意図が読み取りやすくて良いと思う。
958デフォルトの名無しさん
2024/10/30(水) 16:06:31.71ID:kddcnuFp つーかこのコードだとreadyはatomicにする必要がない
959デフォルトの名無しさん
2024/11/03(日) 07:07:35.61ID:LyKtE2MZ960デフォルトの名無しさん
2024/11/23(土) 23:49:52.60ID:thI1occS std::anyを使っていて、type()の返す形によって処理を変えたいのですが、
今はこれを typeid(形) と比較するif-else文の繰り返しを書いています
ググったら、hash_code()を使えばswitch文で書けるというのがあったのですが... 書けます?
エラーでコンパイルできないんですが
error: call to non-'constexpr' function 'std::size_t std::type_info::hash_code() const'
今はこれを typeid(形) と比較するif-else文の繰り返しを書いています
ググったら、hash_code()を使えばswitch文で書けるというのがあったのですが... 書けます?
エラーでコンパイルできないんですが
error: call to non-'constexpr' function 'std::size_t std::type_info::hash_code() const'
961はちみつ餃子 ◆8X2XSCHEME
2024/11/24(日) 12:09:51.87ID:3DfWckE7962はちみつ餃子 ◆8X2XSCHEME
2024/11/24(日) 12:55:51.06ID:3DfWckE7 >>960
switch の case ラベルに hash_code を使うという意味なら不可能。
case ラベルは定数 (定数式) であることを要求していて std::type_info::hash_code は constexpr が付いていないので結果は定数にならない。
コンパイル時計算するなんらかのハッシュ関数を用意すれば一応はなんとかならんでもないが……。
余興の類であって普通のテクニックとは言い難い。
そもそも std::any が不格好な仕組みなので std::any を使う以上は不格好になることを受け入れないと仕方がないと思う。
switch の case ラベルに hash_code を使うという意味なら不可能。
case ラベルは定数 (定数式) であることを要求していて std::type_info::hash_code は constexpr が付いていないので結果は定数にならない。
コンパイル時計算するなんらかのハッシュ関数を用意すれば一応はなんとかならんでもないが……。
余興の類であって普通のテクニックとは言い難い。
そもそも std::any が不格好な仕組みなので std::any を使う以上は不格好になることを受け入れないと仕方がないと思う。
9631
2024/12/14(土) 02:53:40.88ID:Bddn5MUb なに?プログラムって。むつかしそうだなー
ぜんぜん知らないんだけど、ちょっとやってみたいなー
ってな人も、入れてあげてね。
そういうスレなんだから。
ぜんぜん知らないんだけど、ちょっとやってみたいなー
ってな人も、入れてあげてね。
そういうスレなんだから。
964デフォルトの名無しさん
2024/12/14(土) 14:30:51.75ID:TQJHLK8K そうしたければお前がやるんだよ
他人に期待すんな
こっちは気が向いたら好きに回答するだけ
あと過度な自治厨は嫌われるからな
他人に期待すんな
こっちは気が向いたら好きに回答するだけ
あと過度な自治厨は嫌われるからな
965デフォルトの名無しさん
2024/12/16(月) 20:29:27.83ID:lHJTCZF8 人がいないからって、
お題を完全に無視して自分勝手
寄ってこようかとする何も知らない人は、
怖くて寄り付けないよ
お題を完全に無視して自分勝手
寄ってこようかとする何も知らない人は、
怖くて寄り付けないよ
966デフォルトの名無しさん
2024/12/26(木) 15:20:00.18ID:Max/6hcg 独習でc++の勉強しているのですがそろそろ終わり見えて来たんで終わる前に次の参考書ほしいのですがどんなのがいいのでしょうか?
現在の作りたいソフトがチューナーボードを利用したチャンネルスキャンや復調前の搬送波の保存をwinやLinuxで使える規格で作ってみたいと思っています。最終的にはそこから番組表とか自動構築できるところまでやってタイムシフトできるようにしてみたいと思ってます。
現在の作りたいソフトがチューナーボードを利用したチャンネルスキャンや復調前の搬送波の保存をwinやLinuxで使える規格で作ってみたいと思っています。最終的にはそこから番組表とか自動構築できるところまでやってタイムシフトできるようにしてみたいと思ってます。
967デフォルトの名無しさん
2024/12/26(木) 15:41:38.20ID:NWZL3CyL 基本わかったら作り始めたらいい
チューナーボードのsdkのマニュアル読め
最初は出来損ないでいいから完成させろ
チューナーボードのsdkのマニュアル読め
最初は出来損ないでいいから完成させろ
968デフォルトの名無しさん
2024/12/26(木) 22:37:43.96ID:Bko97FmB lower_bound x以上で最小
upper_bound xより上で最小
upper_bound - 1 x以下で最大
は記述がありましたが
lower_bound - 1をググってるのですが出てきません
多分x未満で最大だと思うのですがあってますか?
upper_bound xより上で最小
upper_bound - 1 x以下で最大
は記述がありましたが
lower_bound - 1をググってるのですが出てきません
多分x未満で最大だと思うのですがあってますか?
969デフォルトの名無しさん
2024/12/26(木) 23:19:55.33ID:/ipDVGme +
970デフォルトの名無しさん
2024/12/26(木) 23:49:39.69ID:ijj1Fuin >>968
サンプルコード書いて確かめなよ
サンプルコード書いて確かめなよ
971デフォルトの名無しさん
2024/12/27(金) 09:37:21.60ID:O2xssw1P >>967
sdkのマニュアルとかないボードみたいなんでテレビ視聴用のテストソフトコード見ながら自分が欲しいもの書いてみます。
ところでvisual studio使ったことないのでわからないのですがこのソフトの書き方、読み方しっかり学べる本ってないでしょうか?今までテキストエディタで書いてg++でやってたからビルドとテストがあるぐらいしかわかりません。
sdkのマニュアルとかないボードみたいなんでテレビ視聴用のテストソフトコード見ながら自分が欲しいもの書いてみます。
ところでvisual studio使ったことないのでわからないのですがこのソフトの書き方、読み方しっかり学べる本ってないでしょうか?今までテキストエディタで書いてg++でやってたからビルドとテストがあるぐらいしかわかりません。
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- 中国外務省局長 「ポケットに手を入れていたのは寒いから」 日本との局長級会談で [お断り★]
- 【速報】中国外務省報道官 高市首相発言撤回なければ「断固たる対抗措置」 ★3 [蚤の市★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★7 [ぐれ★]
- 中国、日本行き“50万人”キャンセル 渡航自粛でコロナ禍以来最大 ★3 [お断り★]
- 【国際】ロシアはすでに戦争準備段階――ポーランド軍トップが警告 [ぐれ★]
- 【速報】日本産牛肉の対中国輸出再開協議が中止 ★2 [おっさん友の会★]
- 【実況】博衣こよりのえちえちフログロ学力テスト🧪★3
- 【高市有事】高市早苗が就任一ヶ月でやったこと一覧wwwwwwwwwwwwwww [603416639]
- 【高市早苗】習近平、本気で激おこ [115996789]
- 高市早苗「中国が戦艦を使ったら存立危機事態」佐藤優氏「戦艦なんて時代遅れの艦船を持ってる訳ねーだろ」 [931948549]
- 【ぺこ専🐰】なんG 兎田ぺこら実況スレ🏡【ホロライブ▶】
- 【岸田速報】山上妹、覚醒。「自慢の兄」「安倍晋三と統一教会は強固な関係性」「法の下では解決不能」 [559744496]
