C++相談室 part139

■ このスレッドは過去ログ倉庫に格納されています
2018/10/06(土) 00:59:48.54ID:CdYUXXMG0
次スレを立てる時は本文の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
2018/12/13(木) 02:46:28.04ID:5hqeTMOU0
(1) が前方宣言的に働く理由は >>622 で説明したんだけど、通じなかったかな…
2018/12/13(木) 08:36:49.07ID:fs9Sguzb0
>>634
>struct Bar;は明らかにスコープローカルな新たなタグBarを作り出す

構造体定義ブロック内に限らずとも、前本宣言はもともとすべてスコープローカルだけど。

それはグローバルであっても、中間階層の名前空間であっても、
多重ネストの構造体の中間階層で会っても同じ。
638デフォルトの名無しさん (ワイーワ2 FF42-yWnt)
垢版 |
2018/12/13(木) 13:11:12.72ID:zFPTCGevF
拘ってる人は自前でコンパイラでも作ろうとしてるのか?
2018/12/13(木) 16:31:01.00ID:jSkPpV300
>>615
ポインタでない場合というと

struct aho;

struct boke
{
aho begin();
aho end();
};

こういうのもあるな
2018/12/14(金) 15:03:53.29ID:TcnBR/ER0
最初に質問を書いた者だが、この話は、実は仕様が決まっていて、
記憶だと、手元にある ARM(Annotated Reference Manual) にも、確か
何か書いてあった。

見るのがメンドクサくてここに質問を書いたんだ。スマン。
641デフォルトの名無しさん (ワッチョイ 2b23-yWnt)
垢版 |
2018/12/14(金) 17:33:38.94ID:6VLPSm+70
3日で忘れる脳みそ
2018/12/14(金) 20:33:44.26ID:PXFrjbZo0
レスdクス、

>>636
なるほどスゲーよくわかりた

>>635
構造体の定義ブロック内のint i;は2回同じものを書いたらエラーになるから宣言ではなくて定義じゃわパオーン
構造体の定義ブロック内のint i;は2回同じものを書いたらエラーになるから宣言ではなくて定義じゃわパオーン

その他の方々もだいたいおk
2018/12/15(土) 18:02:44.15ID:9IWy3eNma
プログラム間でデータ共有する方法はメモリ共有とファイル経由以外に何がありますか
2018/12/15(土) 18:19:26.83ID:a5AQAbac0
>>643
RPC
2018/12/15(土) 20:09:27.38ID:0fkVwVva0
>>643
・WM_COPYDATA メッセージで送り合う。
2018/12/15(土) 20:24:45.65ID:l0ksdq3r0
>>643
Windows ならメールスロットとパイプもアリかな。
2018/12/15(土) 20:36:21.43ID:NSrOcjuo0
質問者の意図がようわからんが
データ本体(スゲー巨大かもしれない)の共有にいちいち通信時間を要する手段は除外されるんじゃ…
やっぱプロセス間の同期をミューテックスか何かのプロセス間でも使える同期オブジェクトまたはソケット通信とかでとる前提で、
データ本体のはメモリ共有かファイルという手段になるのではなかろうかと、
2018/12/15(土) 21:19:09.14ID:hAY8T09E0
>>643
OpenClipboard
2018/12/15(土) 21:55:14.09ID:px2y3yP70
ファイル渡しの方が通信よりよっぽど時間がかかると思うが。
2018/12/15(土) 22:03:48.34ID:hAY8T09E0
オンメモリのはずの処理が秒待たされて・・・
2018/12/15(土) 22:05:56.86ID:NSrOcjuo0
>>649
共有のニーズが生じてからファイルを作るのならそうだが
最初から共有データとしてファイルが存在する場合はそうではない
というわけで質問者の意図にはようわからん点がある
2018/12/15(土) 22:15:15.80ID:px2y3yP70
ディスクアクセスの遅さ考えたらわかるだろ、ふつう。
2018/12/15(土) 22:47:45.19ID:NSrOcjuo0
>>652
想像力が欠如すぐる…
共有しようとするデータのサイズが1 TBなら、全部送ろうとしたら3GB/sの転送速度でも333秒かかる
ファイルを1個置いといてfseek()する方がまだまし
2018/12/15(土) 22:51:21.25ID:a5AQAbac0
たった一行の素朴な質問からどこまで膨らませられるかコンテスト開始
2018/12/15(土) 22:54:08.01ID:NSrOcjuo0
通信推しの人としてはそう言いたくなる気持ちもワカル
2018/12/15(土) 22:58:01.76ID:px2y3yP70
1TBのデータ共有するのにファイルからは1TB読まなくてもいいという謎比較。
657デフォルトの名無しさん (ワッチョイ 1e80-2dqZ)
垢版 |
2018/12/15(土) 23:09:43.46ID:8aRCy95z0
同一の計算機で何度も読むことが分かってるのに
別の計算機でディスクアクセスさせて
それを通信でやりとするアホなシステム構成にするヤツがあとを絶たないのがよくわかる

