次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part134
http://mevius.5ch.net/test/read.cgi/tech/1516406742/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.102【環境依存OK】
http://mevius.5ch.net/test/read.cgi/tech/1509780815/
■長いソースを貼るときはここへ。■
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++相談室 part135
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 5fcb-q1Nq)
2018/03/31(土) 20:20:06.25ID:o3PNwIlC0133デフォルトの名無しさん (ワッチョイ ff34-ecZa)
2018/04/14(土) 13:25:03.37ID:RVvtBgPf0 DOS並にコンソールがクソな環境も珍しいよな
unixベースのシェルに比べるとこんな貧相なものがよく生き残ってこれたとおもふ
unixベースのシェルに比べるとこんな貧相なものがよく生き残ってこれたとおもふ
134デフォルトの名無しさん (ワッチョイ a304-x9ai)
2018/04/14(土) 14:27:12.94ID:AqyGMwU/0 >>132
ウィンドウズの話だけど、threadヘッダのスリープは起こし忘れが少ない気がする。
ウィンドウズの話だけど、threadヘッダのスリープは起こし忘れが少ない気がする。
135デフォルトの名無しさん (ワッチョイ 7f4c-IyeK)
2018/04/14(土) 22:00:06.17ID:7AzbU2hj0 未だにGUIがまともにならないLinuxも珍しいよな
136デフォルトの名無しさん (ワッチョイ cf81-ycE0)
2018/04/14(土) 22:16:23.39ID:B3QB9Fpb0 >>135
君に期待しても良いのかな?
君に期待しても良いのかな?
137デフォルトの名無しさん (ワッチョイ bf7e-ULsc)
2018/04/14(土) 22:26:38.67ID:jn5/AQ8F0 誰かがデザイナ雇わないとな
138デフォルトの名無しさん (ワッチョイ 1302-ycE0)
2018/04/14(土) 22:31:21.78ID:Tt8LTURP0 まともを定義せよ
139デフォルトの名無しさん (ワッチョイ bf7e-ULsc)
2018/04/14(土) 22:47:45.04ID:jn5/AQ8F0 美しいGUIか使用上十分なGUIか
140デフォルトの名無しさん (ワッチョイ ff68-LJHW)
2018/04/14(土) 23:04:06.39ID:WAEnZz2X0 Class A
{
void A(B* &b)
{
}
};
{
void A(B* &b)
{
}
};
141デフォルトの名無しさん (ワッチョイ cf81-ycE0)
2018/04/14(土) 23:06:11.46ID:B3QB9Fpb0 毎日使う上では美しさはいらない。シンプルで頼む
142デフォルトの名無しさん (ワッチョイ ff68-LJHW)
2018/04/14(土) 23:08:51.81ID:WAEnZz2X0 済みません、途中送信してしまいました・・・
Class A
{
B* _b;
void A(B* &b)
{
_b = b;
_b = new B();
}
};
B* b;
A* a = new A(b);
b←newされてない・・・
クラスAのコンストラクタでクラスBのインスタンスを受け取り
newで新たなインスタンスを作成したうえで返そうと思います。
しかし上記のようなプログラムを作成してもインスタンスbは
newされてませんでした。
どうしたらbをnewしたうえで返すことができるようになるでしょうか?
Class A
{
B* _b;
void A(B* &b)
{
_b = b;
_b = new B();
}
};
B* b;
A* a = new A(b);
b←newされてない・・・
クラスAのコンストラクタでクラスBのインスタンスを受け取り
newで新たなインスタンスを作成したうえで返そうと思います。
しかし上記のようなプログラムを作成してもインスタンスbは
newされてませんでした。
どうしたらbをnewしたうえで返すことができるようになるでしょうか?
143デフォルトの名無しさん (ワッチョイ 839b-qSfG)
2018/04/14(土) 23:15:39.02ID:EkNosKh20 void A(B** b)
{
*b = new B();
}
でいいんでないの
{
*b = new B();
}
でいいんでないの
144デフォルトの名無しさん (アウアウカー Sa47-to91)
2018/04/14(土) 23:23:21.44ID:9kNArSDya 馬鹿だから分からないんだが教えて
インスタンス渡してからnewするのはなぜ?
ポインタを参照にする意味とは?
インスタンス渡してからnewするのはなぜ?
ポインタを参照にする意味とは?
145デフォルトの名無しさん (ワッチョイ 3323-QADq)
2018/04/15(日) 00:33:02.73ID:/OvgYAab0 >>142
> void A(B* &b)
> {
> _b = b;
> _b = new B();
> }
下の方は b = new B(); としたかったんじゃないのか
> void A(B* &b)
> {
> _b = b;
> _b = new B();
> }
下の方は b = new B(); としたかったんじゃないのか
146デフォルトの名無しさん (ワッチョイ ff34-ecZa)
2018/04/15(日) 00:44:36.47ID:b/ktaKN+0 A(B*&b) {
b=new B();
_b=b;
}
頭悪いだろオマエラw
b=new B();
_b=b;
}
頭悪いだろオマエラw
147デフォルトの名無しさん (ワッチョイ ff34-ecZa)
2018/04/15(日) 00:52:36.30ID:b/ktaKN+0 A(B*&b){_b=b=new B();}
もしくは一発で書けば何の問題もおこらんよ
もしくは一発で書けば何の問題もおこらんよ
148デフォルトの名無しさん (ワッチョイ 3323-QADq)
2018/04/15(日) 00:57:54.63ID:/OvgYAab0 受け取ったインスタンスを全く使ってないがそれが意図した動作なのか
149デフォルトの名無しさん (ワッチョイ ff34-ecZa)
2018/04/15(日) 01:00:18.78ID:b/ktaKN+0 参照オブジェクトの概念がよくわかってない
学び直せと言いたい
学び直せと言いたい
150デフォルトの名無しさん (ワッチョイ 7fcb-1i0h)
2018/04/15(日) 01:04:57.02ID:VAOccv/70 >>148
インスタンスなんて受け取ってないぞ
インスタンスなんて受け取ってないぞ
151デフォルトの名無しさん (ワッチョイ 3323-QADq)
2018/04/15(日) 01:09:03.26ID:/OvgYAab0152デフォルトの名無しさん (ワッチョイ ff34-ecZa)
2018/04/15(日) 01:19:33.61ID:b/ktaKN+0 それにしてもbをnewするとかイミフ
何もしてないじゃんw
何もしてないじゃんw
153デフォルトの名無しさん (ワッチョイ ff34-ecZa)
2018/04/15(日) 01:22:46.36ID:b/ktaKN+0 古いインスタンスを_bに格納して新しいインスタンスをbに返したいのか
新しいインスタンスを作成してbと_b両方に返したいのか
どっちなんだよ
新しいインスタンスを作成してbと_b両方に返したいのか
どっちなんだよ
154デフォルトの名無しさん (ワッチョイ 3323-QADq)
2018/04/15(日) 01:22:49.52ID:/OvgYAab0155デフォルトの名無しさん (ワッチョイ ff34-ecZa)
2018/04/15(日) 01:30:17.78ID:b/ktaKN+0 _b=new B() は見当たるが
b=new B() ←こんな記述は見当たらないぞ
嘘もたいがいにしとけや
b=new B() ←こんな記述は見当たらないぞ
嘘もたいがいにしとけや
156デフォルトの名無しさん (ワッチョイ ff34-ecZa)
2018/04/15(日) 01:39:29.12ID:b/ktaKN+0 >>142
コイツのソース見る限りbに対しては何もしてないでしょ
コイツのソース見る限りbに対しては何もしてないでしょ
157デフォルトの名無しさん (スプッッ Sd1f-QADq)
2018/04/15(日) 03:35:09.27ID:mYZtkoVNd158デフォルトの名無しさん
2018/04/15(日) 06:03:36.65 >>142
> void A(B* &b)
> {
> _b = b;
> _b = new B();
> }
void A(B* &b)
{
B* new_b = new B();
b = new_b;
_b = new_b;
}
こういうのは愚直に書けばええんや
> void A(B* &b)
> {
> _b = b;
> _b = new B();
> }
void A(B* &b)
{
B* new_b = new B();
b = new_b;
_b = new_b;
}
こういうのは愚直に書けばええんや
159デフォルトの名無しさん (ワッチョイ a393-R+MU)
2018/04/15(日) 08:25:34.99ID:IUBKEb9a0 AのコンストラクタにBへのポインタのポインタだか参照だかを渡さなくても
Bへのポインタと関係ないAのコンストラクタ、と
A内部のBメンバへのポインタを返すゲッタ、との
組み合わせにする方が素直でねぇか?
class A
{
B* _b;
public:
A() {_b = new B();}
B* ptr_b() const {return _b;}
};
int main(void)
{
A* a = new A();
B* b = a->ptr_b();
return 0;
}
別に確保した「Bを格納すべき領域へのポインタ」を受け取って、
Aの初期化時にBの配置newを行わせたい、という意図かもしれないけど、
元の質問から想像を広げすぎてるよね。
Bへのポインタと関係ないAのコンストラクタ、と
A内部のBメンバへのポインタを返すゲッタ、との
組み合わせにする方が素直でねぇか?
class A
{
B* _b;
public:
A() {_b = new B();}
B* ptr_b() const {return _b;}
};
int main(void)
{
A* a = new A();
B* b = a->ptr_b();
return 0;
}
別に確保した「Bを格納すべき領域へのポインタ」を受け取って、
Aの初期化時にBの配置newを行わせたい、という意図かもしれないけど、
元の質問から想像を広げすぎてるよね。
160デフォルトの名無しさん (ワッチョイ 6fe7-8Ez4)
2018/04/15(日) 10:01:16.50ID:6WpjLuna0 Aが_bをdeleteするために管理するだけのクラスだとしたらスマポ使えという話になる
161デフォルトの名無しさん (ワッチョイ 638b-1zQp)
2018/04/15(日) 10:57:43.04ID:Yi/sDJN50162142 (ワッチョイ ff68-LJHW)
2018/04/15(日) 11:01:19.87ID:GeT3puOg0 舌足らずでもうしわけありませんでした・・・
クラスBのインスタンスをクラスAで処理していくためにコンストラクタでクラスBの
インスタンスを参照受け取りする仕様にしました。
大半のケースではそのまま処理して終わり、なのですが
まれに受け取ったクラスBのインスタンスをnewし直す必要がありまして
その際受け取ったクラスAのメンバ変数 _b をnewしても受け取り元のインスタンスを
newできないことに悩んでいました
ただオブジェクト指向の観点から見るとあまり美しいプログラミングスタイルでは無いのかもしれませんね。
クラスBのインスタンスはクラスA内部で完全隔離処理するようにした方がいいのかもしれません
クラスBのインスタンスをクラスAで処理していくためにコンストラクタでクラスBの
インスタンスを参照受け取りする仕様にしました。
大半のケースではそのまま処理して終わり、なのですが
まれに受け取ったクラスBのインスタンスをnewし直す必要がありまして
その際受け取ったクラスAのメンバ変数 _b をnewしても受け取り元のインスタンスを
newできないことに悩んでいました
ただオブジェクト指向の観点から見るとあまり美しいプログラミングスタイルでは無いのかもしれませんね。
クラスBのインスタンスはクラスA内部で完全隔離処理するようにした方がいいのかもしれません
163デフォルトの名無しさん (ワッチョイ 6fe7-8Ez4)
2018/04/15(日) 11:19:51.96ID:6WpjLuna0 BをAしか使わないならAの中に隔離する
他でも使う必要があって、Aの外部でBの寿命を管理してるなら、AにrefreshB()みたいなBをnewし直した時に渡し直す関数を用意する
でいいんじゃないの
本当にBをnewし直す(メモリ上再配置する)必要があるならだけど
実はB自体にreset()用意するだけで済む話のように見える
他でも使う必要があって、Aの外部でBの寿命を管理してるなら、AにrefreshB()みたいなBをnewし直した時に渡し直す関数を用意する
でいいんじゃないの
本当にBをnewし直す(メモリ上再配置する)必要があるならだけど
実はB自体にreset()用意するだけで済む話のように見える
164デフォルトの名無しさん (アウアウウー Sae7-ycE0)
2018/04/15(日) 12:55:30.01ID:eVQUY7wra c++じゃポインタのこともインスタンスっていうのか
165デフォルトの名無しさん (ブーイモ MMa7-ffqK)
2018/04/15(日) 14:39:37.81ID:rsq+XQj0M >>164
2レス前も読めないのか
2レス前も読めないのか
166デフォルトの名無しさん (アウアウウー Sae7-LJHW)
2018/04/15(日) 18:30:19.93ID:51qZxk5sa 理解不足を言い換えてミスしてない風にするのが流行ってるのかな
167デフォルトの名無しさん (ワッチョイ 832d-to91)
2018/04/15(日) 22:24:39.46ID:vR7s+ZvT0 ミスって理解不足からくるじゃん
168デフォルトの名無しさん (アウアウオー Sadf-vcwQ)
2018/04/15(日) 23:39:26.36ID:Mp1WrgTGa 質問あるのですが、
同一PC内の画面機能と処理機能のプロセス間通信はどうやるのが便利ですか?
画面更新速度は100ms周期くらいです。
共有メモリがいいと思ったんですが、ソケット推してる人がいてもやもや
アクセス速度とかNICの通信量とか考えると共有メモリ一択な気がするんですが、どうなんでしょうか?
パイプとマップドメモリはメリット無いので考えていません。
同一PC内の画面機能と処理機能のプロセス間通信はどうやるのが便利ですか?
画面更新速度は100ms周期くらいです。
共有メモリがいいと思ったんですが、ソケット推してる人がいてもやもや
アクセス速度とかNICの通信量とか考えると共有メモリ一択な気がするんですが、どうなんでしょうか?
パイプとマップドメモリはメリット無いので考えていません。
169デフォルトの名無しさん (ワッチョイ a350-96DA)
2018/04/15(日) 23:42:01.12ID:sXJBpbWg0 何を重視するか次第
170デフォルトの名無しさん (ワッチョイ 738a-Z7Iu)
2018/04/15(日) 23:43:30.47ID:qZPDSYA20 共有メモリ=マップドファイルのファイル無しやで
171デフォルトの名無しさん (アウアウウー Sae7-LJHW)
2018/04/15(日) 23:43:31.62ID:51qZxk5sa そもそも別にする理由は何?
どんなものを想定してるの?
プロセスは常に1対1なの
どんなものを想定してるの?
プロセスは常に1対1なの
172デフォルトの名無しさん (ワッチョイ a350-96DA)
2018/04/15(日) 23:44:26.87ID:sXJBpbWg0 OSは?
173デフォルトの名無しさん (アウアウウー Sae7-LJHW)
2018/04/15(日) 23:47:06.30ID:51qZxk5sa 同一PC内なのにソケットとNICの通信量って何か関係あるの?
174はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 6f6f-ycE0)
2018/04/15(日) 23:53:07.49ID:aQ0USPFo0175デフォルトの名無しさん (ワッチョイ 3323-QADq)
2018/04/16(月) 00:28:23.74ID:TXxoP4/a0 unix domain ソケットがお手軽で便利だけど
時代に合わせてパイプか tcp かなあ
Windows でしか使わないならならcom使うのも簡便
時代に合わせてパイプか tcp かなあ
Windows でしか使わないならならcom使うのも簡便
176デフォルトの名無しさん
2018/04/16(月) 01:39:01.50 共有メモリだとリングバッファとか排他とか自分で作り込まなきゃいけんやろ
ソケットならそのへん考えなくてええやん
ソケットならそのへん考えなくてええやん
177デフォルトの名無しさん (ワッチョイ ff34-ecZa)
2018/04/16(月) 02:21:40.05ID:kGNRvKds0 windowsはファイルマッピングオブジェクトでしょ
パイプでさえSYNCHRONIZE特権指定できないゴミなんだから
パイプでさえSYNCHRONIZE特権指定できないゴミなんだから
178デフォルトの名無しさん (ワッチョイ bf7e-ULsc)
2018/04/16(月) 03:12:35.45ID:HsbFINqV0 標準入出力最強説
179デフォルトの名無しさん (ドコグロ MMdf-fgqO)
2018/04/16(月) 06:43:39.39ID:kK8liqj6M unix domain socket なんて使ったことないな
名前空間としてファイルの指定がいるし将来違うマシン間で動作させる時に変更量が多いしtcp/udpに比べてデメリット多くね?
名前空間としてファイルの指定がいるし将来違うマシン間で動作させる時に変更量が多いしtcp/udpに比べてデメリット多くね?
180デフォルトの名無しさん (アウアウカー Sa47-vcwQ)
2018/04/16(月) 07:06:03.32ID:irvwqMpDa >>173,174
共有メモリは例えば/dev/shmのRAM領域にあるメモリマップですよね
同一PC内のソケットのボーレートってほぼクロック数なんですか?
同一PC内の通信であったとしてもネットワークドライバの実装するプロトコルスタックを経由してしまうので、
その分のオーバーヘッドの分だけ速度が落ちる、という解釈ですが
共有メモリは例えば/dev/shmのRAM領域にあるメモリマップですよね
同一PC内のソケットのボーレートってほぼクロック数なんですか?
同一PC内の通信であったとしてもネットワークドライバの実装するプロトコルスタックを経由してしまうので、
その分のオーバーヘッドの分だけ速度が落ちる、という解釈ですが
181デフォルトの名無しさん (アウアウカー Sa47-vcwQ)
2018/04/16(月) 07:17:01.48ID:irvwqMpDa iperfとかで同一PC内で速度測ったらどれくらいいきます?
(1Gbpsな気が)
(1Gbpsな気が)
182デフォルトの名無しさん (ワッチョイ 3323-QADq)
2018/04/16(月) 08:09:11.43ID:TXxoP4/a0183デフォルトの名無しさん (ワッチョイ 3323-QADq)
2018/04/16(月) 08:09:52.14ID:TXxoP4/a0 >>180
あなた知識が色々おかしいので何も考えずに教えられたとおりにした方が良いですよ
あなた知識が色々おかしいので何も考えずに教えられたとおりにした方が良いですよ
184デフォルトの名無しさん (ワッチョイ ff23-ImQH)
2018/04/16(月) 12:07:30.90ID:1SlhlQTu0 昨日の安全確保支援士の試験にC++が出ていたが、メンバ変数にm_が付いていた。
さすがにポインタのpなどは付いていないが、ちょっと意外だった。
さすがにポインタのpなどは付いていないが、ちょっと意外だった。
185デフォルトの名無しさん (アウアウカー Sa47-vcwQ)
2018/04/16(月) 18:56:27.96ID:aeexu7jXa >>183
同一PCのTCP通信はどういう経路通るの?
同一PCのTCP通信はどういう経路通るの?
186デフォルトの名無しさん (ブーイモ MMff-LJHW)
2018/04/16(月) 20:00:43.80ID:Iff3OzVTM クライアント→OS→サーバかその逆
187デフォルトの名無しさん (ワッチョイ f349-ycE0)
2018/04/17(火) 17:50:44.77ID:YRsoLN600 未だにシステムハンガリアンなやつみたいに変なのとも
うまく付き合うのがC++使いのスキルの1つだかんね
うまく付き合うのがC++使いのスキルの1つだかんね
188デフォルトの名無しさん (ワッチョイ ffbd-zmT2)
2018/04/18(水) 00:38:34.88ID:1Mo3YyI90 ↑ボゾビット
189デフォルトの名無しさん (ワッチョイ 738a-Z7Iu)
2018/04/18(水) 02:18:47.96ID:whM0Cl8U0 Windowsのネットワーク関係APIはkernel内に実装されていない
後は判るな?
後は判るな?
190デフォルトの名無しさん (ワッチョイ 135b-ycE0)
2018/04/18(水) 07:02:39.34ID:bX/oR0u10 ネットワーク関係に限らずAPIはすべてサブシステムだね
191デフォルトの名無しさん (ワッチョイ 9aeb-FlaZ)
2018/04/20(金) 23:48:17.59ID:MBksKo4b0 class Sample{
private:
const double val{0.0}
public:
void set(double v){
static_cast<double>(this->val) = v;
}
};
VS2015での話なのですが、こんな感じのコードを先日見かけまして
static_castでメンバ変数のconst外しができているように見えるのですけど、この動作は合法なものなのでしょうか?
試しにwandboxのclang 7.0で試して見た所当然のようにコンパイルエラーになったのですが・・・
private:
const double val{0.0}
public:
void set(double v){
static_cast<double>(this->val) = v;
}
};
VS2015での話なのですが、こんな感じのコードを先日見かけまして
static_castでメンバ変数のconst外しができているように見えるのですけど、この動作は合法なものなのでしょうか?
試しにwandboxのclang 7.0で試して見た所当然のようにコンパイルエラーになったのですが・・・
192はちみつ餃子 ◆8X2XSCHEME (ワッチョイ b66f-9jjH)
2018/04/21(土) 00:23:55.79ID:7j/Wt31X0193デフォルトの名無しさん (ワッチョイ e3b3-ey0r)
2018/04/21(土) 00:37:31.88ID:WobodGQW0 const char *a = "hoge";
const char *b = "hoge";
この2つのポインタがa == bになることは保障されていますか?
const char *b = "hoge";
この2つのポインタがa == bになることは保障されていますか?
194デフォルトの名無しさん (ワッチョイ 578a-/Wij)
2018/04/21(土) 00:42:18.95ID:F9SE4HSu0 ない
195デフォルトの名無しさん (ワッチョイ 9aeb-FlaZ)
2018/04/21(土) 00:47:40.36ID:5uFute1E0 >>192
やっぱりそうですよね、何か特別な動作かとも思ったのですがVC++のバグか仕様なんですね・・・
やっぱりそうですよね、何か特別な動作かとも思ったのですがVC++のバグか仕様なんですね・・・
196デフォルトの名無しさん (ワッチョイ b727-9jjH)
2018/04/21(土) 06:06:21.46ID:pETeS31u0 >>191
VS2017では警告されるぞ(おそらくVS2015でも)
cl 191.cpp /c /W4
Microsoft(R) C/C++ Optimizing Compiler Version 19.13.26129 for x86
Copyright (C) Microsoft Corporation. All rights reserved.
191.cpp
191.cpp(7): warning C4213: 非標準の拡張機能が使用されています: 左辺値でキャストしました。
後はわかるな?
VS2017では警告されるぞ(おそらくVS2015でも)
cl 191.cpp /c /W4
Microsoft(R) C/C++ Optimizing Compiler Version 19.13.26129 for x86
Copyright (C) Microsoft Corporation. All rights reserved.
191.cpp
191.cpp(7): warning C4213: 非標準の拡張機能が使用されています: 左辺値でキャストしました。
後はわかるな?
197デフォルトの名無しさん (ワッチョイ 9abd-Jtac)
2018/04/21(土) 06:22:18.02ID:wsxrLs1Z0 ポインタや参照のconst外しは合法だが
なぜ合法なのか(合法にせざるを得なかったのか)というとmemory aliasing状況下での最適化の限界に関する
ラクダ本ばりに長い議論を要する
悪寒、
プログラミング言語C++か何かでは古いライブラリのconst付け忘れにコード修正無しで対応できるYO!みたいな簡単な説明しかないが
しかし左辺値のキャストというのはどうなの?
なぜ合法なのか(合法にせざるを得なかったのか)というとmemory aliasing状況下での最適化の限界に関する
ラクダ本ばりに長い議論を要する
悪寒、
プログラミング言語C++か何かでは古いライブラリのconst付け忘れにコード修正無しで対応できるYO!みたいな簡単な説明しかないが
しかし左辺値のキャストというのはどうなの?
198デフォルトの名無しさん (ワッチョイ 36e7-8q6u)
2018/04/21(土) 08:02:29.99ID:POwjcYl50 static_cast<double>(this->val)自体は合法でしょ
this->valと同じ値のdouble一時オブジェクトができるだけ
おかしいのはそれに代入してること
this->valと同じ値のdouble一時オブジェクトができるだけ
おかしいのはそれに代入してること
199デフォルトの名無しさん (ワッチョイ b727-9jjH)
2018/04/21(土) 11:34:19.85ID:pETeS31u0 int x;
(float&)x = 1;
(float&)x = 1;
200デフォルトの名無しさん (ワッチョイ b727-9jjH)
2018/04/21(土) 11:34:55.76ID:pETeS31u0 途中で書き込まれてしまった
int x;
(float&)x = 1; //well-formed
(float )x = 1; //ill-formed
int x;
(float&)x = 1; //well-formed
(float )x = 1; //ill-formed
201デフォルトの名無しさん (アウアウカー Sa43-gLlN)
2018/04/22(日) 17:24:24.80ID:RLzEBpTGa std:stringを引数や戻り値で使う場合、値渡しでも大丈夫ですか?
202デフォルトの名無しさん (ワッチョイ 8723-wmjz)
2018/04/22(日) 17:29:11.38ID:xCJicIF50 大丈夫
203デフォルトの名無しさん (ワッチョイ 9a34-lUQu)
2018/04/22(日) 18:29:08.58ID:i5tL4+9s0 stringは内部に参照カウンタを保持した共有リファレンサを持っているから&&使用せずに直で渡しても特に副作用もなく何の問題もないよ
204デフォルトの名無しさん (ワッチョイ b704-9jjH)
2018/04/22(日) 18:53:47.99ID:cFbiqY2T0 今どきのstringはヒープじゃなくスタックを使ったりもするね
鬼のように最適化されている
鬼のように最適化されている
205デフォルトの名無しさん (ワッチョイ 8723-wmjz)
2018/04/22(日) 19:26:19.72ID:xCJicIF50 >>203
おじいちゃんそれ大昔の話ですよ
おじいちゃんそれ大昔の話ですよ
206デフォルトの名無しさん (ワッチョイ 9a34-lUQu)
2018/04/22(日) 19:52:27.54ID:i5tL4+9s0207デフォルトの名無しさん (アウアウカー Sa43-gLlN)
2018/04/22(日) 20:00:35.45ID:pGMCB93ha ありがとうございます
勝手にデストラクタでdeleteされるとか色々考えていましたがそこは先人たちが考慮して作られているのですね
勝手にデストラクタでdeleteされるとか色々考えていましたがそこは先人たちが考慮して作られているのですね
208デフォルトの名無しさん (ブーイモ MMba-BC+p)
2018/04/22(日) 20:19:16.41ID:5qvptAAaM いやいや老害に騙されちゃだめですよ。
参照カウントなstringは大昔に禁止されているので、ちゃんと参照や右辺値渡等を使いましょう
参照カウントなstringは大昔に禁止されているので、ちゃんと参照や右辺値渡等を使いましょう
209デフォルトの名無しさん (ワッチョイ 9a34-lUQu)
2018/04/22(日) 20:23:51.32ID:M8qmSLCN0210デフォルトの名無しさん (ワッチョイ 36e7-8q6u)
2018/04/22(日) 20:58:25.32ID:ltJDDxzZ0 COWなstringは効率が悪くてマルチスレッドとの相性が最悪なのでとっくの昔に打ち捨てられました
規格のCOW実装許容するための記述はC++11でバッサリ捨てられました
今はCOWは規格違反です
規格のCOW実装許容するための記述はC++11でバッサリ捨てられました
今はCOWは規格違反です
211デフォルトの名無しさん (ワッチョイ 9a34-lUQu)
2018/04/22(日) 21:39:50.50ID:M8qmSLCN0 なん…だと!?
212デフォルトの名無しさん
2018/04/22(日) 21:51:37.63 おじいちゃんw
213デフォルトの名無しさん (ワッチョイ 9abd-Jtac)
2018/04/22(日) 21:54:34.58ID:w7SgV4Bf0 値渡しや戻り値で戻せることと、
std::string内部での(ヒープ)メモリ管理の詳細は関係なくね??
引数や戻り値としてスタックに構造体を積めるようになった時点で値渡しや戻り値で戻せることとはほぼ自明
(よほど変なコピコンを定義してコピーをわざと不首尾に終わらせない限りそれはできる
std::string内部での(ヒープ)メモリ管理の詳細は関係なくね??
引数や戻り値としてスタックに構造体を積めるようになった時点で値渡しや戻り値で戻せることとはほぼ自明
(よほど変なコピコンを定義してコピーをわざと不首尾に終わらせない限りそれはできる
214デフォルトの名無しさん (ワッチョイ 8723-wmjz)
2018/04/22(日) 23:24:42.33ID:xCJicIF50 >>213
まあそうだけれど無駄なコピーはなるべく避けましょうということで
まあそうだけれど無駄なコピーはなるべく避けましょうということで
215デフォルトの名無しさん (ワッチョイ 9ab3-bxMY)
2018/04/22(日) 23:50:24.01ID:usC+gOtq0 今時のコンパイラは、そこらの人間よりよっぽど高度な最適化をするから、素直で単純なコードを書くと速くなる。
効率化するつもりで余計なことをすると、コンパイラの最適化を妨げて、かえって効率が落ちたりする。
本当に重要な部分は実測しながら試行錯誤、それ以外はできるだけ素直なコードを書く、ってあたりが基本。
効率化するつもりで余計なことをすると、コンパイラの最適化を妨げて、かえって効率が落ちたりする。
本当に重要な部分は実測しながら試行錯誤、それ以外はできるだけ素直なコードを書く、ってあたりが基本。
216デフォルトの名無しさん (ワッチョイ 7acb-462F)
2018/04/23(月) 01:28:01.46ID:C1tu+nEe0 stringを値渡しせずにconst参照等々で渡すことはc++の基本なので、素直で単純なコードの部類に入ると思うが。
217デフォルトの名無しさん (ワッチョイ 8723-wmjz)
2018/04/23(月) 01:32:17.81ID:Lxhtz3Yj0 って、あたりが基本(`・ω・´)キリッ
道化かw
道化かw
218デフォルトの名無しさん (ワッチョイ 578a-/Wij)
2018/04/23(月) 01:37:49.36ID:voecBiJS0 先生!OpenMPへの展開も自動でやってくれるんですか?
219デフォルトの名無しさん (ワッチョイ 8723-wmjz)
2018/04/23(月) 01:46:26.60ID:Lxhtz3Yj0 値渡しを素直なコードとか言う人って他人の書いたコード読まないんだろうな
宿題以外で何か書いたことあるのか
宿題以外で何か書いたことあるのか
220デフォルトの名無しさん (ワッチョイ db2d-tR7F)
2018/04/23(月) 02:04:07.25ID:SgzxVTg+0 const type &
221デフォルトの名無しさん (ワッチョイ 9ab3-bxMY)
2018/04/23(月) 04:33:47.47ID:WjBjSqCj0 const参照渡しが基本だったのって C++11 以前の世界の話だよね…
幸い、近頃はそんなコードをあまり読まずに済んでるけど。
余計なことをしない、ってのが大事なんだよ。
参照でなきゃいけない理由がなければ、参照を使うべきじゃないんだ。
幸い、近頃はそんなコードをあまり読まずに済んでるけど。
余計なことをしない、ってのが大事なんだよ。
参照でなきゃいけない理由がなければ、参照を使うべきじゃないんだ。
222デフォルトの名無しさん (ワッチョイ 8a7e-H4fB)
2018/04/23(月) 06:33:47.30ID:awXEdMZR0 どこの世界に生きてる人?
223デフォルトの名無しさん (ワッチョイ 578a-/Wij)
2018/04/23(月) 07:20:47.54ID:voecBiJS0 どんな作品を作っているのかなぁ?
224デフォルトの名無しさん (ワッチョイ 4ecc-KT7J)
2018/04/23(月) 08:32:33.12ID:EDVnvY5w0 初心者です。
今書いてるプログラムをコンパイルして実行すると、エラーが出たり出なかったり謎の挙動を起こします
最初はエラーが出て、その後数回、コードを一切変えずコンパイルしなおして実行すると急にエラーが出ず上手く行ったりします。
これって何が原因なのでしょうか…
こういう事ってよくあるのですか?
今書いてるプログラムをコンパイルして実行すると、エラーが出たり出なかったり謎の挙動を起こします
最初はエラーが出て、その後数回、コードを一切変えずコンパイルしなおして実行すると急にエラーが出ず上手く行ったりします。
これって何が原因なのでしょうか…
こういう事ってよくあるのですか?
225デフォルトの名無しさん (ワッチョイ 8723-wmjz)
2018/04/23(月) 08:34:14.27ID:Lxhtz3Yj0 キチガイ発言はツイッターかブログでどうぞ
226デフォルトの名無しさん (ワッチョイ 8723-wmjz)
2018/04/23(月) 08:35:11.51ID:Lxhtz3Yj0227デフォルトの名無しさん (ワッチョイ b704-9jjH)
2018/04/23(月) 10:17:10.24ID:Hh6TN2Aq0 >>224
そのエラーとやら、もしかして警告か?
エラーは直すまで何度コンパイルしても絶対に通らない
警告はコンパイルが完了しオブジェクトファイルができる
そのコンパイルとやら、もしかしてビルドか? それともmakeか?
ビルドやmakeはオブジェクトファイルとソースファイルの日付を比較して
ソースファイルのほうが古いとコンパイルを省く
だから警告が出てからもう一度ビルドしても同じ警告は出ない
おそらく、こういうことだと見受ける
そのエラーとやら、もしかして警告か?
エラーは直すまで何度コンパイルしても絶対に通らない
警告はコンパイルが完了しオブジェクトファイルができる
そのコンパイルとやら、もしかしてビルドか? それともmakeか?
ビルドやmakeはオブジェクトファイルとソースファイルの日付を比較して
ソースファイルのほうが古いとコンパイルを省く
だから警告が出てからもう一度ビルドしても同じ警告は出ない
おそらく、こういうことだと見受ける
228デフォルトの名無しさん (ワッチョイ 237f-9jjH)
2018/04/23(月) 10:24:23.61ID:48PNhEnX0 変数を初期化してないんだろ
229デフォルトの名無しさん (ドコグロ MM83-cuLp)
2018/04/23(月) 12:27:19.92ID:8odlZZv8M230デフォルトの名無しさん (ワッチョイ b704-9jjH)
2018/04/23(月) 13:44:26.09ID:Hh6TN2Aq0 >>229
日本語でしゃべってくれ
日本語でしゃべってくれ
231デフォルトの名無しさん (ワッチョイ 5b9b-Th9u)
2018/04/23(月) 13:58:46.97ID:1JtTwXqR0 実行してるということはコンパイルは通ってるということだと思う
つまりコンパイルの問題ではなく、コンパイルエラーではないだろうという推測
つまりコンパイルの問題ではなく、コンパイルエラーではないだろうという推測
232デフォルトの名無しさん (ワッチョイ 8723-wmjz)
2018/04/23(月) 13:58:59.41ID:Lxhtz3Yj0■ このスレッドは過去ログ倉庫に格納されています
ニュース
- パワフル女性世界3位に高市首相 米誌フォーブス選出 [蚤の市★]
- テレ朝本社から社外スタッフの男性が転落し死亡 テレビ朝日がコメント [ひかり★]
- 【米FRB】0.25%利下げ決定 3会合連続、雇用下支え [蚤の市★]
- アイヌ民族の「戸籍簿」がヤフオクで落札 団体「人権無視」と憤り [蚤の市★]
- 訪米認証「ESTA」、SNS利用情報の提出義務化へ 日本人観光客も対象に [蚤の市★]
- 「身を切る改革」どこへ? 維新「身内」への公金支出、地方でも続々 [蚤の市★]
- 【画像】東京都民「助けて!満員電車もう無理いいぃぃいいぃぃぃいいいいいぃ😭」!!!! [732289945]
- 【誰食】おせち料理で確実にゴミ箱行きになる食材1位、「黒豆」 [748563222]
- もしジャンプ漫画のヒロインたちが作品別で相手してくれる風俗店があったら一番行ってみたいのは
- 一般人「起きなきゃ…」 俺ら「寝ようかなzzz」
- 【悲報】山上徹也、社会人時代にも彼女がいた模様 [455031798]
- 世の中お金掛かる趣味ばかりだからエアガンだけで虫ぶち殺す事でもしようかな
