[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2ch.scのread.cgiへ]
Update time : 03/25 20:45 / Filesize : 142 KB / Number-of Response : 589
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C++相談室 part123



1 名前:デフォルトの名無しさん mailto:sage [2016/02/21(日) 16:36:27.08 ID:jZESqUY+.net]
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレに
お願いします。

前スレ
C++相談室 part122
peace.2ch.net/test/read.cgi/tech/1453557975/

このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.97【環境依存OK】
peace.2ch.net/test/read.cgi/tech/1439849418/

■長いソースを貼るときはここへ。■
 codepad.org/
 ideone.com/

331 名前:デフォルトの名無しさん mailto:sage [2016/03/10(木) 10:36:48.16 ID:OLUNjZSr.net]
>>330
この仕様ってポインタに対しても有効?
以前似たような質問が議論されてたんだけど。
echo.2ch.net/test/read.cgi/tech/1439849418/184

332 名前:デフォルトの名無しさん mailto:sage [2016/03/10(木) 11:13:34.09 ID:l944yzKo.net]
330じゃないけどポインタもscalar typeだから同じくゼロ初期化でしょ
でもvalue initializeルールに依存するようなクラスは書くべきじゃないなあ
echo.2ch.net/test/read.cgi/tech/1439849418/184
をNode node;ってやっちゃったらやっぱりnode.nodeは不定だよ
こんなコードは書かずにちゃんとコンストラクタを書いて明示的にnullptrで初期化しなくちゃいかん

333 名前:デフォルトの名無しさん mailto:sage [2016/03/10(木) 11:23:42.71 ID:mBEuB6ly.net]
デストラクター作ってPODを諦めてるのに、適切に初期化するコンストラクター無いとか
ただのバグでしかない

334 名前:デフォルトの名無しさん [2016/03/10(木) 11:46:11.58 ID:xbWf2tod.net]
やっぱりvc2012でも2013でもxはゼロで初期化されません
バグですか
gccではゼロになります

335 名前:デフォルトの名無しさん mailto:sage [2016/03/10(木) 13:35:05.45 ID:l944yzKo.net]
バグだね
>>308のBはxの初期値が重要ならこれもバグ

336 名前:デフォルトの名無しさん mailto:sage [2016/03/10(木) 18:43:26.84 ID:uK8a0ubO.net]
VCの規格無視はいつもの事らしいから気にすんな

337 名前:デフォルトの名無しさん mailto:sage [2016/03/10(木) 20:58:27.62 ID:l944yzKo.net]
調べたらこのバグは2012年6月にはもう報告されているね
https://connect.microsoft.com/VisualStudio/feedback/details/746973/incorrect-c-11-value-initialization-for-type-with-implicitly-declared-but-non-trivial-default-constructor
VC++ 2015 RCでやっと直ったらしい

338 名前:デフォルトの名無しさん [2016/03/10(木) 21:21:03.49 ID:wKO6hiHF.net]
そもそもが、int()で0だなんて馬鹿げたルールができたばっかりに...

339 名前:デフォルトの名無しさん mailto:sage [2016/03/10(木) 21:38:31.66 ID:kxB40Mc+.net]
マイクロソフト「C++11対応は2015 Update 2から本気出す」



340 名前:デフォルトの名無しさん mailto:sage [2016/03/10(木) 22:09:45.41 ID:1z8FCjXU.net]
>>331
有効
using P = int *;
P p{};
はp==nullptrになる

341 名前:デフォルトの名無しさん mailto:sage [2016/03/10(木) 22:59:23.79 ID:XIXQ4NCN.net]
変数の初期値がどうなるかというだけの話でこんな議論になるのはC++ぐらいだろうなぁ。

342 名前:デフォルトの名無しさん mailto:sage [2016/03/11(金) 11:55:53.38 ID:+X87dz7B.net]
値か0の初期化を当たり前にし、初期化なしを例外記述にする方向性なのだろう。
今のところ(バグがあるので)値初期化を信じず、
未初期化を前提に書けと言うのは、ある意味正しいのかもしれないが、
考え方としては逆行しているね。

343 名前:デフォルトの名無しさん mailto:sage [2016/03/11(金) 12:52:11.72 ID:Y6ECzuws.net]
ある意味正しいじゃなくてパフォーマンスを考慮すると未初期化がデフォなのはC++としては完全に正しいんだよ
0初期化がデフォになってしまったらCを継承したC++の利点が薄れてしまう
value initializationこそがC++の思想に逆行してると思う