著しい低学歴知恵遅れがそういうことよくやる
658デフォルトの名無しさん (ワッチョイ 1e80-2dqZ)
垢版 |
2018/12/15(土) 23:23:37.08ID:8aRCy95z0
世の中には常識をこえるすごい頭悪いヤツラがいるからな

何度も何度も計算機Aから計算機Bの数十ギガを超える共有ファイルの内容を計算機Aにすべて読み込んで
計算機Aで処理をなん百回も繰り返す

しかも共有に使うSamba
つまりNBT()
Windows共有とまったく同じ

つまり毎回毎回計算機Bにディスクアクセスして通信(NBT経由)使って
計算機Aで読込むということを意味する

それで遅い遅いなんでといってたからな。。。
世の中には想像を超えるこんな頭悪いのが現実にいる
2018/12/15(土) 23:35:37.00ID:NSrOcjuo0
>>656
むしろ毎回データ全部を丸ごと送る想定なら、高速な通信手段で良くて
「データ共有する」(>>643)という質問者の動機にならない件について:

メモリ共有であれば通信より高速を目指す目的で毎回データ全部を丸ごと送る風に使われることもあるが
質問者>>643は共有手段として「ファイル」も挙げているから
いきなりそこまで話を限定できないワケ
2018/12/15(土) 23:49:56.32ID:NSrOcjuo0
んまー今思いついたがメモリ共有やファイルの他には
データベースみたいなデータを出し入れ管理するプロセスなりサーバなりを設けるというのも
>>643の答えに含まれるのかもしれん…

>>656の思い込みとはうらはらに、
データベースXにアクセスするプロセスA、Bは、明らかにXが管理するデータを共有しているが、
Xの管理するデータ丸ごとを毎回送りつけ合うわけではないし、
2018/12/16(日) 08:13:31.96ID:OmvADhcW0
なんか長々と書いているようだが、全部送ろうが一部だろうが正しく同条件で比較すれば一目瞭然だろう。

1. プロセスAが巨大なファイル中の一部のデータの読み込みをファイルシステムに要求する
2. ストレージから読みだされたデータが返される

1. プロセスAがプロセスBが持つ巨大なデータ中の一部のデータをRPCで要求する
2. プロセスBからデータが返される
2018/12/16(日) 08:26:49.11ID:sqE5CAYo0
>>660
データベースなら例えばSQLでやりとりやね
既にオンメモリで数ギガ扱うのに対応してるしプログラム間通信も高速
なにより統一されたプロトコルでオンメモリからネットにまでアクセスできるのが便利
2018/12/16(日) 08:37:36.18ID:OmvADhcW0
>データベースみたいなデータを出し入れ管理するプロセスなりサーバなりを設けるというのも

