次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part132
http://mevius.5ch.net/test/read.cgi/tech/1507561894/
このスレもよろしくね。
【初心者歓迎】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
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
探検
C++相談室 part133
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 1fcf-H1rY)
2017/11/24(金) 16:52:50.43ID:WoNXR2ax0240デフォルトの名無しさん (ワッチョイ b5b3-9GJZ)
2017/12/02(土) 21:04:09.64ID:TmTI6KJY0 Linuxは日本に入ってきたのが早かったし、最初期に一気に広まった。
日本がLinux王国というのは間違いではない。
しかし、それを生かせなかった。
なんでだろ。
日本がLinux王国というのは間違いではない。
しかし、それを生かせなかった。
なんでだろ。
241デフォルトの名無しさん (ワッチョイ 5d78-ToxZ)
2017/12/02(土) 21:06:05.55ID:IxwO1O770 PC98がMSDOSを採用し続けたせい
>>240
PC98 のリソースが freebsd に注がれ、linux への移植が遅れたため
PC98 のリソースが freebsd に注がれ、linux への移植が遅れたため
243デフォルトの名無しさん (ワッチョイ b5b3-9GJZ)
2017/12/02(土) 21:25:07.65ID:TmTI6KJY0 当時書店でBoWとか売ってたけど、そのせいで遅れたような感じはしなかったけどなあ。
むしろLinuxでX11動かすのに四苦八苦してた頃、すでにコンソールで日本語が使えてたのは、
UNIXの人たちのおかげのような気がする。
むしろLinuxでX11動かすのに四苦八苦してた頃、すでにコンソールで日本語が使えてたのは、
UNIXの人たちのおかげのような気がする。
244デフォルトの名無しさん (ワッチョイ b5b3-9GJZ)
2017/12/02(土) 21:38:52.02ID:TmTI6KJY0 検索してみるとコンパックショックが1994年なんだな。
DOS/V機自作したのが1993年だからもうちょっと前かと思ってたけど。
正規流通前にショップが輸入して売ってたんだろか。
DOS/V機自作したのが1993年だからもうちょっと前かと思ってたけど。
正規流通前にショップが輸入して売ってたんだろか。
245デフォルトの名無しさん (ワッチョイ 6680-9RvO)
2017/12/02(土) 22:17:42.90ID:UE7qzU9L0 その当時、漏れは、Windows 3.1 で、UNIX プログラミングやってた。
テキストエディタ MIFES を使っていた
Oracle で、銀行とか、新幹線とか
テキストエディタ MIFES を使っていた
Oracle で、銀行とか、新幹線とか
247デフォルトの名無しさん (ワッチョイ 398a-fjL1)
2017/12/02(土) 23:44:03.24ID:fU6v9rJN0 PANIXの遅さはすごかったな
248デフォルトの名無しさん (ワッチョイ ea34-YBdU)
2017/12/03(日) 01:07:06.72ID:ti2y6lW/0 NECは当時経営陣が自社の社員が開発したソフトを押し退けてMSのソフトをごり押ししてたからな
終わっているよな
終わっているよな
249デフォルトの名無しさん (ワッチョイ a580-o8PC)
2017/12/03(日) 01:40:24.23ID:MtUE51Zo0 >>248
そんなに糞だったのか自社製ソフト
そんなに糞だったのか自社製ソフト
250デフォルトの名無しさん (ワッチョイ b5b3-HgL3)
2017/12/03(日) 08:02:49.76ID:YKcJD0pm0 派生クラスのデストラクタでなにもしないなら、
基底クラスのデストラクタを仮想にしなくてもいいですか?
基底クラスのデストラクタを仮想にしなくてもいいですか?
251デフォルトの名無しさん (ワッチョイ 9e9f-GQwd)
2017/12/03(日) 08:56:43.57ID:I8IEjg5G0 >>250
自由にクラスを設計すればいいよ。
デストラクタを仮想クラスを必ず定義しておかなければならないとか、そんな義務はない。
あらかじめ定義しておくと、仕様変更があった時などで、派生クラスで、デストラクタを使いたい時に、基底クラスをいじらずに定義できるだけだよ。
仮に、複数人で、アプリを作ってるなら、基底クラス担当がいたとして、わざわざ基底クラスをいじりますよーとか連絡しないでいいという利点はあるかもな。
もし、基底クラス担当で、他人に基底クラスを触らせたくないなら定義しておいたほうがいい。
基底クラスをいじられて、変なバグとか追加されても困るw
自由にクラスを設計すればいいよ。
デストラクタを仮想クラスを必ず定義しておかなければならないとか、そんな義務はない。
あらかじめ定義しておくと、仕様変更があった時などで、派生クラスで、デストラクタを使いたい時に、基底クラスをいじらずに定義できるだけだよ。
仮に、複数人で、アプリを作ってるなら、基底クラス担当がいたとして、わざわざ基底クラスをいじりますよーとか連絡しないでいいという利点はあるかもな。
もし、基底クラス担当で、他人に基底クラスを触らせたくないなら定義しておいたほうがいい。
基底クラスをいじられて、変なバグとか追加されても困るw
252デフォルトの名無しさん (ワッチョイ eab3-YtI1)
2017/12/03(日) 09:05:51.65ID:pXIsIngK0 >>251
頓珍漢すぎて笑えない...
頓珍漢すぎて笑えない...
253デフォルトの名無しさん (ワッチョイ a66e-hJGX)
2017/12/03(日) 09:26:11.28ID:hz5Rl7cd0 うん、これは頭悪い発言スレでやればウケてた
254デフォルトの名無しさん (ワッチョイ a580-o8PC)
2017/12/03(日) 09:31:06.52ID:MtUE51Zo0 >>250
規格は知らんが問題が発生するコンパイラは存在しないと思う。が、デストラクタで何もしないというのはデータメンバーも含まれるからね。
派生クラスにstd::stringのメンバーが居るだけでアウト
そんな事を気にするより素直にvirtual付けるか基底クラスでdeleteされないようにする方が有意義に時間を使えると思うよ。
規格は知らんが問題が発生するコンパイラは存在しないと思う。が、デストラクタで何もしないというのはデータメンバーも含まれるからね。
派生クラスにstd::stringのメンバーが居るだけでアウト
そんな事を気にするより素直にvirtual付けるか基底クラスでdeleteされないようにする方が有意義に時間を使えると思うよ。
255デフォルトの名無しさん (ワッチョイ 8abd-17nN)
2017/12/03(日) 09:49:40.40ID:lnc2VqP30 >>254
>派生クラスにstd::stringのメンバーが居るだけでアウト
それだけでアウトなのではない
DerivedがBaseの派生だとして、実体はDerivedなのにコンパイラからはBaseにしか見えないケースで問題になるだけ
DerivedをDerivedとして宣言したらスコープを抜けたらちゃんとDerivedのデストラは呼ばる
問題なやつの例:
Derived g_d;
void foo() {
Base* p = (Base*)&g_d;
/*...*/
delete p; // Base::~Base()は呼ばれるがDerived::~Derived()は呼ばれない
}
>派生クラスにstd::stringのメンバーが居るだけでアウト
それだけでアウトなのではない
DerivedがBaseの派生だとして、実体はDerivedなのにコンパイラからはBaseにしか見えないケースで問題になるだけ
DerivedをDerivedとして宣言したらスコープを抜けたらちゃんとDerivedのデストラは呼ばる
問題なやつの例:
Derived g_d;
void foo() {
Base* p = (Base*)&g_d;
/*...*/
delete p; // Base::~Base()は呼ばれるがDerived::~Derived()は呼ばれない
}
256デフォルトの名無しさん (ワッチョイ 8abd-17nN)
2017/12/03(日) 09:53:01.97ID:lnc2VqP30 ごめ、一点抜けた
誤: 実体はDerivedなのにコンパイラからはBaseにしか見えないケース
正: 実体はDerivedなのにコンパイラからはBaseにしか見えない状態で当該オブジェクトが破棄されるケース
なお、(規格でどういう言葉使いをしているかわ知らんが、)
Derivedが多態性をきちんと実装してあるなら、Derivedは「コンパイラからはBaseにしか見えないケース」には該当しない
誤: 実体はDerivedなのにコンパイラからはBaseにしか見えないケース
正: 実体はDerivedなのにコンパイラからはBaseにしか見えない状態で当該オブジェクトが破棄されるケース
なお、(規格でどういう言葉使いをしているかわ知らんが、)
Derivedが多態性をきちんと実装してあるなら、Derivedは「コンパイラからはBaseにしか見えないケース」には該当しない
257デフォルトの名無しさん (ワッチョイ 8abd-17nN)
2017/12/03(日) 09:53:10.45ID:lnc2VqP30 ごめ、一点抜けた
誤: 実体はDerivedなのにコンパイラからはBaseにしか見えないケース
正: 実体はDerivedなのにコンパイラからはBaseにしか見えない状態で当該オブジェクトが破棄されるケース
なお、(規格でどういう言葉使いをしているかわ知らんが、)
Derivedが多態性をきちんと実装してあるなら、Derivedは「コンパイラからはBaseにしか見えないケース」には該当しない
誤: 実体はDerivedなのにコンパイラからはBaseにしか見えないケース
正: 実体はDerivedなのにコンパイラからはBaseにしか見えない状態で当該オブジェクトが破棄されるケース
なお、(規格でどういう言葉使いをしているかわ知らんが、)
Derivedが多態性をきちんと実装してあるなら、Derivedは「コンパイラからはBaseにしか見えないケース」には該当しない
258デフォルトの名無しさん (ワッチョイ a580-o8PC)
2017/12/03(日) 09:57:14.66ID:MtUE51Zo0259デフォルトの名無しさん (ワッチョイ 8abd-17nN)
2017/12/03(日) 09:58:13.14ID:lnc2VqP30 大事なことなので2回ry
まあ一般論として、>>255の問題なやつがプログラム内に存在しないことの確実で安価で
ウザく無い検出方法というものはこの世に存在しないので、
継承関係を使うならデストラクタを見たらvirtualにするパブロフの犬に徹するべきではある
まあ一般論として、>>255の問題なやつがプログラム内に存在しないことの確実で安価で
ウザく無い検出方法というものはこの世に存在しないので、
継承関係を使うならデストラクタを見たらvirtualにするパブロフの犬に徹するべきではある
260デフォルトの名無しさん (ワッチョイ b5b3-HgL3)
2017/12/03(日) 10:48:30.75ID:YKcJD0pm0 >delete p; // Base::~Base()は呼ばれるがDerived::~Derived()は呼ばれない
~Derived()が呼ばれないけど、
呼ばれたとして何も仕事をしないのであれば、呼ばれなくても不都合ないのでは?
~Derived()が呼ばれないけど、
呼ばれたとして何も仕事をしないのであれば、呼ばれなくても不都合ないのでは?
261デフォルトの名無しさん (ワッチョイ b5b3-HgL3)
2017/12/03(日) 11:01:45.65ID:YKcJD0pm0 なにも仕事をしないデストラクタという前提がおかしいのですか?
262デフォルトの名無しさん (スップ Sdea-t0Iq)
2017/12/03(日) 11:06:05.82ID:OF+rgUqYd メイヤーズが言ってる
ポリモーフィズムを目的とした基底クラスはvirtualデストラクタにする
それ以外はしないってルールでいいだろ
ポリモーフィズムを目的とした基底クラスはvirtualデストラクタにする
それ以外はしないってルールでいいだろ
263デフォルトの名無しさん (オッペケ Srbd-MUmZ)
2017/12/03(日) 11:12:49.55ID:TXqrw7wLr264はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5e6f-bpph)
2017/12/03(日) 13:16:36.90ID:15ZXM/fw0 >>260
このあたりで話題になったことがある。
https://echo.5ch.net/test/read.cgi/tech/1478440682/651-
結論から言うと不都合は有る。
少なくとも言語仕様上は未定義に踏み込むのでクラッシュしても泣かない強い心を持ち合わせているのでなければやらない方が良い。
このあたりで話題になったことがある。
https://echo.5ch.net/test/read.cgi/tech/1478440682/651-
結論から言うと不都合は有る。
少なくとも言語仕様上は未定義に踏み込むのでクラッシュしても泣かない強い心を持ち合わせているのでなければやらない方が良い。
265デフォルトの名無しさん (スプッッ Sdea-gD61)
2017/12/03(日) 13:39:28.04ID:JZXkgVFzd >>254
暗黙的なメンバー変数の破棄が呼ばれるべきってのはあるけど、何もアウトなことはないぞ?
暗黙的なメンバー変数の破棄が呼ばれるべきってのはあるけど、何もアウトなことはないぞ?
266デフォルトの名無しさん (ワッチョイ a580-o8PC)
2017/12/03(日) 13:42:24.66ID:MtUE51Zo0 >>265
お前質問読んでないだろ
お前質問読んでないだろ
267デフォルトの名無しさん (ササクッテロロ Spbd-Wo5e)
2017/12/03(日) 13:52:29.29ID:nekR+Iu8p268デフォルトの名無しさん (ワッチョイ eab3-YtI1)
2017/12/03(日) 16:06:00.67ID:pXIsIngK0 >>267
> 継承関係を使うなら
> 継承関係を使うなら
269デフォルトの名無しさん (オッペケ Srbd-MUmZ)
2017/12/03(日) 16:29:14.83ID:gYv1de+4r 継承関係を使う=vtbl
と考えてしまうような無知な者には理解するのは難しい
他人の作ったものも構わずナマポをdeleteしておいて「virtualにしておけば安全」というのはマッチポンプと言えよう
と考えてしまうような無知な者には理解するのは難しい
他人の作ったものも構わずナマポをdeleteしておいて「virtualにしておけば安全」というのはマッチポンプと言えよう
270デフォルトの名無しさん (ワッチョイ eab3-YtI1)
2017/12/03(日) 16:39:32.89ID:pXIsIngK0 正直何を言いたいのかはよくわからん w
まあ>>251みたいな頓珍漢野郎なんだろう...
まあ>>251みたいな頓珍漢野郎なんだろう...
271デフォルトの名無しさん (ワッチョイ b5b3-4T5h)
2017/12/03(日) 17:09:40.29ID:bFUfg9md0 >>270
いや、この件に関してはお前の方が無知だぞ
いや、この件に関してはお前の方が無知だぞ
272デフォルトの名無しさん (ワッチョイ b5b3-HgL3)
2017/12/03(日) 17:12:44.51ID:YKcJD0pm0 結局のところ
何も仕事をしないデストラクタはあるが、(空のデストラクタかつメンバ変数なし)
基底クラスのデストラクタだけで派生クラスをdeleteすることが未定義だから
基底クラスのデストラクタは仮想にしないとダメという理解でよろしいでしょうか。
何も仕事をしないデストラクタはあるが、(空のデストラクタかつメンバ変数なし)
基底クラスのデストラクタだけで派生クラスをdeleteすることが未定義だから
基底クラスのデストラクタは仮想にしないとダメという理解でよろしいでしょうか。
273デフォルトの名無しさん (ワッチョイ ea34-YBdU)
2017/12/03(日) 17:28:04.25ID:ti2y6lW/0 デストラクタは仮想にしておくことにより通常の仮想関数と違って継承元辿って全自動ですべて呼び出されるから基底はやることなくても以後継承で実装を変更することがあるのなら空の{}で括っておいたほうが良いよ
274デフォルトの名無しさん (ワッチョイ 66eb-YNoK)
2017/12/03(日) 17:49:35.39ID:PHD8+7P20 =defaultじゃだめなん?
275デフォルトの名無しさん (ワッチョイ eab3-YtI1)
2017/12/03(日) 17:50:12.92ID:pXIsIngK0 >>271
まあそう思ってりゃいいんじゃね? w
まあそう思ってりゃいいんじゃね? w
276デフォルトの名無しさん (ワッチョイ b5b3-4T5h)
2017/12/03(日) 19:52:12.45ID:bFUfg9md0 もしかして本当に継承使ったPOD型に思い至ってないのか
277デフォルトの名無しさん (ワッチョイ 8abd-17nN)
2017/12/03(日) 19:55:36.14ID:lnc2VqP30278デフォルトの名無しさん (ワッチョイ 5deb-JjO2)
2017/12/03(日) 20:15:25.15ID:mwO2JS4O0 もうここ完全に初心者様質問無しにしろよ
上級者様もそれで満足だろ
上級者様もそれで満足だろ
>>278
それは困ります…
それは困ります…
280デフォルトの名無しさん (ワッチョイ 8abd-17nN)
2017/12/03(日) 20:21:06.32ID:lnc2VqP30 >>278
漏れのように語りたい初心者は一体どうすれば…orz
漏れのように語りたい初心者は一体どうすれば…orz
281デフォルトの名無しさん (ワッチョイ a66e-hJGX)
2017/12/03(日) 21:05:16.05ID:hz5Rl7cd0 >>278
自殺乙
自殺乙
282デフォルトの名無しさん (ワッチョイ 3d04-4NBu)
2017/12/04(月) 12:17:24.94ID:gpGY1qga0 祝・C++17発行!
283デフォルトの名無しさん (ブーイモ MM81-ZS+9)
2017/12/04(月) 12:38:47.34ID:vRsxBueGM これまでinlineを関数に適用するとインライン展開されるんじゃなかったでしたっけ?
c++17の説明を読むと翻訳単位で共通のアドレスになるって書いてあるのだけど仕様が変わった?
c++17の説明を読むと翻訳単位で共通のアドレスになるって書いてあるのだけど仕様が変わった?
284デフォルトの名無しさん (オッペケ Srbd-MUmZ)
2017/12/04(月) 12:45:21.76ID:i0vOJ/Wzr 何を言っているんだお前は
ISO/IEC 14882:1998 7.1.2/p4
An inline function with external linkage shall have the same address in all translation units
ISO/IEC 14882:1998 7.1.2/p4
An inline function with external linkage shall have the same address in all translation units
285デフォルトの名無しさん (ブーイモ MM81-ZS+9)
2017/12/04(月) 12:56:42.17ID:vRsxBueGM >>284
ナンダッテー
ナンダッテー
286デフォルトの名無しさん (ドコグロ MM12-3/o9)
2017/12/04(月) 13:08:03.78ID:VjK2Ds3GM 以前void f(A &a, int num)をa.f(num)みたいに呼べる機能が追加されるとかされないとかを見た気がするんだけど知ってる人いたらURLか機能名を教えてほしい
287デフォルトの名無しさん (ワッチョイ b5c8-Syir)
2017/12/04(月) 13:10:08.18ID:zqEI2rJ60 unified call syntax
288デフォルトの名無しさん (ドコグロ MM12-3/o9)
2017/12/04(月) 13:22:55.68ID:VjK2Ds3GM >>287
ありがとう
ありがとう
289デフォルトの名無しさん (ワッチョイ 3d04-4NBu)
2017/12/04(月) 14:58:45.86ID:gpGY1qga0 ウニファイドコールシンタックスは死んだのだ。
よみがえれ!
よみがえれ!
290デフォルトの名無しさん (ワッチョイ ea34-YBdU)
2017/12/04(月) 15:48:40.92ID:hZXt5yd00 残念だったな
291デフォルトの名無しさん (ワッチョイ 3d04-4NBu)
2017/12/04(月) 16:16:56.14ID:gpGY1qga0 はう。
accelerated c++ をやっている人いませんか?
今やりなおしているけれども、5年ほど前の自分の回答をなくしてしまった…
4章章末練習問題4-6の回答を、よろしければお見せいただけませんか?
この章、EOLine と EOFile を std::cin の eof フラグ 1 個でなんとかしようとしているのが非常にまずいと分かりましたが
逆に教科書掲載のプログラムでうまくいっているのが不思議です…取り組まれた方のコメントをお待ちしています…
普通 getline() をつかうんだろうけれども、なんでこんなに変てこな実装になっているのだろう?
教科書の内容 https://ideone.com/rdtZWG
>>44-45 悪書を薦めてしまいました、ごめんなさい
今やりなおしているけれども、5年ほど前の自分の回答をなくしてしまった…
4章章末練習問題4-6の回答を、よろしければお見せいただけませんか?
この章、EOLine と EOFile を std::cin の eof フラグ 1 個でなんとかしようとしているのが非常にまずいと分かりましたが
逆に教科書掲載のプログラムでうまくいっているのが不思議です…取り組まれた方のコメントをお待ちしています…
普通 getline() をつかうんだろうけれども、なんでこんなに変てこな実装になっているのだろう?
教科書の内容 https://ideone.com/rdtZWG
>>44-45 悪書を薦めてしまいました、ごめんなさい
293デフォルトの名無しさん (ワッチョイ a580-o8PC)
2017/12/04(月) 19:13:30.50ID:gGPHcFu90 >>289
メソッドチェインしたいだけなら拡張メソッドの方が筋がいいだろ。そっち応援してやれよ
メソッドチェインしたいだけなら拡張メソッドの方が筋がいいだろ。そっち応援してやれよ
294デフォルトの名無しさん (ワントンキン MM7a-Syir)
2017/12/04(月) 19:27:49.25ID:I5+tBH1vM 拡張メソッドってデコレータパターンで充分なのに、なんで最近の言語には結構ついてんだろ。
>>292
>>44-45
結局のところ、std::stringstream を使うべきだという結論になりました。(std::stringstream は今回初めて知った)
教科書本文(64ページ、項4.2.3、70ページ、項4.5)
https://ideone.com/F761bo
73ページの練習問題4-5の方は
https://ideone.com/H9iE4j
このように >>42 は多大な努力を強いられる教科書ですので、お勧めです、強くなりたい人はどうぞ
私はもう強くなくてもいいから、この本はもういいです…
教科書をお持ちでない人には関係ない話ですみません
>>44-45
結局のところ、std::stringstream を使うべきだという結論になりました。(std::stringstream は今回初めて知った)
教科書本文(64ページ、項4.2.3、70ページ、項4.5)
https://ideone.com/F761bo
73ページの練習問題4-5の方は
https://ideone.com/H9iE4j
このように >>42 は多大な努力を強いられる教科書ですので、お勧めです、強くなりたい人はどうぞ
私はもう強くなくてもいいから、この本はもういいです…
教科書をお持ちでない人には関係ない話ですみません
296デフォルトの名無しさん (ワッチョイ a66e-hJGX)
2017/12/04(月) 21:39:45.95ID:k2OIwnad0297デフォルトの名無しさん (ワッチョイ 3d04-4NBu)
2017/12/04(月) 21:40:55.38ID:gpGY1qga0 ん?
298デフォルトの名無しさん (ワッチョイ 8abd-17nN)
2017/12/04(月) 22:43:49.08ID:5AQkRrK70 >>151
template の話もお願いしていいですか?
型安全を優先するあまりに instantiate(これいい訳がないね) してまで、という思考と void * を許してしまう思考の両方について、比較していただくとうれしいんですけれども
template の話もお願いしていいですか?
型安全を優先するあまりに instantiate(これいい訳がないね) してまで、という思考と void * を許してしまう思考の両方について、比較していただくとうれしいんですけれども
>>168
std::make_shared はあっても unique 版はない、とかなんとか、そこらへんが徹底されていない、とか、確かあったような気が
std::make_shared はあっても unique 版はない、とかなんとか、そこらへんが徹底されていない、とか、確かあったような気が
>>150-152
ファイルのopen/close とか、RAII /デストラクタが Java にもあればなあ、と思っています。
あと、Java の syncronized って、結局、テキトーなダミー変数を mutex 代わりにしちゃう、とかありません?
ファイルのopen/close とか、RAII /デストラクタが Java にもあればなあ、と思っています。
あと、Java の syncronized って、結局、テキトーなダミー変数を mutex 代わりにしちゃう、とかありません?
>>101
>K&Rも「関数ポインタも使えるよ」としか書いて無い。あれはもっと力説されて然るべきだった。
これが本題かな?
いや、関数ポインタってそんなに特筆すべきものだったかな…むしろ setjmp()/longjmp() の方がインパクトが、ってこれはexception として広く採用されていましたっけね
いや、関数ポインタってコールバック(とvtable)は別として、何か使えるネタが他にあるかなって考えてました、今のところ思いつかないな…
>K&Rも「関数ポインタも使えるよ」としか書いて無い。あれはもっと力説されて然るべきだった。
これが本題かな?
いや、関数ポインタってそんなに特筆すべきものだったかな…むしろ setjmp()/longjmp() の方がインパクトが、ってこれはexception として広く採用されていましたっけね
いや、関数ポインタってコールバック(とvtable)は別として、何か使えるネタが他にあるかなって考えてました、今のところ思いつかないな…
>>99
>(instance.method()とstaticMethod(instance)の実行時の違いがほぼ無い、
うーん、Java で、これでもか、これでもか、と this が null でないことをチェックするのを読んだことがあります。
C++ だと(virtual でなければ)普通に this = 0 にして this->method() できちゃうんですが、この this の null チェックって、広く行われているのでしょうか?http://codepad.org/gtEBWFKR
>(instance.method()とstaticMethod(instance)の実行時の違いがほぼ無い、
うーん、Java で、これでもか、これでもか、と this が null でないことをチェックするのを読んだことがあります。
C++ だと(virtual でなければ)普通に this = 0 にして this->method() できちゃうんですが、この this の null チェックって、広く行われているのでしょうか?http://codepad.org/gtEBWFKR
これでおしまい
try〜catch はいいとして、finally って使いにくい、というか使い方がわからないんですが、finally って意味あるんでしょうか?
try〜catch はいいとして、finally って使いにくい、というか使い方がわからないんですが、finally って意味あるんでしょうか?
306デフォルトの名無しさん (オッペケ Srbd-MUmZ)
2017/12/05(火) 12:10:12.56ID:4pWc4df5r > RAII /デストラクタが Java にもあればなあ、と思っています
RAIIは7年前にジャバに入った筈だが
何を言っているのだろうか
RAIIは7年前にジャバに入った筈だが
何を言っているのだろうか
307はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5e6f-bpph)
2017/12/05(火) 18:56:58.67ID:+5IMShlD0 >>305
C++ 的にはなるべくデストラクタで後始末がつくようにやれというスタンスっぽい
C++ 的にはなるべくデストラクタで後始末がつくようにやれというスタンスっぽい
308はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5e6f-bpph)
2017/12/05(火) 19:00:20.98ID:+5IMShlD0 >>308
え!
え!
310デフォルトの名無しさん (ワッチョイ dee7-JjO2)
2017/12/05(火) 19:18:52.02ID:EmfbEE5b0 this->method()は(*this).method()と等価で、ぬるぽに*適用したらその時点で未定義だからアウト
311デフォルトの名無しさん (ワッチョイ c576-jUU9)
2017/12/05(火) 19:33:35.46ID:EFbqYV3B0 未定義だけどvirtualじゃなきゃ大抵動く
だからNULLチェックも意味がある
だからNULLチェックも意味がある
312デフォルトの名無しさん (ワッチョイ 398a-RK4k)
2017/12/05(火) 19:58:57.51ID:U9JLSPtA0 thisをNULLチェックするようになったらそれはもう終わってるコード
313デフォルトの名無しさん (ワッチョイ c576-jUU9)
2017/12/05(火) 20:02:17.22ID:EFbqYV3B0 終わってるヤツでも使えるようにする
よくあること
よくあること
314デフォルトの名無しさん (ワンミングク MM7a-o8PC)
2017/12/05(火) 20:52:26.72ID:sgxJpWORM >>313
呼び出されなくても泣くなよ
呼び出されなくても泣くなよ
315デフォルトの名無しさん (ドコグロ MM6d-YtI1)
2017/12/05(火) 20:53:39.04ID:TKR/EMkrM >>305
catchの中で再スローしてもとにかくリソースを解放したいとか普通にあるでしょ
catchの中で再スローしてもとにかくリソースを解放したいとか普通にあるでしょ
316デフォルトの名無しさん (ドコグロ MM12-YtI1)
2017/12/05(火) 21:07:41.41ID:njWV82p8M317デフォルトの名無しさん (ワッチョイ 398a-RK4k)
2017/12/05(火) 23:32:01.27ID:U9JLSPtA0 >>315
RAIIを徹底すればそんな危なっかしいことは不要
RAIIを徹底すればそんな危なっかしいことは不要
318デフォルトの名無しさん (ワッチョイ 36fb-MUmZ)
2017/12/05(火) 23:35:55.54ID:+TIDOo7u0319デフォルトの名無しさん (ワッチョイ 398a-RK4k)
2017/12/05(火) 23:52:38.14ID:U9JLSPtA0 >>300
std::make_uniqueがあるだろうが(C++14)
std::make_uniqueがあるだろうが(C++14)
320デフォルトの名無しさん (ワッチョイ 59e3-HgL3)
2017/12/05(火) 23:55:11.50ID:WoyHGfNJ0 返答を期待しないでただ聞いて文句言ってもらいたんですけど
03以来久し振りにc++いじってます
17だか20の最新仕様も未だにclassでgetter/setter定義しなきゃいけない仕様なんですかね?
C#のpropertyがあれば便利と思うんですけど。今あるか知りませんが
どうなんでしょ?今後の仕様も導入予定なし?
おやすみなさい
03以来久し振りにc++いじってます
17だか20の最新仕様も未だにclassでgetter/setter定義しなきゃいけない仕様なんですかね?
C#のpropertyがあれば便利と思うんですけど。今あるか知りませんが
どうなんでしょ?今後の仕様も導入予定なし?
おやすみなさい
321デフォルトの名無しさん (ワッチョイ 6681-Syir)
2017/12/06(水) 00:03:17.02ID:nXK3hnHv0 そもそも状態を露出するな
322はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5e6f-bpph)
2017/12/06(水) 01:18:56.49ID:s33DVBsR0 >>311
いや、俺は意図通りに動かない場合にガチで遭遇したことあるからこれはホントにお勧めしない。
いや、俺は意図通りに動かない場合にガチで遭遇したことあるからこれはホントにお勧めしない。
323デフォルトの名無しさん (ワッチョイ 3d04-4NBu)
2017/12/06(水) 01:21:27.27ID:+0bHqE6f0 >>320
そもそも、せったげったってそんなに重要か?
そもそも、せったげったってそんなに重要か?
324デフォルトの名無しさん (ワッチョイ ea33-MbHU)
2017/12/06(水) 01:48:19.95ID:K0RLdWNW0325はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5e6f-bpph)
2017/12/06(水) 02:05:35.10ID:s33DVBsR0 一応 >>324 を解説しておくと、 this が真のときはもちろん真だし、
this が偽 (ヌル) のときは未定義なのでどういう挙動をしてもかまわないので真と解釈してもええやろという超推論で常に真として扱われる。
this が偽 (ヌル) のときは未定義なのでどういう挙動をしてもかまわないので真と解釈してもええやろという超推論で常に真として扱われる。
326デフォルトの名無しさん (ワッチョイ b5b3-9GJZ)
2017/12/06(水) 04:07:36.86ID:hjP5HWFz0 ++thisってやるとどうなるんだろうねえ。
327デフォルトの名無しさん (ワッチョイ a66e-hJGX)
2017/12/06(水) 05:07:17.55ID:yhpve1PE0 できないよ
thisは常にconst修飾されている
禿本1stではthisへの代入があったんだけどね
thisは常にconst修飾されている
禿本1stではthisへの代入があったんだけどね
328デフォルトの名無しさん (ワッチョイ 36fb-MUmZ)
2017/12/06(水) 07:19:10.64ID:Fjj6BXu50 >thisは常にconst修飾されている
それは規格のどこに書いてあるのですか
それは規格のどこに書いてあるのですか
329デフォルトの名無しさん (スプッッ Sdea-gD61)
2017/12/06(水) 08:02:56.90ID:vAzWmOhld thisってprvalueじゃないのか?
330デフォルトの名無しさん (ワッチョイ fa96-JU5h)
2017/12/06(水) 08:25:21.60ID:ROyOilcp0 This is a pen.
331デフォルトの名無しさん (ワッチョイ 6679-mNEL)
2017/12/06(水) 08:33:58.89ID:BltAOSs70 ISO、C++17の仕様「ISO/IEC 14882:2017」を発行
https://mag.osdn.jp/17/12/05/171500
「ISO/IEC 14882:2017」
https://www.iso.org/standard/68564.html
https://mag.osdn.jp/17/12/05/171500
「ISO/IEC 14882:2017」
https://www.iso.org/standard/68564.html
332デフォルトの名無しさん (ワッチョイ a66e-hJGX)
2017/12/06(水) 10:56:56.20ID:yhpve1PE0 >>329
ご指摘どうも
struct X
{
void f()
{
decltype(auto) that(this);
that = nullptr; //ok
}
void g()
{
X* const it(nullptr);
decltype(auto) that(it);
that = nullptr; //error
}
};
確かにそのようで
ご指摘どうも
struct X
{
void f()
{
decltype(auto) that(this);
that = nullptr; //ok
}
void g()
{
X* const it(nullptr);
decltype(auto) that(it);
that = nullptr; //error
}
};
確かにそのようで
333デフォルトの名無しさん (ワッチョイ a580-o8PC)
2017/12/06(水) 11:12:02.00ID:J84WjEud0 それはメンバー関数の修飾によっても変わるやろ
334デフォルトの名無しさん (ワッチョイ a66e-hJGX)
2017/12/06(水) 11:21:40.65ID:yhpve1PE0 void f() constのことを言っているなら見当違いだが
335デフォルトの名無しさん (スプッッ Sdea-gD61)
2017/12/06(水) 11:44:06.58ID:vAzWmOhld *thisじゃなくてthisのことだよね?
何かで「const pointerである」って読んだことあるような気もするけど、
そもそもprvalueにしか思えない。
何かで「const pointerである」って読んだことあるような気もするけど、
そもそもprvalueにしか思えない。
336デフォルトの名無しさん (ワッチョイ a66e-hJGX)
2017/12/06(水) 12:20:51.70ID:yhpve1PE0 this = だの &this なんてことは考えもしないので気がつかなかった
337デフォルトの名無しさん (ワッチョイ ea34-YBdU)
2017/12/06(水) 13:26:30.44ID:+UwbONVA0 this is it
338デフォルトの名無しさん (ワッチョイ 5d78-ToxZ)
2017/12/06(水) 16:04:03.08ID:S418wH960 this, this... this...
339デフォルトの名無しさん (ワッチョイ 6a12-JjO2)
2017/12/06(水) 18:31:30.07ID:Kh6EF+Se0 =0とかじゃなくてpureとかそのまま書ければいいのに
そもそもなんで0入れるんだ
そもそもなんで0入れるんだ
340デフォルトの名無しさん (ワッチョイ dee7-JjO2)
2017/12/06(水) 20:25:22.49ID:EpXMgW7A0 vtblの関数ポインタをNULLにセットするっていうK&R時代の発想で決まった文法
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 最新版Z級クソ映画ランキングが決定! [牛丼★]
- 「1800万円の売り上げゼロに…」中国インバウンドに特化の宿の今 ★2 [蚤の市★]
- 【音楽】松山千春、女性っぽい名前に親恨んだ「名簿には必ず女の方に入ってる。情けなかったりもしたけどね」 [湛然★]
- 公用車カーナビのNHK受信料「全額免除を」 千葉市議会、国に制度創設求める意見書可決 [少考さん★]
- 【食】「シャウエッセンは焼くべからず」暗黙のルールを破り売上高過去最高…日本ハム社員たちが「夜味」にかけた情熱 [ぐれ★]
- 【芸能】加藤あいが9年ぶり広告出演 ドリンクのアンバサダー「愛用者なのでうれしい」 [湛然★]
- 清少納言「>>2は>>4」
- 作家「元草津町議の支援者達に謝罪を求める声があるが間違い。支援者は被害者を選ばない。2018年秋、伊藤詩織さんを支えねばと思った」 [932029429]
- 変な人「俺は正しい!お前らは間違っている!」←大体こいつのほうが迷惑で間違ってる件について
- ココアさん好き好き大好き
- ハンコ押してくれよ
- 🥺🥺🥺🥺🥺🥺🥺🥺