344 名前:デフォルトの名無しさん mailto:sage [2016/03/11(金) 13:05:18.46 ID:kWA4jyXp.net]
>>308
そもそも非POD型をメンバーに持つPOD型は非POD型になるだろ。

cpplover.blogspot.jp/2010/06/c0xpod.html
>さらに、非PODな非staticデータメンバーを持たないこと。

345 名前:デフォルトの名無しさん mailto:sage [2016/03/11(金) 13:10:43.94 ID:vYMpLkUm.net]
コンストラクタの強制なんかを見ると、
うっかり未初期化の値を使うことによる不具合を防ぐって
言語思想も含まれてるでしょ。
となると、単純な値にも何らかの初期値が保証される方向性もアリかと。

初期値は保証されるが、そのことによるパフォーマンス上のペナルティがない、
プログラマが初期化すればデフォルト初期値の処理は発生しない、
という仕様なら八方丸くおさまると思ったり。

346 名前:デフォルトの名無しさん mailto:sage [2016/03/11(金) 13:12:37.67 ID:+X87dz7B.net]
>>343
正しいなら実装側でstack protectorなんてデフォルトにならないよ。
現状もパフォーマンスが欲しいときだけ別にするというのが基本だ。

347 名前:デフォルトの名無しさん [2016/03/11(金) 13:13:39.58 ID:2/u08KSA.net]
基本強制初期化で
int a = noinit;
みたいにしたら初期化しない方式で

348 名前:デフォルトの名無しさん mailto:sage [2016/03/11(金) 13:21:02.38 ID:zH9xDiQd.net]
デフォは未初期化で記述方法によっては初期化もしてくれるって方針だろ。

その記述方法が紛らわしいのと、規格通り実装しないのがメジャーなコンパイラの1つなのが問題

もう少し分かりやすい記述なら良いのに、現状だとデフォルトconstructorが呼ばれているようにしか見えない。

349 名前:デフォルトの名無しさん mailto:sage [2016/03/11(金) 14:21:15.08 ID:49om0mRF.net]
>>347
Dでは
int i = void; // デフォルトの初期値を省く

コンパイラのオプションで従来動作も選べればすぐ導入可能だと思うがね



350 名前:デフォルトの名無しさん mailto:sage [2016/03/11(金) 15:25:46.64 ID:dykTweBs.net]
>>349
だからどうしたって話

int i{0}; とタイプすることもできないのか

351 名前:デフォルトの名無しさん mailto:sage [2016/03/11(金) 15:35:13.63 ID:kWA4jyXp.net]
int i(); でもいいよ。

352 名前:デフォルトの名無しさん [2016/03/11(金) 15:36:56.24 ID:kuBG6faz.net]
int i = 0;
while(std::cin >> i) std::cout << i;
こんな馬鹿っぽい初期化いらんし邪魔だ

353 名前:デフォルトの名無しさん mailto:sage [2016/03/11(金) 18:27:14.35 ID:0EDCO8WT.net]
>>351
ウソを書くな

354 名前:デフォルトの名無しさん mailto:sage [2016/03/11(金) 22:49:53.55 ID:YlUxysAB.net]
>>351
それは関数宣言だと何度

355 名前:デフォルトの名無しさん mailto:sage [2016/03/11(金) 22:52:02.91 ID:RA7SR1be.net]
お前ら一体 何を言ってるんだ

356 名前:デフォルトの名無しさん mailto:sage [2016/03/11(金) 22:56:28.69 ID:YlUxysAB.net]
>>344
その通りだけど、ゼロ初期化とは何の関係も無い件

357 名前:デフォルトの名無しさん mailto:sage [2016/03/11(金) 23:02:09.89 ID:4G2Dcq4h.net]
15年C++書いてきて
別案件でC#と数ヶ月戯れたけど
C++はやっぱり変態だと感じたわ
良くも悪くも

358 名前:デフォルトの名無しさん mailto:sage [2016/03/11(金) 23:09:07.85 ID:RA7SR1be.net]
C++はぐちゃぐちゃ汚いよね

359 名前:デフォルトの名無しさん mailto:sage [2016/03/11(金) 23:30:50.24 ID:RoKMXwVB.net]
それは綺麗なC++コーダに出会ってない坊やだからさ



360 名前:デフォルトの名無しさん mailto:sage [2016/03/11(金) 23:31:51.83 ID:+X87dz7B.net]
またハゲの話してる…。