これを実現する手段として>>644-646のような手段があるわけだが、それ認識してなかったのか。
2018/12/16(日) 08:48:33.22ID:sqE5CAYo0
それはデータベースとは言わんのじゃ?
COPY_DATAやメールスロットはOS提供の簡易的なプロセス間通信サービス
RPCはデータ以に上さらに高度にアクセスするプロシージャ
2018/12/16(日) 09:09:15.05ID:OmvADhcW0
データをどう持つかというのはこの際どうでもよくて、>>663はそのサーバープロセスと
データをやり取りする手段の話ね。
2018/12/16(日) 12:31:06.96ID:DTKapPnl0
>>663
>これを実現する手段として>>644-646のような手段があるわけだが、それ認識してなかったのか。
>>644-646はデータを送りつけるという通信の手段のみ述べており、データ共有の実現に行き着いていない
もちろん通信だけでもプロセスAとBの間で情報の共有はできるが、
>>644-646の言説だけでは、情報を表す入れ物である「データ」の共有に行き着いていないワケ

>>644-646の言説が含意するのは、同じ情報iを、プロセスAがデータa、プロセスBがデータbとして持っている状況、
というところ止まりで、aとbは別物。さらにいうと、同じ形式のデータであることすら導くことができない

この差異は形而上の問題ではなく、現実の設計の問題である
>>644-646だけでは、AがBに情報伝達するにあたりBに通信する(通信のエンドポイントとしてBを起こす)必要があるから
Bが風邪で休んだりするとAの仕事まで止まってしまうことが確定する
一方、AがExcelシートXに情報を書き、Bが必要なときXの情報を参照する、という方式だと(他に付帯条件が無ければ)Aは問題なく仕事を続けられる
データ共有というのは後者
2018/12/16(日) 13:20:15.29ID:OmvADhcW0
今度は「共有」という言葉の定義論か。それを>>647で言っていたんならそう問題はなかったろうがな。
どっちにしても通信時間が云々というのが的外れなのは変わらない。
見苦しい。
2018/12/16(日) 13:30:30.74ID:7UXd2BE00
なぜ機能とそれを実現する手段を混同して語るかなぁ…
Excelのブック共有だってExcelアプリケーションがファイル共有とか使って頑張ってるから実現できてるんだし
そもそも>>643は手段レベルの話だし
2018/12/16(日) 13:34:08.04ID:DTKapPnl0
>>667>>668は通信でおk、と叫びつつ、ネットワークのトポロジーの差異を認識しないおマヌケちゃん
結局通信についてもデータ共有についても素人なのでした
2018/12/16(日) 14:20:42.94ID:7UXd2BE00
ネットワークトポロジー
最近覚えたのかな? w
2018/12/16(日) 16:50:47.90ID:n9CIi+tQ0
郵送が確実。
2018/12/16(日) 16:58:48.71ID:JWRTcoVNM
残念ながらリアル郵便網を使うプロトコルスタックはないので伝書鳩にした方がいい
2018/12/16(日) 17:10:47.56ID:wjNPlWwl0
伝書鳩はパケットロスの可能性が高いので冗長化が必要
2018/12/16(日) 17:24:43.78ID:lv3vm4Nk0
ループバックができる鳩は往復鳩といって
普通の伝書鳩より訓練が難しいんだぞ
2018/12/16(日) 17:39:03.15ID:wY/NrJSLa
往復とか出来たのか… あれ一方通行だと思ってたわ
2018/12/16(日) 17:49:06.67ID:i39EOxKBM
手段の話であれば極論口頭でもいいわけたが、勿論そんなこと聞きたい訳でもなし
2018/12/18(火) 13:15:19.65ID:G1V4hdx+0
>>643
実は、GDI の Device Context の HDC も、プロセスの垣根を越えて渡す方法がある、
メモリコピーは伴わずに。やり方は、PrintWindow(HWND hWnd, HDC hDC, DWORD flag)
API を使って、WM_PRINT メッセージを送るというもの。これを使えば、グラフィックデータ
ならBITMAPデータも伝達できる。たとえば、HDC を用いて GDI+ の LockBits() を
使うと良い。L。

