C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part143
https://mevius.5ch.net/test/read.cgi/tech/1560574313/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.105【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1556142878/
■長いソースを貼るときはここへ。■
http://codepad.org/
https://ideone.com/
[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
----- テンプレ ここまで -----
探検
C++相談室 part144
レス数が1000を超えています。これ以上書き込みはできません。
2019/07/22(月) 13:18:35.52ID:gptRHpgT
962デフォルトの名無しさん
2019/09/11(水) 08:37:00.29ID:BcUfEF7y リフレクションどうやって実装するんだろう・・
現行のC/C++とリンカの仕様と互換性たもったまま実装するのかなり難しそうだけど
現行のC/C++とリンカの仕様と互換性たもったまま実装するのかなり難しそうだけど
963デフォルトの名無しさん
2019/09/11(水) 10:13:16.97ID:px+Xr7os C++に不可能は無い
964デフォルトの名無しさん
2019/09/11(水) 10:17:36.03ID:4wA+sXag965デフォルトの名無しさん
2019/09/11(水) 11:21:58.81ID:9WrJeA7f structured bindingで定義した変数をラムダ式でキャプチャするとclang7はエラー、gcc7は通る。
いずれもc++17指定。
使用上正しいのはどっち?
const auto [a,b]=std::make_tuple(1.0,0.0);
auto f=[&](){
return a+b;
};
いずれもc++17指定。
使用上正しいのはどっち?
const auto [a,b]=std::make_tuple(1.0,0.0);
auto f=[&](){
return a+b;
};
966デフォルトの名無しさん
2019/09/11(水) 11:39:01.09ID:KrQUVjgm >>965
clangが正しい
N4713 8.5.4.2 Capturesの段落8にこう書いてある
If a lambda-expression explicitly captures an entity that is not odr-usable or captures a structured binding (explicitly or implicitly), the program is
ill-formed.
clangが正しい
N4713 8.5.4.2 Capturesの段落8にこう書いてある
If a lambda-expression explicitly captures an entity that is not odr-usable or captures a structured binding (explicitly or implicitly), the program is
ill-formed.
967デフォルトの名無しさん
2019/09/11(水) 11:49:32.96ID:9WrJeA7f968デフォルトの名無しさん
2019/09/11(水) 12:07:20.16ID:KrQUVjgm 理由は俺もよくわからん
969デフォルトの名無しさん
2019/09/11(水) 12:13:22.75ID:9+CD8w/u ちなみに [a,b] は、std::tie(a,b) と書くのと同じですか?
また、[a,b] はなんという名称(概念)ですか?
また、[a,b] はなんという名称(概念)ですか?
970デフォルトの名無しさん
2019/09/11(水) 12:26:12.95ID:9+CD8w/u >>969
自己レスですが、[a,b] は、これですか:
https://en.cppreference.com/w/cpp/language/structured_binding
↑Structured binding declaration (since C++17)
int a[2] = {1,2};
auto [x,y] = a; // creates e[2], copies a into e, then x refers to e[0], y refers to e[1]
auto& [xr, yr] = a; // xr refers to a[0], yr refers to a[1]
自己レスですが、[a,b] は、これですか:
https://en.cppreference.com/w/cpp/language/structured_binding
↑Structured binding declaration (since C++17)
int a[2] = {1,2};
auto [x,y] = a; // creates e[2], copies a into e, then x refers to e[0], y refers to e[1]
auto& [xr, yr] = a; // xr refers to a[0], yr refers to a[1]
971デフォルトの名無しさん
2019/09/11(水) 13:04:41.28ID:9WrJeA7f972デフォルトの名無しさん
2019/09/11(水) 13:05:15.41ID:9WrJeA7f >>970
それ
それ
973デフォルトの名無しさん
2019/09/11(水) 13:05:17.06ID:zFEVPQj4 tieは良くないmaketuple使え
974デフォルトの名無しさん
2019/09/11(水) 13:28:34.92ID:9WrJeA7f >>973
ズレてるよ
ズレてるよ
975デフォルトの名無しさん
2019/09/11(水) 13:46:37.79ID:TkJgDVYV >>961
decltype(auto) f(){} ができればよいのだけどね。
decltype(auto) f(){} ができればよいのだけどね。
976デフォルトの名無しさん
2019/09/11(水) 20:20:32.38ID:jgB/KG+a Aクラスを継承したテンプレートで型を指定したメンバー変数cを持つ、Bクラスがある。
BクラスをキャストしたAポインタ仮想メソッド使ってBのメンバー変数cを取得したいんだけど、ダウンキャストしかないかね?
class A{};
template<typename _T>
class B : pubulic A{ pubulic : _T c;}
A *a = new B<int>;
int ret = A->???;
BクラスをキャストしたAポインタ仮想メソッド使ってBのメンバー変数cを取得したいんだけど、ダウンキャストしかないかね?
class A{};
template<typename _T>
class B : pubulic A{ pubulic : _T c;}
A *a = new B<int>;
int ret = A->???;
977デフォルトの名無しさん
2019/09/11(水) 20:23:28.97ID:xNhcwpCp > A *a = new B<int>;
なぜ?
なぜ?
978デフォルトの名無しさん
2019/09/11(水) 20:25:26.05ID:xNhcwpCp BのインスタンスをAにアップキャストした時点でAにないメンバは破棄されるのでAのポインタからcにアクセスすることはできない
979デフォルトの名無しさん
2019/09/11(水) 20:26:04.31ID:jgB/KG+a いろんな型をリスト化する為です。
実際はAポインタの配列
実際はAポインタの配列
980デフォルトの名無しさん
2019/09/11(水) 20:29:39.70ID:TkJgDVYV TypeHolderTypeがほしいのじゃーーーーー!!!
981デフォルトの名無しさん
2019/09/11(水) 21:01:04.58ID:QpQ1AfFp cにアクセスしたい人はBを知ってるんだから、ダウンキャストでもなんでもやりゃぁええがな。
982デフォルトの名無しさん
2019/09/11(水) 21:04:08.52ID:k/thmV8R variantなりanyなり使えば
983デフォルトの名無しさん
2019/09/11(水) 22:53:28.56ID:DdLw5bDK >>976
つーかダウンキャストじゃ何の不満が?
つーかダウンキャストじゃ何の不満が?
984デフォルトの名無しさん
2019/09/11(水) 23:37:41.00ID:dX8mKe9q 型の意味なしだろそれ
985デフォルトの名無しさん
2019/09/12(木) 00:03:44.43ID:2pi0Y8A7 ダウンキャストより先にテンプレートメソッドパターンを検討してみては?
986デフォルトの名無しさん
2019/09/12(木) 00:30:21.07ID:ikyWh7fv >>984
それってどれよ
それってどれよ
987デフォルトの名無しさん
2019/09/12(木) 01:15:25.34ID:t/6lHRNc988デフォルトの名無しさん
2019/09/12(木) 07:02:09.27ID:7HqgwkVj989デフォルトの名無しさん
2019/09/12(木) 07:11:59.50ID:fOl/Q6Ej anyじゃんそれ。
990デフォルトの名無しさん
2019/09/12(木) 07:21:48.35ID:guoHOxyl 型を無意味にするなんてとんでもない!
991デフォルトの名無しさん
2019/09/12(木) 07:24:41.60ID:7HqgwkVj ダウンキャストの必要が出てきたらvirtualで何とかならんか考えれ
992デフォルトの名無しさん
2019/09/12(木) 07:27:47.36ID:ikyWh7fv AとBだけじゃなくてどうせAの派生クラスはCやらDやらあってそれらもA*で扱うんでしょ。
ホントの型の判別やって型に応じて処理するんだろうしダウンキャストでええがな
ホントの型の判別やって型に応じて処理するんだろうしダウンキャストでええがな
993デフォルトの名無しさん
2019/09/12(木) 08:25:32.31ID:Ni5TNCQb それって欲しいのはunionてことじゃね?
それかAにすべてのメンバ乗せたらええやん。
それかAにすべてのメンバ乗せたらええやん。
994デフォルトの名無しさん
2019/09/12(木) 10:13:00.88ID:/QY4HS1k そもそもごった煮リストにすることが誤り
995デフォルトの名無しさん
2019/09/12(木) 10:18:31.65ID:7HqgwkVj excelみたいなことをするなと?
996デフォルトの名無しさん
2019/09/12(木) 15:18:39.72ID:W8pItA9j コンパイル時に自身のソースコード解析してリフレクション作ることとかできないですか?
997デフォルトの名無しさん
2019/09/12(木) 15:50:08.39ID:Cr8f/Gnu それはコンパイラ作ってるのに等しい
998デフォルトの名無しさん
2019/09/12(木) 18:08:13.67ID:WsH5tdUK 別の言語でやればいいじゃん
999デフォルトの名無しさん
2019/09/13(金) 12:32:55.83ID:+6+n/onN1000デフォルトの名無しさん
2019/09/13(金) 12:54:06.04ID:/ygW08Jq vtableがあればdynamic_castもできるのに何でダウンキャストなんだ?
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 52日 23時間 35分 31秒
新しいスレッドを立ててください。
life time: 52日 23時間 35分 31秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 中国・ロシア両軍の爆撃機が東京方面へ向かう「異例のルート」を共同飛行…核も搭載可能、連携して威嚇か ★6 [ぐれ★]
- 東京の自販機そばに金塊4200万円分、何者かに持ち去られる…札幌の50代が8000万円振り込んだ後に上京して被害 [どどん★]
- 【東京】「家族で話題にして」 “世田谷一家殺害から25年 警視庁が呼びかけ [煮卵★]
- 【鹿児島】容疑者は大学生。国道3号を横断中の母娘を車ではねる――「太陽がまぶしくて見えなかった」。20歳女を現行犯逮捕 日置署 [ぐれ★]
- 【沖縄】開業4ヵ月でこれは…“国民の税金”投入の『ジャングリア沖縄』で見た衝撃的な光景と、モチベーションが低い一部スタッフの現状 [ぐれ★]
- 【日銀】0.75%に利上げへ 来週の決定会合で、30年ぶり水準 賃金改善の継続見込む [ぐれ★]
- 経験上「これはガチで脈アリだよ。」ってもの高市wwwwwwwwwwwwwwwwwwwwwwwwwwwww [871926377]
- 知識層、気ずく…日本の愛国保守はなぜ統一教会を批判しないんだ… [819729701]
- 風のタクトが23周年と聞いて
- (ヽ´ん`)「嫌儲はマジで高IQ集団だろ」 [357264179]
- 【自民党】コバホーク、裏金30万円【高市】 [817148728]
- お前らはなんでマイナンバーカード作らないんだ?