361 名前:デフォルトの名無しさん mailto:sage [2016/03/11(金) 23:33:00.33 ID:RA7SR1be.net]
いや書き方の問題じゃなくて言語仕様自体の問題なんd

362 名前:デフォルトの名無しさん mailto:sage [2016/03/11(金) 23:35:30.87 ID:a6R8C1/e.net]
C++はヘンタイだし、クソ言語だと思うけど、
大好き

363 名前:デフォルトの名無しさん mailto:sage [2016/03/11(金) 23:36:37.63 ID:+X87dz7B.net]
あなたの落とした物はこのC++CLIですか?それともこのJ#ですか?

364 名前:デフォルトの名無しさん mailto:sage [2016/03/11(金) 23:37:36.54 ID:RA7SR1be.net]
言語体系や構文ではC#が上だが、玄人好みなのはC++

365 名前:デフォルトの名無しさん [2016/03/11(金) 23:43:00.34 ID:+X87dz7B.net]
ヘンタイな玄人好みって、まるで素人童貞みたいな言い草だな。

366 名前:デフォルトの名無しさん mailto:sage [2016/03/11(金) 23:44:29.48 ID:RA7SR1be.net]
すまんわかるようでわからん

367 名前:デフォルトの名無しさん mailto:sage [2016/03/11(金) 23:53:03.42 ID:YlUxysAB.net]
お前ら一体 何を言ってるんだ

368 名前:デフォルトの名無しさん mailto:sage [2016/03/11(金) 23:54:21.02 ID:RA7SR1be.net]
ほんとだよ全く

369 名前:デフォルトの名無しさん mailto:sage [2016/03/12(土) 00:03:43.97 ID:z2WBnFu0.net]
でもそれがc++なんだよね。



370 名前:デフォルトの名無しさん mailto:sage [2016/03/12(土) 00:35:06.18 ID:FH3bqKTZ.net]
こういうことをC++でやるにはあの機能ではダメでこの機能を使ったこの設計でなければならない
っていう無知と思い込みから汚いコード書いて無駄に苦労してる人は珍しくないぞ

371 名前:デフォルトの名無しさん mailto:sage [2016/03/12(土) 01:39:29.17 ID:Zbyfy48z.net]
自分だけはキレイなコードかいてるという前提

372 名前:デフォルトの名無しさん mailto:sage [2016/03/12(土) 01:43:01.42 ID:Pl4Qm8o2.net]
データ構造を隠蔽したままinterfaceを隔離する方法ってありませんか?

class IContainer {
};

class Ifold {
  virtual do(IContainer& container) const = 0;
};

class VectorContainer : public IContainer {
private:
  std::vector<double> container_;
};

みたいな感じでIfoldのインターフェースはコンテナに依存しないようにしたいです。
visitorパターンにするとIContainerに、Ifoldの具象クラスのacceptメソッドが増えていくのが…。
何かうまい実装はありませんでしょうか?

373 名前:デフォルトの名無しさん mailto:sage [2016/03/12(土) 02:13:17.49 ID:VClvi+pB.net]
言っている意味が全然わからない。
Ifoldの具象型がIContanerの具象データに依存してるって事?
上位型だけでやりとりしたいなら、IfoldかIContainerどっちでも良いが、
具象型の中でダウンキャストでもすればいいだろ。

374 名前:デフォルトの名無しさん mailto:sage [2016/03/12(土) 02:16:35.39 ID:VClvi+pB.net]
もし外でvisit/accept可能か確認したいなら、
bool supports(IContainer&) (またはIfold&)とか付ける。
それ以外思いつかないが、そういうことじゃない?

375 名前:デフォルトの名無しさん mailto:sage [2016/03/12(土) 02:18:19.39 ID:Pl4Qm8o2.net]
>>373
Ifoldの具象型がIContainerの具象型が中で持ってるデータ構造に依存するのはOKです
ダウンキャストというと、どのように行えばいいですか?
インターフェースクラスからは具象クラスがわからないため何にダウンキャストすればいいか決定できません…

376 名前:デフォルトの名無しさん mailto:sage [2016/03/12(土) 02:19:31.10 ID:Pl4Qm8o2.net]
>>374
すみません、具体的にどのような実装になるかイメージができません…

377 名前:デフォルトの名無しさん mailto:sage [2016/03/12(土) 02:21:31.37 ID:VClvi+pB.net]
>>375-376
いまいち要領を得ないが、具象クラスにdo(IContainer& x);を実装、
中でIContainerからVectorContainerなどにキャストすれば良いんじゃないのか?
これ以上は何がしたいのかよくわからないから何とも言えん。