https://mevius.5ch.net/test/read.cgi/tech/1474384848/338
678デフォルトの名無しさん (ワッチョイ 2b23-yWnt)
垢版 |
2018/12/18(火) 13:30:16.37ID:/M0/bFGF0
共有メモリにクラウドが入ってくる時代はもう来てる
2018/12/18(火) 14:51:58.63ID:RxVtOB6VM
C++を使ってる仕事につきたいのですが、どこもC++を使ってるところは組み込み系とかの経験の募集ばっかです
私はwebしかやったことないので組み込み系の経験はありません
2018/12/18(火) 15:31:06.75ID:aA/jUlRpx
>>679
ここはダーマの神殿ではない、と言いたいとこだけど、年齢によるね。
未経験でも30歳前後なら余裕、35歳超えなら諦めろ。
というか組み込み系でC++を使っている分野ってあるにはあるけどそんなに多くはないよ。
組み込みLinuxでのアプリ開発ぐらいなんじゃない?
老害から言わせてもらうとアレは組み込みソフトじゃないけど。
2018/12/18(火) 17:11:33.44ID:RxVtOB6VM
>>680
25です
Linuxでのアプリ開発分野ならあるんですね‥
別に組み込みじゃなくてもいいんですけど、探したら組み込みがほとんどって感じです
本気で探しているのですが、難しいです‥
頑張って探してみます
2018/12/18(火) 17:30:13.67ID:zLgJOfCSM
25歳なら第二新卒扱いで組み込み未経験でも全然OKよ。
募集要項に経験者って書かれてても怖がらずどんどん応募してみては?
相変わらずこの業界は人手(奴隷)不足なのでそう苦労せず転職できると思う。
売り手市場の今は転職先の会社を見極めて選り好みすることができるので、下手に妥協せず納得行くまで転職活動頑張って!
2018/12/18(火) 17:36:02.29ID:RxVtOB6VM
>>682
ありがとうございます!
目標に向かって頑張ります
相談に乗ってもらってありがとうございます
相談してよかったです!
2018/12/18(火) 17:41:07.57ID:tlRM8wuS0
普通にC++でWindowsようのデスクトップアプリ作ってるけどなあ
それように人員を募集してるかっていうとしてないけど
2018/12/18(火) 18:14:29.56ID:RxVtOB6VM
>>684
普通に羨ましいです‥
自分は中々見つからないです
2018/12/18(火) 19:02:13.39ID:/UA4EEmuM
>>680
組込でガッツリは使ってないけどBetter CとしてC++使ってる所はそれなりにあるよ
2018/12/18(火) 21:39:11.18ID:w60GoDWR0
ちっこく作って別プロセス立てするってやり方はあるけど
それ以外だと大規模なゲーム開発くらいしかあんまり聞かないな。
2018/12/18(火) 22:06:41.05ID:F4O/hB15M
なんでc++の仕事したいんだ?
言語縛りにする意味がわからんな
2018/12/18(火) 22:15:12.74ID:xgHv4hiI0
自分が使える言語で探すのはそんなにおかしいか?
2018/12/18(火) 22:16:48.41ID:tlRM8wuS0
C++じゃないとやる気起きないし
2018/12/18(火) 22:38:17.18ID:w60GoDWR0
それは異常だろ
2018/12/18(火) 23:31:30.78ID:6RhNbAj70
C++の最新仕様に詳しくてもあんまり仕事で使えないからな
メタプログラミング駆使して行数少なく書いてもぶっちゃけ大した価値ない
逆にやりすぎて嫌われるのがオチ
CPU、キャッシュ、バスアーキ、OS、ABI、Toolchain、各種デバッグ手法などを知ってる方が重要
2018/12/19(水) 00:09:24.93ID:GdGFtcE30
言語仕様詳しい癖にmake書けない奴とかいるからな
2018/12/19(水) 00:10:12.36ID:UC31GMnJ0
VisualStudioばっか使ってるからmakeかけないわ・・・
695デフォルトの名無しさん (ワッチョイ 1e80-2dqZ)
垢版 |
2018/12/19(水) 00:13:50.49ID:jOXn0Ht90
makeは依存ファイルと生成ルールをひたすら書くだけだからな
あんなしょうもないのを書けないほうがおかしい
2018/12/19(水) 00:14:21.79ID:m3ixYsdj0
自作のmake.pyなら
2018/12/19(水) 00:33:44.41ID:ct7Lx3nM0
makeは暗黙ルールとか特殊変数とか予約ターゲットとかアーカイブの特別扱いとか
罠や地雷や落とし穴が満載で人間が書くもんじゃない
2018/12/19(水) 00:38:35.31ID:PtV3oISf0
昔はmake書けないやつ馬鹿にしてたが、ひざに矢を受けてしまってな……
今いるのやや学術よりのとこなんだけど、回りがPythonばかりになってきて690の気持ちが分かってしまう
2018/12/19(水) 01:21:09.11ID:3jKO9qdxM
linuxのmakefileをwindowsで使おうとしてハマってぶん投げたのはナイショ
2018/12/19(水) 01:42:35.97ID:+UCKDvEZM
makeは泥沼、mkmfやら数多のツールすら呑み込む底無し沼・・
2018/12/19(水) 02:18:50.35ID:BcJ2DwBBd
makeからCMakeへ時代は動いている。
2018/12/19(水) 02:41:43.59ID:4vZcLUvu0
makeを書くだけなら簡単だがクロスプラットフォームで更にいくつもオプションが増えてくると人力で書くこと自体が間違いでしかなくなる
2018/12/19(水) 05:34:26.63ID:yisopo3/0
環境導入楽なGUIアプリケーション作成用ライブラリないかなぁ
QtはQtCreatorが使いづらくて
2018/12/19(水) 08:20:09.90ID:fZnQLneQ0
標準ライブラリにGUIが入らないのは何故なんだぜ?
制御系とかそもそもGUIが無い環境に実装出来ないから?
2018/12/19(水) 08:34:28.71ID:4vZcLUvu0
通信ライブラリですらいつ策定されるか分からない状態なのにGUIとかC++29くらいになりそう
それに最近はGUIはweb方面のエコシステムを流用するのが流行だしはっきり言って厳しい
2018/12/19(水) 10:09:57.72ID:i1OD7WIV0
GUI ライブラリの提案だけは出てるけどね。
cairo を取り入れようとか、
ウェブアプリケーション風の DOM ベースのやつ (?) とか。

