次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part137 (正しくはpart138)
http://mevius.5ch.net/test/read.cgi/tech/1535353320/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.103【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1530384293/
■長いソースを貼るときはここへ。■
http://codepad.org/
https://ideone.com/
[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
----- テンプレ ここまで -----
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
探検
C++相談室 part139
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ f65b-zn+7)
2018/10/06(土) 00:59:48.54ID:CdYUXXMG0680デフォルトの名無しさん (アークセー Sxa3-JU2d)
2018/12/18(火) 15:31:06.75ID:aA/jUlRpx >>679
ここはダーマの神殿ではない、と言いたいとこだけど、年齢によるね。
未経験でも30歳前後なら余裕、35歳超えなら諦めろ。
というか組み込み系でC++を使っている分野ってあるにはあるけどそんなに多くはないよ。
組み込みLinuxでのアプリ開発ぐらいなんじゃない?
老害から言わせてもらうとアレは組み込みソフトじゃないけど。
ここはダーマの神殿ではない、と言いたいとこだけど、年齢によるね。
未経験でも30歳前後なら余裕、35歳超えなら諦めろ。
というか組み込み系でC++を使っている分野ってあるにはあるけどそんなに多くはないよ。
組み込みLinuxでのアプリ開発ぐらいなんじゃない?
老害から言わせてもらうとアレは組み込みソフトじゃないけど。
681デフォルトの名無しさん (ラクッペ MMb3-74rI)
2018/12/18(火) 17:11:33.44ID:RxVtOB6VM >>680
25です
Linuxでのアプリ開発分野ならあるんですね‥
別に組み込みじゃなくてもいいんですけど、探したら組み込みがほとんどって感じです
本気で探しているのですが、難しいです‥
頑張って探してみます
25です
Linuxでのアプリ開発分野ならあるんですね‥
別に組み込みじゃなくてもいいんですけど、探したら組み込みがほとんどって感じです
本気で探しているのですが、難しいです‥
頑張って探してみます
682デフォルトの名無しさん (バットンキン MM33-JU2d)
2018/12/18(火) 17:30:13.67ID:zLgJOfCSM 25歳なら第二新卒扱いで組み込み未経験でも全然OKよ。
募集要項に経験者って書かれてても怖がらずどんどん応募してみては?
相変わらずこの業界は人手(奴隷)不足なのでそう苦労せず転職できると思う。
売り手市場の今は転職先の会社を見極めて選り好みすることができるので、下手に妥協せず納得行くまで転職活動頑張って!
募集要項に経験者って書かれてても怖がらずどんどん応募してみては?
相変わらずこの業界は人手(奴隷)不足なのでそう苦労せず転職できると思う。
売り手市場の今は転職先の会社を見極めて選り好みすることができるので、下手に妥協せず納得行くまで転職活動頑張って!
683デフォルトの名無しさん (ラクッペ MMb3-74rI)
2018/12/18(火) 17:36:02.29ID:RxVtOB6VM684デフォルトの名無しさん (ワッチョイ fa7e-UKyl)
2018/12/18(火) 17:41:07.57ID:tlRM8wuS0 普通にC++でWindowsようのデスクトップアプリ作ってるけどなあ
それように人員を募集してるかっていうとしてないけど
それように人員を募集してるかっていうとしてないけど
685デフォルトの名無しさん (ラクッペ MMb3-74rI)
2018/12/18(火) 18:14:29.56ID:RxVtOB6VM686デフォルトの名無しさん (ドコグロ MMc2-skpA)
2018/12/18(火) 19:02:13.39ID:/UA4EEmuM >>680
組込でガッツリは使ってないけどBetter CとしてC++使ってる所はそれなりにあるよ
組込でガッツリは使ってないけどBetter CとしてC++使ってる所はそれなりにあるよ
687デフォルトの名無しさん (ワッチョイ d3b3-c/Yr)
2018/12/18(火) 21:39:11.18ID:w60GoDWR0 ちっこく作って別プロセス立てするってやり方はあるけど
それ以外だと大規模なゲーム開発くらいしかあんまり聞かないな。
それ以外だと大規模なゲーム開発くらいしかあんまり聞かないな。
688デフォルトの名無しさん (ブーイモ MM47-eJUM)
2018/12/18(火) 22:06:41.05ID:F4O/hB15M なんでc++の仕事したいんだ?
言語縛りにする意味がわからんな
言語縛りにする意味がわからんな
689デフォルトの名無しさん (ワッチョイ 6acb-UKyl)
2018/12/18(火) 22:15:12.74ID:xgHv4hiI0 自分が使える言語で探すのはそんなにおかしいか?
690デフォルトの名無しさん (ワッチョイ fa7e-UKyl)
2018/12/18(火) 22:16:48.41ID:tlRM8wuS0 C++じゃないとやる気起きないし
691デフォルトの名無しさん (ワッチョイ d3b3-c/Yr)
2018/12/18(火) 22:38:17.18ID:w60GoDWR0 それは異常だろ
692デフォルトの名無しさん (ワッチョイ 4ab3-UKyl)
2018/12/18(火) 23:31:30.78ID:6RhNbAj70 C++の最新仕様に詳しくてもあんまり仕事で使えないからな
メタプログラミング駆使して行数少なく書いてもぶっちゃけ大した価値ない
逆にやりすぎて嫌われるのがオチ
CPU、キャッシュ、バスアーキ、OS、ABI、Toolchain、各種デバッグ手法などを知ってる方が重要
メタプログラミング駆使して行数少なく書いてもぶっちゃけ大した価値ない
逆にやりすぎて嫌われるのがオチ
CPU、キャッシュ、バスアーキ、OS、ABI、Toolchain、各種デバッグ手法などを知ってる方が重要
693デフォルトの名無しさん (ワッチョイ c6cd-sY6B)
2018/12/19(水) 00:09:24.93ID:GdGFtcE30 言語仕様詳しい癖にmake書けない奴とかいるからな
694デフォルトの名無しさん (ワッチョイ 1eeb-3flP)
2018/12/19(水) 00:10:12.36ID:UC31GMnJ0 VisualStudioばっか使ってるからmakeかけないわ・・・
695デフォルトの名無しさん (ワッチョイ 1e80-2dqZ)
2018/12/19(水) 00:13:50.49ID:jOXn0Ht90 makeは依存ファイルと生成ルールをひたすら書くだけだからな
あんなしょうもないのを書けないほうがおかしい
あんなしょうもないのを書けないほうがおかしい
696デフォルトの名無しさん (ワッチョイ 0a12-rp3U)
2018/12/19(水) 00:14:21.79ID:m3ixYsdj0 自作のmake.pyなら
697デフォルトの名無しさん (ワッチョイ 0fc3-mUi7)
2018/12/19(水) 00:33:44.41ID:ct7Lx3nM0 makeは暗黙ルールとか特殊変数とか予約ターゲットとかアーカイブの特別扱いとか
罠や地雷や落とし穴が満載で人間が書くもんじゃない
罠や地雷や落とし穴が満載で人間が書くもんじゃない
698デフォルトの名無しさん (ワッチョイ 83c3-UKyl)
2018/12/19(水) 00:38:35.31ID:PtV3oISf0 昔はmake書けないやつ馬鹿にしてたが、ひざに矢を受けてしまってな……
今いるのやや学術よりのとこなんだけど、回りがPythonばかりになってきて690の気持ちが分かってしまう
今いるのやや学術よりのとこなんだけど、回りがPythonばかりになってきて690の気持ちが分かってしまう
699デフォルトの名無しさん (オイコラミネオ MM8b-H2zD)
2018/12/19(水) 01:21:09.11ID:3jKO9qdxM linuxのmakefileをwindowsで使おうとしてハマってぶん投げたのはナイショ
700デフォルトの名無しさん (オイコラミネオ MM42-c2YN)
2018/12/19(水) 01:42:35.97ID:+UCKDvEZM makeは泥沼、mkmfやら数多のツールすら呑み込む底無し沼・・
701さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdaa-DjeH)
2018/12/19(水) 02:18:50.35ID:BcJ2DwBBd makeからCMakeへ時代は動いている。
702デフォルトの名無しさん (ワッチョイ fa7e-UKyl)
2018/12/19(水) 02:41:43.59ID:4vZcLUvu0 makeを書くだけなら簡単だがクロスプラットフォームで更にいくつもオプションが増えてくると人力で書くこと自体が間違いでしかなくなる
703デフォルトの名無しさん (ワッチョイ 1eea-Y0Zn)
2018/12/19(水) 05:34:26.63ID:yisopo3/0 環境導入楽なGUIアプリケーション作成用ライブラリないかなぁ
QtはQtCreatorが使いづらくて
QtはQtCreatorが使いづらくて
704デフォルトの名無しさん (ワッチョイ ebb3-k7+j)
2018/12/19(水) 08:20:09.90ID:fZnQLneQ0 標準ライブラリにGUIが入らないのは何故なんだぜ?
制御系とかそもそもGUIが無い環境に実装出来ないから?
制御系とかそもそもGUIが無い環境に実装出来ないから?
705デフォルトの名無しさん (ワッチョイ fa7e-UKyl)
2018/12/19(水) 08:34:28.71ID:4vZcLUvu0 通信ライブラリですらいつ策定されるか分からない状態なのにGUIとかC++29くらいになりそう
それに最近はGUIはweb方面のエコシステムを流用するのが流行だしはっきり言って厳しい
それに最近はGUIはweb方面のエコシステムを流用するのが流行だしはっきり言って厳しい
706はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 466f-UKyl)
2018/12/19(水) 10:09:57.72ID:i1OD7WIV0 GUI ライブラリの提案だけは出てるけどね。
cairo を取り入れようとか、
ウェブアプリケーション風の DOM ベースのやつ (?) とか。
動作モデルが色々とあるので、
どれかに統一するのはしんどいと思う。
ベースの動作モデルを意識させないほど厚いライブラリを
標準に入れるのもちょっとどうかと思うし。
cairo を取り入れようとか、
ウェブアプリケーション風の DOM ベースのやつ (?) とか。
動作モデルが色々とあるので、
どれかに統一するのはしんどいと思う。
ベースの動作モデルを意識させないほど厚いライブラリを
標準に入れるのもちょっとどうかと思うし。
707デフォルトの名無しさん (ワッチョイ 6acb-UKyl)
2018/12/19(水) 10:20:42.79ID:G6mG3us50708デフォルトの名無しさん (ブーイモ MM47-eJUM)
2018/12/19(水) 11:42:47.34ID:auFS4SnhM 標準ライブラリは最小限でいい派
標準のスレッドすら不要
大抵結局native handle使うはめになるし
デバッガと連携しないし
一方でatomicは使えるな
標準のスレッドすら不要
大抵結局native handle使うはめになるし
デバッガと連携しないし
一方でatomicは使えるな
709デフォルトの名無しさん (ワッチョイ 8beb-TixW)
2018/12/19(水) 12:28:04.06ID:o9SPlDa00 お酒はぬるめの燗がいい
肴はあぶったイカでいい
肴はあぶったイカでいい
710デフォルトの名無しさん (ワッチョイ eb8a-S6R4)
2018/12/19(水) 13:04:47.28ID:RjqFkMVC0 質問です。
ノートPCのキーが勝手に連打されるような状態になったので、
「キー入力の連打を感知したら、連打された入力をキャンセルする」というソフトが欲しいのですが、
どこかにあるでしょうか?
無ければ、自作も考えますが、キー入力をキャンセルさせる方法がよくわかりません。
ノートPCのキーが勝手に連打されるような状態になったので、
「キー入力の連打を感知したら、連打された入力をキャンセルする」というソフトが欲しいのですが、
どこかにあるでしょうか?
無ければ、自作も考えますが、キー入力をキャンセルさせる方法がよくわかりません。
711デフォルトの名無しさん (ワッチョイ fa7e-UKyl)
2018/12/19(水) 13:13:01.18ID:4vZcLUvu0 キー入力のイベントをフックしてごにょればできるんじゃないの
712はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 466f-UKyl)
2018/12/19(水) 13:24:01.60ID:i1OD7WIV0 >>710
いわゆるチャタリングってことかな。
ざっとググってみた感じだと ccchattttter や Keyboard Chattering Fix というソフトがあるみたいだね。
ソフトウェアとしては、他のプロセスが受け取るイベントを横取りすることになるから、
アプリケーションレベルでやるならフックを仕掛ける (DLL Injection など) か、
あるいはデバイスドライバのレベルでどうにかするという方法も考えられる。
いわゆるチャタリングってことかな。
ざっとググってみた感じだと ccchattttter や Keyboard Chattering Fix というソフトがあるみたいだね。
ソフトウェアとしては、他のプロセスが受け取るイベントを横取りすることになるから、
アプリケーションレベルでやるならフックを仕掛ける (DLL Injection など) か、
あるいはデバイスドライバのレベルでどうにかするという方法も考えられる。
713デフォルトの名無しさん (ワッチョイ eb8a-S6R4)
2018/12/19(水) 14:20:16.58ID:RjqFkMVC0 ありがとうございます。
> ccchattttter や Keyboard Chattering Fix
さっそく、試してみました。
これらは、同じキーが連打された場合のみのキャンセルでしょうか?
違うキーが連続で誤入力されたりするので、その場合は対応できないかも?
フックするというのは、どうやるのかわかりませんが、ちょっと調べてみます。
> ccchattttter や Keyboard Chattering Fix
さっそく、試してみました。
これらは、同じキーが連打された場合のみのキャンセルでしょうか?
違うキーが連続で誤入力されたりするので、その場合は対応できないかも?
フックするというのは、どうやるのかわかりませんが、ちょっと調べてみます。
714デフォルトの名無しさん (ワッチョイ 9fe3-S6R4)
2018/12/19(水) 14:42:07.56ID:Yvire5cb0 https://qiita.com/leon-joel/items/81415c1ef355c6246280
constexpr unsigned N = 10;
std::array<int, N> arr = {{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }};
2行目の 二重の中括弧は何を意味してる?
どう解釈するの?
constexpr unsigned N = 10;
std::array<int, N> arr = {{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }};
2行目の 二重の中括弧は何を意味してる?
どう解釈するの?
715デフォルトの名無しさん (アウアウウー Sa4f-lCXb)
2018/12/19(水) 15:04:48.65ID:wepwiZF/a その制限c++14で撤廃してなかったけ(うろ覚え)
716デフォルトの名無しさん (ワッチョイ 6acb-UKyl)
2018/12/19(水) 15:27:41.05ID:G6mG3us50 >>710
それキーボードに異物が入ってないか?
かつて俺が面倒見てた客先ではホチキスの針が原因の障害が複数回あったぞ
異物が入っていない正常な状態で起きるチャタリングは
設計の段階でしっかり対策されているはずなので
それまで問題なかったキーボードが突然そういう状態になったのなら
何らかの事故を疑ったほうがいい
それキーボードに異物が入ってないか?
かつて俺が面倒見てた客先ではホチキスの針が原因の障害が複数回あったぞ
異物が入っていない正常な状態で起きるチャタリングは
設計の段階でしっかり対策されているはずなので
それまで問題なかったキーボードが突然そういう状態になったのなら
何らかの事故を疑ったほうがいい
717デフォルトの名無しさん (ワッチョイ 9fe3-S6R4)
2018/12/19(水) 15:30:09.30ID:Yvire5cb0 https://www.codesdope.com/cpp-stdarray/
以下の二種類あるらしいけど、何で2.の方は二重括弧になってるの?
外側の括弧の意味、内側の括弧の意味がそれぞれ知りたい。
1. std::array<int, 5> n = {1, 2, 3, 4, 5};
2. std::array<int, 5> n { {1, 2, 3, 4, 5} };
以下の二種類あるらしいけど、何で2.の方は二重括弧になってるの?
外側の括弧の意味、内側の括弧の意味がそれぞれ知りたい。
1. std::array<int, 5> n = {1, 2, 3, 4, 5};
2. std::array<int, 5> n { {1, 2, 3, 4, 5} };
718さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdaa-DjeH)
2018/12/19(水) 15:36:10.74ID:7xp8Igl8d std::arrayのメンバーの初期化リストになってる可能性。
719デフォルトの名無しさん (ワッチョイ 6acb-UKyl)
2018/12/19(水) 15:56:47.23ID:G6mG3us50 外側の括弧はコンストラクタへの実引数ならびを囲む
内側の括弧はコンストラクタの仮引数がinitializer_listであることに対応
= は、一時オブジェクトを作ってコピコンかムブコンという意味だったが
C++17でこの意味が廃止され単なる過去の名残となった
内側の括弧はコンストラクタの仮引数がinitializer_listであることに対応
= は、一時オブジェクトを作ってコピコンかムブコンという意味だったが
C++17でこの意味が廃止され単なる過去の名残となった
720デフォルトの名無しさん (ワッチョイ 9fe3-S6R4)
2018/12/19(水) 16:12:08.78ID:Yvire5cb0 >>719
つまり、2. の方は、以下の記法の ()を{} に変えただけということ?
3. std::array<int, 5> n ( {1, 2, 3, 4, 5} );
つまり、コンストラクタ名を Xxxx とすれば、
Xxxx( リスト型 &list1 ) {
}
みたいな事になってるということかな。
つまり、2. の方は、以下の記法の ()を{} に変えただけということ?
3. std::array<int, 5> n ( {1, 2, 3, 4, 5} );
つまり、コンストラクタ名を Xxxx とすれば、
Xxxx( リスト型 &list1 ) {
}
みたいな事になってるということかな。
721デフォルトの名無しさん (ワッチョイ 9fe3-S6R4)
2018/12/19(水) 16:21:41.32ID:Yvire5cb0 https://gcc.gnu.org/onlinedocs/gcc-4.6.3/libstdc++/api/a00752_source.html
↑ libstdc++ の template struct(?) の array のソースを見てみたら、
// No explicit construct/copy/destroy for aggregate type.
とコメントされていた。明示的なデストラクタが何も無いので、その {・・・}
の部分は、コンパイラが初期化処理まで全部やってるってことなのかも
知れないけど、どういう仕組み?
TYPE _M_instance[N] みたいなメンバがあるけど、ここにコンパイラが初期値を
書き込むんだろうか。どういう仕様なんだろう。
↑ libstdc++ の template struct(?) の array のソースを見てみたら、
// No explicit construct/copy/destroy for aggregate type.
とコメントされていた。明示的なデストラクタが何も無いので、その {・・・}
の部分は、コンパイラが初期化処理まで全部やってるってことなのかも
知れないけど、どういう仕組み?
TYPE _M_instance[N] みたいなメンバがあるけど、ここにコンパイラが初期値を
書き込むんだろうか。どういう仕様なんだろう。
722デフォルトの名無しさん (ワッチョイ 9fe3-S6R4)
2018/12/19(水) 16:35:50.86ID:Yvire5cb0 まず、以下の 2, 3 のような書き方が出来て、それで array の場合は、
ああなるってことかな。まだよく分からん。
1. CPerson person = CPerson( 25, MALE, "Yamada Taro" );
2. CPerson person = { 25, MALE, "Yamada Taro" };
3. CPerson person { 25, MALE, "Yamada Taro" };
ああなるってことかな。まだよく分からん。
1. CPerson person = CPerson( 25, MALE, "Yamada Taro" );
2. CPerson person = { 25, MALE, "Yamada Taro" };
3. CPerson person { 25, MALE, "Yamada Taro" };
723デフォルトの名無しさん (アウアウカー Sa6b-SUIi)
2018/12/19(水) 16:41:39.76ID:yP9yNdl2a 贅沢なお願いなんですが
OpenGLを使って
注視点を行列で回転させたいのですが
どなたか参考になるサイトやソースが
あれば頂けないでしょうか
OpenGLを使って
注視点を行列で回転させたいのですが
どなたか参考になるサイトやソースが
あれば頂けないでしょうか
724デフォルトの名無しさん (ワッチョイ 1eeb-3flP)
2018/12/19(水) 19:25:23.79ID:UC31GMnJ0 >>721
std::arrayはpublicに内部の配列を公開してて、コンストラクタデストラクタを一切書かないことで集成体となって、その初期化は集成体初期化で行う
二重かっこの外側はarrayの初期化、内側のかっこはstd::array内部配列への集成体初期化
ただし、C++14以降は二重かっこを省略できる
https://cpprefjp.github.io/lang/cpp14/brace_elision_in_array_temporary_initialization.html
std::arrayはpublicに内部の配列を公開してて、コンストラクタデストラクタを一切書かないことで集成体となって、その初期化は集成体初期化で行う
二重かっこの外側はarrayの初期化、内側のかっこはstd::array内部配列への集成体初期化
ただし、C++14以降は二重かっこを省略できる
https://cpprefjp.github.io/lang/cpp14/brace_elision_in_array_temporary_initialization.html
726デフォルトの名無しさん (ワッチョイ 4ab3-UKyl)
2018/12/19(水) 23:24:40.75ID:vlvnW3Fh0 PCならPCI Expressだな
727デフォルトの名無しさん (ワッチョイ ade3-u0Vw)
2018/12/20(木) 01:57:39.19ID:Gok/GJGq0 >>724
なるほどだんだん分かってきた。
struct CPerson {
int m_dat1[2];
int m_dat2[3];
};
なら、古い C の時代から、確か、
CPerson person = { {1,2}, {3,4} }; // (1)
みたいに書けた。だから、
struct CMyArray {
int m_dat1[5];
};
なら、
CMyArray a = { {1,2,3,4,5} }; // (2)
と書けるのは当然、ってことだよね。それでC++14以降はさらに、
(1)の場合は、全部一列に並べて、
CPerson person = { 1, 2, 3, 4 }; //(1')
と書ける様になった。結果として、(2)も、
CMyArray a = { 1,2,3,4,5 }; // (2')
と書ける様になった。
そういうことだよね、多分。それでさらに、「=」を省略したような書き方も
できると。そういえば昔から、コンストラクタを持つ CPerson の場合に、
1. CPerson person=CPerson(・・・);
2. CPerson person(・・・);
は確か等価で引数つきのコンストラクタが呼び出されるんだった。
そして、新しい C++ では、小括弧 () を、波括弧 {} に書き換えることも
可能になったみたいな話で、
3. CPerson person=CPerson{・・・};
4. CPerson person{・・・};
みたいなことも書けるようになったのかな。
なるほどだんだん分かってきた。
struct CPerson {
int m_dat1[2];
int m_dat2[3];
};
なら、古い C の時代から、確か、
CPerson person = { {1,2}, {3,4} }; // (1)
みたいに書けた。だから、
struct CMyArray {
int m_dat1[5];
};
なら、
CMyArray a = { {1,2,3,4,5} }; // (2)
と書けるのは当然、ってことだよね。それでC++14以降はさらに、
(1)の場合は、全部一列に並べて、
CPerson person = { 1, 2, 3, 4 }; //(1')
と書ける様になった。結果として、(2)も、
CMyArray a = { 1,2,3,4,5 }; // (2')
と書ける様になった。
そういうことだよね、多分。それでさらに、「=」を省略したような書き方も
できると。そういえば昔から、コンストラクタを持つ CPerson の場合に、
1. CPerson person=CPerson(・・・);
2. CPerson person(・・・);
は確か等価で引数つきのコンストラクタが呼び出されるんだった。
そして、新しい C++ では、小括弧 () を、波括弧 {} に書き換えることも
可能になったみたいな話で、
3. CPerson person=CPerson{・・・};
4. CPerson person{・・・};
みたいなことも書けるようになったのかな。
728デフォルトの名無しさん (ワッチョイ cbeb-pJxC)
2018/12/20(木) 08:10:15.22ID:qx3kfu0o0 >>727
その通りだと思う
集成体以外で{}を使う初期化を一様初期化と呼ぶそう
https://cpprefjp.github.io/lang/cpp11/uniform_initialization.html
その通りだと思う
集成体以外で{}を使う初期化を一様初期化と呼ぶそう
https://cpprefjp.github.io/lang/cpp11/uniform_initialization.html
729デフォルトの名無しさん (アウアウカー Sa51-9xJM)
2018/12/20(木) 11:33:42.81ID:pms7BJwLa 贅沢なお願いなんですが
OpenGLを使って
注視点を行列で回転させたいのですが
どなたか参考になるサイトやソースが
あれば頂けないでしょうか
OpenGLを使って
注視点を行列で回転させたいのですが
どなたか参考になるサイトやソースが
あれば頂けないでしょうか
730デフォルトの名無しさん (ワッチョイ ade3-u0Vw)
2018/12/20(木) 13:08:35.90ID:zDBAwFJg0731デフォルトの名無しさん (ワッチョイ 6d23-1q7i)
2018/12/20(木) 13:58:01.82ID:P4Rv6f7s0732デフォルトの名無しさん (ササクッテロラ Sp61-CdSM)
2018/12/20(木) 14:06:29.86ID:Stk2JPJbp733デフォルトの名無しさん (ドコグロ MM93-7dv0)
2018/12/20(木) 14:19:20.62ID:BW/0WCvFM >>729
スレチ
スレチ
734デフォルトの名無しさん (ワッチョイ f5d7-ESEE)
2018/12/20(木) 23:21:08.79ID:mxfZwT1A0 C++でこんな感じの構文見たんですが、どういったものなんでしょうか?
「const auto 関数名 = [変数名](引数) -> 戻り値の型」
例えば、以下のように書くとcに5が返ります。
int X;
const auto hoge = [X](int a, int b) -> int
{
return a + b;
}
int c = hoge(2, 3);
[X]のところは、宣言してある変数ならなんでもいいみたいですが、何者かよく分かりません。
「const auto 関数名 = [変数名](引数) -> 戻り値の型」
例えば、以下のように書くとcに5が返ります。
int X;
const auto hoge = [X](int a, int b) -> int
{
return a + b;
}
int c = hoge(2, 3);
[X]のところは、宣言してある変数ならなんでもいいみたいですが、何者かよく分かりません。
735デフォルトの名無しさん (ワッチョイ 8dc3-d5oK)
2018/12/20(木) 23:27:13.41ID:KfVqhHRV0 ラムダ式でぐぐれ
736デフォルトの名無しさん (ワッチョイ 05eb-WCtl)
2018/12/20(木) 23:32:09.33ID:Lef4v1AJ0 俺はラムダ式は認めんぞ
737デフォルトの名無しさん (ワッチョイ f5d7-ESEE)
2018/12/20(木) 23:35:27.42ID:mxfZwT1A0 ラムダ式なんてものがあるんですね
知らなかった。。
知らなかった。。
738デフォルトの名無しさん (ワッチョイ 037e-q1e7)
2018/12/20(木) 23:46:51.76ID:P+SDVgfX0 ラムダ式使わない奴はNGだわ
739デフォルトの名無しさん (ワッチョイ ade3-u0Vw)
2018/12/21(金) 00:39:41.69ID:JoOPbSrC0740デフォルトの名無しさん (ワッチョイ cbeb-pJxC)
2018/12/21(金) 00:49:34.51ID:kHtIL9Hb0 なにか書くよりはとりあえず[&]って書いといた方が良いと思う
741デフォルトの名無しさん (ワッチョイ 457f-q1e7)
2018/12/21(金) 00:57:46.38ID:8z6lrJJh0 必要ないなら何も書くなよ
742デフォルトの名無しさん (ワッチョイ cbeb-pJxC)
2018/12/21(金) 01:08:05.95ID:kHtIL9Hb0 よく分からないまま書いて、使えないー、コピーされてるーとか言うことになるよりはトラブル少ないかと思った
必要ないなら空はその通りだと思う
必要ないなら空はその通りだと思う
743デフォルトの名無しさん (ワッチョイ bd7b-5YD5)
2018/12/21(金) 04:24:29.96ID:z0fETMsD0 キャプチャーが空のラムダ式は関数オブジェクトと互換性があるので、可能ならインライン展開も行われたりするから、必要ないなら書かない方がいい。
744デフォルトの名無しさん (ワッチョイ ade3-u0Vw)
2018/12/21(金) 15:04:45.84ID:JoOPbSrC0 C++って、「関数オブジェクト」ってあるんだっけ?
745デフォルトの名無しさん (スップ Sd43-odIk)
2018/12/21(金) 15:09:53.69ID:SQCtvUnrd C++で言う所の関数オブジェクトはoperator()をオーバーロードしたクラスのオブジェクトであって、それは大昔からある
お前さんが思い浮かべてるカッコで括ったそれと同じものかどうかは知らん
お前さんが思い浮かべてるカッコで括ったそれと同じものかどうかは知らん
746デフォルトの名無しさん (ワッチョイ ade3-u0Vw)
2018/12/21(金) 15:12:43.01ID:JoOPbSrC0747デフォルトの名無しさん (ワッチョイ c5f2-5YD5)
2018/12/21(金) 22:35:22.62ID:SVNbSsFy0 じゃあ「関数オブジェクト」という名前で呼ばれるものがC++に存在するかという質問?
748デフォルトの名無しさん (ワッチョイ 05bd-4M5M)
2018/12/21(金) 22:37:25.80ID:Co0MMJAt0 #include <stdio.h>
class Hoge {
int m_x;
Hoge(int x) : m_x(x) { }
int operator(int a, int b) const { return a + b + m_x; }
};
int main() {
int X = 10;
Hoge hoge(X);
int c = hoge(2, 3);
printf("c=%d\n", c); // 15
}
class Hoge {
int m_x;
Hoge(int x) : m_x(x) { }
int operator(int a, int b) const { return a + b + m_x; }
};
int main() {
int X = 10;
Hoge hoge(X);
int c = hoge(2, 3);
printf("c=%d\n", c); // 15
}
749デフォルトの名無しさん (ワッチョイ 05bd-4M5M)
2018/12/21(金) 22:39:05.01ID:Co0MMJAt0 キャプチャがあるからインライン展開されない、というのは
C++におけるラムダ式の存在意義を半否定している
と思ったり
思わなかったり…
C++におけるラムダ式の存在意義を半否定している
と思ったり
思わなかったり…
750デフォルトの名無しさん (ワッチョイ 05bd-4M5M)
2018/12/21(金) 22:42:29.52ID:Co0MMJAt0 ちなhoge[&X]の場合の伝統的な関数オブジェクト版はこういったカンジになるヨカン↓↓↓
#include <stdio.h>
class Hoge {
int& m_x;
Hoge(int x) : m_x(x) { }
int operator(int a, int b) const { return a + b + m_x; }
};
int main() {
int X = 10;
Hoge hoge(X);
int c = hoge(2, 3);
printf("c=%d\n", c); // 15
X = 20;
int c2 = hoge(2, 3);
printf("c2=%d\n", c2); // 25
}
#include <stdio.h>
class Hoge {
int& m_x;
Hoge(int x) : m_x(x) { }
int operator(int a, int b) const { return a + b + m_x; }
};
int main() {
int X = 10;
Hoge hoge(X);
int c = hoge(2, 3);
printf("c=%d\n", c); // 15
X = 20;
int c2 = hoge(2, 3);
printf("c2=%d\n", c2); // 25
}
751デフォルトの名無しさん (ワッチョイ cb80-5YD5)
2018/12/22(土) 00:09:01.87ID:b6CiPLFa0 バカほど新しもの好き
752デフォルトの名無しさん (ワッチョイ 05bd-4M5M)
2018/12/22(土) 00:11:23.62ID:lj97J/9W0753デフォルトの名無しさん (ワッチョイ bd7b-5YD5)
2018/12/22(土) 02:02:20.62ID:NPmZd5n00 関数オブジェクトって言わないのかな、良くしらんがw
つまり、
auto f1 = [](int x){ retrurn x;}
auto f2 = [&](int x){ reutrn x; }
この場合、f1の型は通常の関数ポインタ、f2の型はstd::functionになるということ。
つまり、
auto f1 = [](int x){ retrurn x;}
auto f2 = [&](int x){ reutrn x; }
この場合、f1の型は通常の関数ポインタ、f2の型はstd::functionになるということ。
754デフォルトの名無しさん (アウアウウー Sac9-zV84)
2018/12/22(土) 02:05:38.24ID:DIzquj+Ya f1もf2も型不明じゃなかった?
755デフォルトの名無しさん (ワッチョイ bd7b-pJxC)
2018/12/22(土) 02:21:53.10ID:NPmZd5n00 不明というか、auto以外で受けるのを禁止されているだけで、内部的にはちゃんと型を持ってるでしょ。
たとえば、
void hoge(auto func(int x)->int)
{
.....
}
こういう関数を作ったとして、f1は引数に渡せるけど、f2はエラーになるし、
f2を渡そうと思ったら、std::functionで受ける必要がある。
たとえば、
void hoge(auto func(int x)->int)
{
.....
}
こういう関数を作ったとして、f1は引数に渡せるけど、f2はエラーになるし、
f2を渡そうと思ったら、std::functionで受ける必要がある。
756デフォルトの名無しさん (ワッチョイ 05bd-4M5M)
2018/12/22(土) 02:36:35.21ID:lj97J/9W0757デフォルトの名無しさん (ワッチョイ cbeb-pJxC)
2018/12/22(土) 02:43:48.49ID:6gYvZ8/20 >>753
f1は同じシグネチャの関数ポインタに暗黙変換可能、であるだけで型自体はコンパイラ依存のラムダ式の型
f1は同じシグネチャの関数ポインタに暗黙変換可能、であるだけで型自体はコンパイラ依存のラムダ式の型
758756 (ワッチョイ 05bd-4M5M)
2018/12/22(土) 02:47:42.19ID:lj97J/9W0 スマンf2はテンプレート引数で渡せば良いは撤回
普通にf1を引数渡ししてインライン展開を気体するものでだいたい合ってるはず…
普通にf1を引数渡ししてインライン展開を気体するものでだいたい合ってるはず…
759デフォルトの名無しさん (ワッチョイ 8dc3-d5oK)
2018/12/22(土) 06:27:13.75ID:K2b4MxYI0 関数ポインタに変換できるのはqsortとか昔のインターフェースに渡すのに便利なだけで
今から書くコードで積極的に使うもんじゃない
今から書くコードで積極的に使うもんじゃない
760デフォルトの名無しさん (ワッチョイ bd7b-pJxC)
2018/12/22(土) 09:28:59.71ID:NPmZd5n00 関数ポインタとstd::functionじゃ実効コストが全然違うから、用途によって選べば良い。
qsortみたいな用途だったら、新しく書くコードでも関数ポインタが適していると思うけどね。
qsortみたいな用途だったら、新しく書くコードでも関数ポインタが適していると思うけどね。
761デフォルトの名無しさん (ワッチョイ 8dc3-d5oK)
2018/12/22(土) 10:10:26.54ID:K2b4MxYI0 比較関数を動的にとっかえひっかえするんじゃなかったら全く適してないぞ
762さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd43-NaUf)
2018/12/22(土) 10:15:50.91ID:Op/4E6E/d インライン展開のできるstd::sortが最速なんじゃ。
763デフォルトの名無しさん (アウアウウー Sac9-zV84)
2018/12/22(土) 13:40:32.94ID:DIzquj+Ya 関数ポインタよりstd::functionの方が遅いんじゃないの?
764さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd43-NaUf)
2018/12/22(土) 14:28:59.21ID:Op/4E6E/d https://stackoverflow.com/questions/16729941/are-stdfunctions-inlined-by-the-c11-compiler
std::functionよりテンプレートの方が早いみたいだね。
std::functionよりテンプレートの方が早いみたいだね。
765デフォルトの名無しさん (ワッチョイ 1bcd-EJDH)
2018/12/22(土) 15:14:07.07ID:+oRc8mMV0 ポインタはどう頑張ってもポインタだが関数オブジェクトならインライン展開される可能性がある
766デフォルトの名無しさん (ワッチョイ 95b3-lUk2)
2018/12/23(日) 11:18:27.58ID:AQ4G8Wg10 クロージャみたいなものと、
関数の静的型チェック、自発的なメモリ管理
って恐ろしく相性悪いと思われる。
そんな無理するくらいならおとなしく継承、オーバーライド使った方がマシ。
関数の静的型チェック、自発的なメモリ管理
って恐ろしく相性悪いと思われる。
そんな無理するくらいならおとなしく継承、オーバーライド使った方がマシ。
767デフォルトの名無しさん (ワッチョイ 95b3-Kal0)
2018/12/23(日) 13:14:37.02ID:zy+sQveZ0 キャッシュミスを許さない会。
768デフォルトの名無しさん (ワッチョイ c5f2-5YD5)
2018/12/23(日) 13:27:07.40ID:swCrUp5Z0 静的型チェックとクロージャの相性が悪いところってたとえばどんな?
769デフォルトの名無しさん (ワッチョイ ade3-u0Vw)
2018/12/23(日) 17:41:57.71ID:Wgmswpxd0 最近、QueryPerformanceCounter() を使って色んな速度測定をしていたら、
32バイトくらいの memcpy() でも、数マイクロ・セカンド位(1.0*10^(-6)(s))かかる事が分かった。
ちなみに、1クロックは、3.3 * 10^(-10) 位なので、たった32バイトに1万クロックくらいかかって
いる事が分かった。
ためしに単純な for ループと DWORD *ptr で転送してみても結局、それ位の
小さなサイズだと、同じくらいかかることも判明。
同じマシンでも、もっと大きなサイズのコピーだと、for ループで行っても、
1回のループで、4クロックくらいしかかからない。
推測だが、jmp 命令は、10バイト程度前の番地に戻る程度でも、ループ回数が
少ない場合は、物凄く極端に遅いが、ループ回数が多くなるとなんと1クロックで
実行できるようになるらしい。
ただし、余り定かではない。
32バイトくらいの memcpy() でも、数マイクロ・セカンド位(1.0*10^(-6)(s))かかる事が分かった。
ちなみに、1クロックは、3.3 * 10^(-10) 位なので、たった32バイトに1万クロックくらいかかって
いる事が分かった。
ためしに単純な for ループと DWORD *ptr で転送してみても結局、それ位の
小さなサイズだと、同じくらいかかることも判明。
同じマシンでも、もっと大きなサイズのコピーだと、for ループで行っても、
1回のループで、4クロックくらいしかかからない。
推測だが、jmp 命令は、10バイト程度前の番地に戻る程度でも、ループ回数が
少ない場合は、物凄く極端に遅いが、ループ回数が多くなるとなんと1クロックで
実行できるようになるらしい。
ただし、余り定かではない。
770デフォルトの名無しさん (ワッチョイ ade3-u0Vw)
2018/12/23(日) 17:45:32.05ID:Wgmswpxd0 それか、QueryPerformanceCounter() の精度の問題かもしれない。
いくらなんでも、32バイトで1万クロックは遅すぎるように思う。
ちなみに、Sleep(1000); とすると、ちゃんと、1.0 (s) と表示されるので、
速度の計算ミスではないはず。
いくらなんでも、32バイトで1万クロックは遅すぎるように思う。
ちなみに、Sleep(1000); とすると、ちゃんと、1.0 (s) と表示されるので、
速度の計算ミスではないはず。
771デフォルトの名無しさん (ワッチョイ ade3-u0Vw)
2018/12/23(日) 17:57:02.41ID:Wgmswpxd0 そうか、これは、RDTSC 使ってないのか・・・。
「高分解能」と言っても、1.0 マクロセカンド位の精度だったとは、予想外・・・。
「高分解能」と言っても、1.0 マクロセカンド位の精度だったとは、予想外・・・。
772デフォルトの名無しさん (ワッチョイ 95b3-o5ET)
2018/12/23(日) 19:37:24.93ID:V9dsb1PW0 スレッドのディスバッチ、キャッシュのヒットミス、パイプラインストール、バスのI/O待ち、etc…。
memcpy1つとってもそうそう単純なものではない。
memcpy1つとってもそうそう単純なものではない。
773デフォルトの名無しさん (ワッチョイ 95b3-lUk2)
2018/12/23(日) 19:56:30.39ID:AQ4G8Wg10 >>768
引数がどんな型を持つ関数を渡すかを事前にどこで決めるかが問題だし、
それ事前に決められるならクロージャーの必要性は低くなるだろ。
あと資源解放のタイミングをどうするかを明示させるシンタックスってのは多分相当難しい。
その辺、クロージャーを用意する言語は普通はGCに任せる。
引数がどんな型を持つ関数を渡すかを事前にどこで決めるかが問題だし、
それ事前に決められるならクロージャーの必要性は低くなるだろ。
あと資源解放のタイミングをどうするかを明示させるシンタックスってのは多分相当難しい。
その辺、クロージャーを用意する言語は普通はGCに任せる。
774デフォルトの名無しさん (ワッチョイ c5f2-5YD5)
2018/12/23(日) 20:38:33.04ID:swCrUp5Z0 クロージャって関数とその外側の環境を合わせたものだろ。
「関数を渡す」って何がどこに関数を渡す話なんだろうか。
「関数を渡す」って何がどこに関数を渡す話なんだろうか。
775デフォルトの名無しさん (ワッチョイ 95b3-lUk2)
2018/12/23(日) 21:40:29.80ID:AQ4G8Wg10 色々シチュエーションは考えらるだろうけれどreactなら
var ChildInput = React.createClass({
_onChange: function (e) {
this.props.onChange(e.target.value);
}
}
)
とかするやつをイメージしてる。
var ChildInput = React.createClass({
_onChange: function (e) {
this.props.onChange(e.target.value);
}
}
)
とかするやつをイメージしてる。
776デフォルトの名無しさん (ワッチョイ 95b3-aRw3)
2018/12/23(日) 22:50:15.98ID:zy+sQveZ0 キャッシュミスは犯罪です。
777デフォルトの名無しさん (ワッチョイ 05bd-4M5M)
2018/12/23(日) 23:48:12.36ID:UknIutZS0778デフォルトの名無しさん (ワッチョイ c5f2-5YD5)
2018/12/24(月) 00:09:16.83ID:MCFE6K0T0779はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 1b6f-q1e7)
2018/12/24(月) 01:08:30.96ID:+hyoXfJx0 C++ のラムダ式は関数オブジェクト生成の構文糖でしかないので、
従来と比べて特に良くなったり悪くなったりするわけはない。
オブジェクトの寿命の管理がやりづらいってのは C++ では今更な話で、
ラムダ式がどうこうとか言ってもしょうがなくない?
従来と比べて特に良くなったり悪くなったりするわけはない。
オブジェクトの寿命の管理がやりづらいってのは C++ では今更な話で、
ラムダ式がどうこうとか言ってもしょうがなくない?
780デフォルトの名無しさん (ワッチョイ 05bd-4M5M)
2018/12/24(月) 01:17:53.78ID:GJkiS2EE0 >>778
>m_xがその外側の環境だろ
オブジェクトhogeの中に囲い込まれている(キャプチャされたブツである)からちげう
hogeをコピーしたり別の関数に引数渡ししたら付いていくという意味でも外側の環境ではない
>m_xがその外側の環境だろ
オブジェクトhogeの中に囲い込まれている(キャプチャされたブツである)からちげう
hogeをコピーしたり別の関数に引数渡ししたら付いていくという意味でも外側の環境ではない
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国国防省が再反論 SNSで公開した音声とは“別の通報”で日本に訓練の時間や海域を通報したと主張 [夜のけいちゃん★]
- BreakingDown 前日会見で対戦予定選手から不意打ちビンタ→後頭部強打で失神した選手、くも膜下出血と報告「脳内に出血が発見され…★2 [Anonymous★]
- BreakingDown 前日会見で対戦予定選手から不意打ちビンタ→後頭部強打で失神した選手、くも膜下出血と報告「脳内に出血が発見され…」 [Anonymous★]
- フィンランド、ミスや国会議員つり目投稿 くり返されるアジア人差別 [蚤の市★]
- 【給食無償化】国が全額負担 自維公3党、近く合意へ★2 [ぐれ★]
- コメ「余っている」年明けに下落も? 大量の在庫が倉庫を圧迫、赤字の恐れ…業者「値下げするしか…」 ★3 [Hitzeschleier★]
- 【実況】博衣こよりのえちえち朝こよ🧪★2
- メモリ高騰で今後はスマホ4GBが主流に📲 [445522505]
- ディズニーって二作目でコケるじゃん?
- 給食無償化、近く合意へ…全国民が毎年5000円負担する計算。これケンモジさんはどう思ってるの? [973343483]
- 元一流迷惑系ユーチューバー「パンダに頼る動物園もよくない。別にパンダがいなくても楽しめますから」 [309323212]
- 女だけど証拠うp