378 名前:デフォルトの名無しさん mailto:sage [2016/03/12(土) 02:42:31.41 ID:VClvi+pB.net]
もしかしてIfoldではなく、その具象クラスすら、
受け取るべき具象コンテナが決まってないって事か?
それもう設計破綻してるから無理だろ。

そうではなく特定型にキャスト可能かわからないってだけなら、
自分でID付けてis_a(int id)とか実装して調べるか、dynamic_cast。

379 名前:デフォルトの名無しさん mailto:sage [2016/03/12(土) 02:51:53.53 ID:9NhLr4qt.net]
>>372
class IContainer {
virtual double& at(int index)=0;
virtual void push_back(double& v)=0;
};



380 名前:デフォルトの名無しさん mailto:sage [2016/03/12(土) 09:19:37.98 ID:Vp+P3H45.net]
>>372
std::accumulateみたいなことがしたいように見受けられるけどそうかね?

381 名前:デフォルトの名無しさん mailto:sage [2016/03/12(土) 09:54:48.36 ID:fbT4KBM6.net]
std::stack<T, C>を
IContainerを受け取るIStackに魔界造したイメージだろうきっと

382 名前:デフォルトの名無しさん mailto:sage [2016/03/12(土) 11:36:06.87 ID:oS3fCNyN.net]
欲しいのは単にiteratorじゃね?
visitorはfoldの仕方が変わるからaccept必要でしょ?

383 名前:デフォルトの名無しさん mailto:sage [2016/03/12(土) 13:19:48.43 ID:VClvi+pB.net]
てっきりテンプレート無しに異なる数値型を扱いたいって事かと思ってたよ。
テンプレート使うならStrategyだけで済んじゃうし。

384 名前:デフォルトの名無しさん [2016/03/14(月) 22:12:09.15 ID:bYJAKtH4.net]
結局何だったんだ…?

385 名前:デフォルトの名無しさん [2016/03/15(火) 18:46:33.79 ID:7F6lH4i+.net]
すみません、visitorパターンを使うとacceptを持つインターフェースクラス(ライブラリコード)が、
具象クラスであるvisitor(ユーザーコード)に依存してしまうという問題を解決したかったのですが、いまいち伝わらなかったみたいです。

>>378
型タグによるダウンキャストは、メンテの観点から採用できません...

>>382
自分がなにを抽象化したいのか再考するきっかけになりました。
ありがとうございました。

結局visitorを内部のコンテナ型に依存するインターフェースクラスとすることで解決しました。
実際にはIVectorContainerとかIListContainerのような形にしました。
正確にはvalue_typeは決まってたのでテンプレートテンプレートパラメータを使いました。

386 名前:デフォルトの名無しさん mailto:sage [2016/03/15(火) 20:37:53.71 ID:drELySke.net]
それだとデータ別にインターフェースできるから統一できないんじゃないの。
ダウンキャストの方が見えてる分まだマシかと。

387 名前:デフォルトの名無しさん mailto:sage [2016/03/15(火) 20:46:48.46 ID:7F6lH4i+.net]
>>386
ダウンキャストだとコンテナ型が増えるたびにif文を追加しなくてはならず、
しかも追加し忘れてもコンパイル時にエラーが出ないので…

388 名前:デフォルトの名無しさん mailto:sage [2016/03/15(火) 20:51:40.14 ID:drELySke.net]
>>387
またわけわからん事言っとるね君。
テンプレートだろうが、結局特定のコンテナのインターフェースに依存するだから、
その部分は場合分けしなきゃならんでしょ。

389 名前:デフォルトの名無しさん mailto:sage [2016/03/15(火) 20:54:05.87 ID:7F6lH4i+.net]
>>388
いや、それはaccept側のオーバーライドで解決します
これがvisitorパターンの一般的な実装かと思いますが、どこがわかりませんか?



390 名前:デフォルトの名無しさん mailto:sage [2016/03/15(火) 21:12:36.21 ID:drELySke.net]
>>389
うむわけわからんよ。
どうやってacceptのオーバーライドで別種のvisitorを分ける?

そもそもテンプレート型に仮想関数付ける形こそ始末が悪くメンテしにくいのだから、
それならいっそインターフェースも消して、
テンプレートの構造的部分型だけで十分だと思うんだが。