動作モデルが色々とあるので、
どれかに統一するのはしんどいと思う。
ベースの動作モデルを意識させないほど厚いライブラリを
標準に入れるのもちょっとどうかと思うし。
2018/12/19(水) 10:20:42.79ID:G6mG3us50
>>704
そういうのは「言語」かってことだよ
ISO/IEC14882は言語を定義する規格で、
GUIを定義する規格なら別の文書番号になるだろう
OSを定義する規格がそうであるように
2018/12/19(水) 11:42:47.34ID:auFS4SnhM
標準ライブラリは最小限でいい派
標準のスレッドすら不要
大抵結局native handle使うはめになるし
デバッガと連携しないし
一方でatomicは使えるな
2018/12/19(水) 12:28:04.06ID:o9SPlDa00
お酒はぬるめの燗がいい
肴はあぶったイカでいい
2018/12/19(水) 13:04:47.28ID:RjqFkMVC0
質問です。
ノートPCのキーが勝手に連打されるような状態になったので、
「キー入力の連打を感知したら、連打された入力をキャンセルする」というソフトが欲しいのですが、
どこかにあるでしょうか?

無ければ、自作も考えますが、キー入力をキャンセルさせる方法がよくわかりません。
2018/12/19(水) 13:13:01.18ID:4vZcLUvu0
キー入力のイベントをフックしてごにょればできるんじゃないの
2018/12/19(水) 13:24:01.60ID:i1OD7WIV0
>>710
いわゆるチャタリングってことかな。
ざっとググってみた感じだと ccchattttter や Keyboard Chattering Fix というソフトがあるみたいだね。

ソフトウェアとしては、他のプロセスが受け取るイベントを横取りすることになるから、
アプリケーションレベルでやるならフックを仕掛ける (DLL Injection など) か、
あるいはデバイスドライバのレベルでどうにかするという方法も考えられる。
2018/12/19(水) 14:20:16.58ID:RjqFkMVC0
ありがとうございます。

> ccchattttter や Keyboard Chattering Fix
さっそく、試してみました。
これらは、同じキーが連打された場合のみのキャンセルでしょうか?
違うキーが連続で誤入力されたりするので、その場合は対応できないかも?

フックするというのは、どうやるのかわかりませんが、ちょっと調べてみます。
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行目の 二重の中括弧は何を意味してる?
どう解釈するの?
2018/12/19(水) 15:04:48.65ID:wepwiZF/a
その制限c++14で撤廃してなかったけ(うろ覚え)
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} };
2018/12/19(水) 15:36:10.74ID:7xp8Igl8d
std::arrayのメンバーの初期化リストになってる可能性。
2018/12/19(水) 15:56:47.23ID:G6mG3us50
外側の括弧はコンストラクタへの実引数ならびを囲む
内側の括弧はコンストラクタの仮引数がinitializer_listであることに対応
= は、一時オブジェクトを作ってコピコンかムブコンという意味だったが
C++17でこの意味が廃止され単なる過去の名残となった
2018/12/19(水) 16:12:08.78ID:Yvire5cb0
>>719
つまり、2. の方は、以下の記法の ()を{} に変えただけということ?

3. std::array<int, 5> n ( {1, 2, 3, 4, 5} );

つまり、コンストラクタ名を Xxxx とすれば、
Xxxx( リスト型 &list1 ) {
}

みたいな事になってるということかな。
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] みたいなメンバがあるけど、ここにコンパイラが初期値を
書き込むんだろうか。どういう仕様なんだろう。
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" };
723デフォルトの名無しさん (アウアウカー Sa6b-SUIi)
垢版 |
2018/12/19(水) 16:41:39.76ID:yP9yNdl2a
贅沢なお願いなんですが
OpenGLを使って
注視点を行列で回転させたいのですが
どなたか参考になるサイトやソースが
あれば頂けないでしょうか
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
2018/12/19(水) 20:44:10.56ID:C9bIO99C0
>>692
>バスアーキ
古い8086とかだったら書籍に載っていましたが、最近はどうでしょうか?わけのわからない仕様書しかないのでしょうか?
2018/12/19(水) 23:24:40.75ID:vlvnW3Fh0
PCならPCI Expressだな
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{・・・};
みたいなことも書けるようになったのかな。
2018/12/20(木) 08:10:15.22ID:qx3kfu0o0
>>727
その通りだと思う
集成体以外で{}を使う初期化を一様初期化と呼ぶそう
https://cpprefjp.github.io/lang/cpp11/uniform_initialization.html
729デフォルトの名無しさん (アウアウカー Sa51-9xJM)
垢版 |
2018/12/20(木) 11:33:42.81ID:pms7BJwLa
贅沢なお願いなんですが
OpenGLを使って
注視点を行列で回転させたいのですが
どなたか参考になるサイトやソースが
あれば頂けないでしょうか
2018/12/20(木) 13:08:35.90ID:zDBAwFJg0
>>729
確か、古くからある OpenGL の場合、GL_XXXX 見たいな定数を指定して、ViewMatrix
見たいなのを設定するんだったはず。
731デフォルトの名無しさん (ワッチョイ 6d23-1q7i)
垢版 |
2018/12/20(木) 13:58:01.82ID:P4Rv6f7s0
>>723
http://www.mss.co.jp/technology/report/pdf/19-08.pdf
http://www.mss.co.jp/technology/report/pdf/18-07.pdf
2018/12/20(木) 14:06:29.86ID:Stk2JPJbp
>>729
スレチ
ここにもゲ製作技術板にもGLスレあるだろ
あとは線形代数の勉強しろとしか

>>730
そんな手順の話じゃないと思うぞ
2018/12/20(木) 14:19:20.62ID:BW/0WCvFM
>>729
スレチ
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]のところは、宣言してある変数ならなんでもいいみたいですが、何者かよく分かりません。
2018/12/20(木) 23:27:13.41ID:KfVqhHRV0
ラムダ式でぐぐれ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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