391 名前:デフォルトの名無しさん mailto:sage [2016/03/15(火) 21:13:54.39 ID:7F6lH4i+.net]
>>390
家に帰ったら実装書きます

392 名前:デフォルトの名無しさん mailto:sage [2016/03/15(火) 22:59:29.47 ID:7F6lH4i+.net]
>>390
こういうことです
https://ideone.com/JpA22R

これダウンキャストで実装すると、acceptを一つにまとめてif文で一つずつキャストを試すわけですよね?
その場合ConcreteXxxContainerがひとつ増えるとacceptを修正し忘れてもコンパイルが通ってしまって困ります

393 名前:デフォルトの名無しさん mailto:sage [2016/03/15(火) 23:00:15.31 ID:18/5NGhU.net]
visitorクラスの基底クラスをライブラリ側が提供すれば良いのでは?

394 名前:デフォルトの名無しさん mailto:sage [2016/03/15(火) 23:01:00.99 ID:7F6lH4i+.net]
>>393
という風にしました

395 名前:デフォルトの名無しさん mailto:sage [2016/03/15(火) 23:04:19.56 ID:z48QWO4Q.net]
ダウンキャストとか言ってるアホはやばいだろ
コード書かせちゃダメなレベル

396 名前:デフォルトの名無しさん mailto:sage [2016/03/15(火) 23:11:15.71 ID:18/5NGhU.net]
>>394
申し訳

397 名前:デフォルトの名無しさん mailto:sage [2016/03/15(火) 23:48:10.07 ID:L3nufqEx.net]
結局具体的に何をやりたいのか分からんな
そもそもVisitorパターンが本当に適切なのか?
Visitorパターンみたいな汚くなりがちなものはなるべく避けるべきだと思うが

398 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 06:31:57.64 ID:+XU07v9B.net]
>>392
なんだオーバーライドじゃなくてオーバーロードじゃないの。
静的なのがいいなら構造部分型や標準コンテナの模倣で十分だろう。
そこまでしてインターフェースとVisitorに拘る理由は何?

>>395
dynamic_castなら危険でも何でもない。
そうやってダウンキャストを危険危険と、
いちいち大げさに騒ぎ立てる方がアホというか初心者だな。
実際OOPなら多くの場所で使われてるし、設計が簡単になるなら使っても良いんだよ。

399 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 06:42:44.25 ID:+XU07v9B.net]
そんなに静的なチェックが重要と言うなら、オーバーロードもやめとけ。
それぞれ別の名前にしたほうがより安全確実だからね。馬鹿みたいだけど。



400 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 07:47:22.56 ID:Jbc4KVVa.net]
そんなに言うならコード提示すればいいのに

401 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 11:05:22.41 ID:9QBMlTeC.net]
> ダウンキャストとか言ってるアホはやばい
> そうやってダウンキャストを危険危険と

個人的には「ダウンキャスト」っていう用語自体がアホ
アップ/ダウンの概念を不用意に持ち込んだ初心者ワードだと思う

暗黙の型変換(implicit conversion)
キャスト演算[明示的な型変換(explicit conversion)

後者を単にキャストと呼ぶのがC/C++の文化

402 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 12:20:06.84 ID:hEm8Gz+A.net]
>>401
お前のルールをさも普遍的なものであるかのように語られても

403 名前:デフォルトの名無しさん [2016/03/16(水) 15:13:44.46 ID:YWKSC+YR.net]
参照を返す関数は戻り値の一時オブジェクトは作成されないのですか

404 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 17:05:09.47 ID:noSrSdLM.net]
一体どこに一時オブジェが作成される要素があるというのか

405 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 17:32:24.76 ID:P1US5avI.net]
>>403
まさかとは思うがローカル変数の参照を返したりしてないよな?

406 名前:デフォルトの名無しさん [2016/03/16(水) 17:34:09.97 ID:bCkVw2Gt.net]
>>405
返すこともありますが
参照が有効か無効かは問題にしてません

407 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 17:35:54.73 ID:P1US5avI.net]
漢だな

408 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 18:42:01.29 ID:Sre9WvB0.net]
天才だ

409 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 20:48:14.54 ID:Zxg3aYLU.net]
>>401
それダウンキャストと何の関係もない話だよね?



410 名前:デフォルトの名無しさん [2016/03/16(水) 21:09:39.81 ID:8e8fbPBE.net]
>>401
律儀に規格用語だけ使って話すのと
アホかどうかは関係ねえぞ

おまえが体現しているようにw

411 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 21:20:12.09 ID:ejdJRW9Z.net]
>そんなに静的なチェックが重要と言うなら、オーバーロードもやめとけ。

これ意味不明だな
オーバーロードは静的なのに

412 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 21:42:57.82 ID:+XU07v9B.net]
>>411
オーバーロードに型チェックはあるが、
ユーザー定義変換のように、使用者側から見れば暗黙に見える変換が起きうるぞ。
なので確実なチェックが欲しいなら一つずつ名前を付けた方が良い。
どうだ馬鹿みたいだろう?

413 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 21:51:19.58 ID:noSrSdLM.net]
>>412はstd::abs(double)やstd::fabs(float)が許せないタイプ

414 名前:デフォルトの名無しさん [2016/03/16(水) 21:53:11.55 ID:8e8fbPBE.net]
そんなに動的なチェックが重要というなら、dynamic_castもやめとけ。

415 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 21:56:22.65 ID:9IPG0ZaQ.net]
だからdynamic_cast版のコード書いてみろってば
じゃないと比較のしようがない

416 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 22:14:17.92 ID:Sre9WvB0.net]
男ならCスタイルキャストオンリー

417 名前:デフォルトの名無しさん mailto:sage [2016/03/17(木) 08:31:39.81 ID:yET/+Bsj.net]
>>412
> 変換が起きうるぞ。
意味わからん
具体例プリーズ

418 名前:デフォルトの名無しさん mailto:sage [2016/03/17(木) 10:21:34.32 ID:mXayW7+h.net]
>>417
あんま触るな
コード出さない時点で誰かわかるだろ

419 名前:デフォルトの名無しさん mailto:sage [2016/03/17(木) 12:44:04.09 ID:Mb/PAzMm.net]
仮に変換が起こったとしても、静的でしょ
dynamic_castとは別物



420 名前:デフォルトの名無しさん [2016/03/17(木) 21:19:25.81 ID:Nqbbnzs6.net]
githubに置いてあるゲームをmakeするとコケた。
error: cannot convert 'bool' to 'boolean' for argument '2' to 'int jpeg_read_header(j_decompress_ptr, boolean)'
jpeg_read_header(&cinfo, true);

エラーをみて思ったんだが、bool 型と boolean 型の違いって何なんだろ?

421 名前:デフォルトの名無しさん mailto:sage [2016/03/17(木) 21:27:52.26 ID:3douJvdz.net]
>>417
void func( std::string );

func( "filename" ); ← 1

1.大丈夫だが、func( char* )ではないし、std::stringの構築が行われている


のやつ言ってるんじゃない?
ユーザ定義変換と書いてあるし

422 名前:デフォルトの名無しさん mailto:sage [2016/03/17(木) 21:36:57.43 ID:1OZ8wjSn.net]
boolをbooleanに変換するoperatorひとつ記述してやればよくね?
そんなに手間じゃないやろ

423 名前:デフォルトの名無しさん mailto:sage [2016/03/17(木) 21:44:32.93 ID:K9pRNqs8.net]
>>420
コードの該当箇所見た?

424 名前:デフォルトの名無しさん [2016/03/17(木) 22:09:31.51 ID:Nqbbnzs6.net]
jpeglib.hでboolean型が定義されていた。
(boolean) tureでコンパイルは通る。
Cにはbool型は無いんだな。

425 名前:デフォルトの名無しさん mailto:sage [2016/03/17(木) 22:12:09.48 ID:K9pRNqs8.net]
ないねえ

426 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/03/17(木) 22:20:29.77 ID:ucqcC/SU.net]
stdbool

427 名前:デフォルトの名無しさん mailto:sage [2016/03/17(木) 22:38:53.07 ID:rjBvJtG9.net]
あるっちゅーねん

428 名前:デフォルトの名無しさん mailto:sage [2016/03/17(木) 22:40:27.06 ID:ucqcC/SU.net]
あるっ中年

429 名前:デフォルトの名無しさん mailto:sage [2016/03/17(木) 22:41:49.16 ID:ucqcC/SU.net]
アル中中年



430 名前:デフォルトの名無しさん [2016/03/17(木) 22:42:41.64 ID:JPCzu/ni.net]
C17で入れるか審議中。

431 名前:デフォルトの名無しさん mailto:sage [2016/03/17(木) 23:12:37.74 ID:/lOxP0ET.net]
>>421
でそれって
> なので確実なチェックが欲しいなら一つずつ名前を付けた
で解決できるんか?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<142KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef