!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を3行貼り付けること
次スレは>>980が立てること
無理なら細かく安価指定
※前スレ
C++相談室 part161
https://mevius.5ch.net/test/read.cgi/tech/1653135809/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
C++相談室 part162
■ このスレッドは過去ログ倉庫に格納されています
1sage (ワッチョイ fbf0-ofdD)
2022/10/31(月) 14:29:35.57ID:J5sgTSch02デフォルトの名無しさん (ワッチョイ d9f0-ofdD)
2022/10/31(月) 17:11:42.28ID:FSs0hrWX0 保守です
3デフォルトの名無しさん (スップ Sd73-OvbD)
2022/11/01(火) 07:31:00.75ID:8mAHYLmxd 寿限無寿限無五劫の擦り切れ海砂利水魚の水行末雲来末風来末食う寝る処に住む処藪ら柑子の藪柑子パイポパイポ パイポのシューリンガンシューリンガンのグーリンダイグーリンダイのポンポコピーのポンポコナーの長久命の長助
4デフォルトの名無しさん (スップ Sd73-pLSs)
2022/11/01(火) 12:22:19.23ID:LNKvo44sd 今更話すことある?
5デフォルトの名無しさん (ワッチョイ 79c2-iO6U)
2022/11/03(木) 09:15:40.37ID:AvIGv7Uk0 template <template<class...> class T>
struct is_map : std::false_type { };
template<> struct is_map<std::map> : std::true_type { };
template<> struct is_map<std::multimap> : std::true_type { };
template<> struct is_map<std::unordered_map> : std::true_type { };
template<> struct is_map<std::unordered_multimap> : std::true_type { };
template <template<class...> class T>
concept map_t = is_map<T>::value;
template <template<class...> map_t MAP, class... ARGS> //C3339
void test(MAP<ARGS...>&&) {}
うーん、困った
どうしよう。。。
struct is_map : std::false_type { };
template<> struct is_map<std::map> : std::true_type { };
template<> struct is_map<std::multimap> : std::true_type { };
template<> struct is_map<std::unordered_map> : std::true_type { };
template<> struct is_map<std::unordered_multimap> : std::true_type { };
template <template<class...> class T>
concept map_t = is_map<T>::value;
template <template<class...> map_t MAP, class... ARGS> //C3339
void test(MAP<ARGS...>&&) {}
うーん、困った
どうしよう。。。
6デフォルトの名無しさん (ワッチョイ 917c-T8wd)
2022/11/03(木) 10:13:40.98ID:GMyBvZ220 requires map_t<MAP>でええやん
7デフォルトの名無しさん (ワッチョイ 79c2-iO6U)
2022/11/03(木) 10:30:49.88ID:AvIGv7Uk0 あ、そっか
㌧x
一応、報告
template <template<class...> class MAP, class... ARGS> requires map_t<MAP> //OK
void test(MAP<ARGS...>&&) {}
㌧x
一応、報告
template <template<class...> class MAP, class... ARGS> requires map_t<MAP> //OK
void test(MAP<ARGS...>&&) {}
8デフォルトの名無しさん (ワッチョイ 0bda-PhZD)
2022/11/03(木) 18:33:03.71ID:A3AnwOcy0 テンプレートにテンプレート重ねて滅茶苦茶する典型
9デフォルトの名無しさん (ワッチョイ 917c-T8wd)
2022/11/03(木) 20:41:25.83ID:GMyBvZ220 AssociativeContainer要件のコンセプトは標準ライブラリには無いんだな
規格上定義してるrequirementは一通り作っとけばいいのに
規格上定義してるrequirementは一通り作っとけばいいのに
10デフォルトの名無しさん (ワッチョイ 13a5-T+yX)
2022/11/03(木) 22:05:17.66ID:f0rgVbxY011はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7b3e-Tk+f)
2022/11/03(木) 22:28:39.04ID:b1nVlp4p0 >>10
コンパイラが無限のリソースを使えるわけじゃないから制限があってもいいし、
わかっている制限は文書化するべきということになっている。
https://timsong-cpp.github.io/cppwp/n3337/implimits
言語仕様の側でもどの程度まで処理すべきかという最低限の数値は与えていて
この場合だと
Recursively nested template instantiations [1024].
ってのが当てはまる。
あくまでもガイドラインなのでこれ以下に制限された処理系がないとは言えないんだけど、
1024 が提示されているところで 100 やそこらに制限するような処理系はたぶんあんまりないとは期待できると思う。
コンパイラが無限のリソースを使えるわけじゃないから制限があってもいいし、
わかっている制限は文書化するべきということになっている。
https://timsong-cpp.github.io/cppwp/n3337/implimits
言語仕様の側でもどの程度まで処理すべきかという最低限の数値は与えていて
この場合だと
Recursively nested template instantiations [1024].
ってのが当てはまる。
あくまでもガイドラインなのでこれ以下に制限された処理系がないとは言えないんだけど、
1024 が提示されているところで 100 やそこらに制限するような処理系はたぶんあんまりないとは期待できると思う。
12デフォルトの名無しさん (ワッチョイ 79c2-iO6U)
2022/11/04(金) 14:22:03.44ID:MccBwaps0 そんなん言い出したら自動変数は合計何バイトまでとか
しょーもないことを規格票に書くハメにならないか?
しょーもないことを規格票に書くハメにならないか?
13デフォルトの名無しさん (ワッチョイ 8901-T+yX)
2022/11/04(金) 14:28:53.41ID:I5Ua2kB10 GCCとClangの -ftemplate-depth-?? の話?
14デフォルトの名無しさん (スッップ Sd33-pLSs)
2022/11/04(金) 15:45:10.91ID:nV9i8Ccmd 昔は17だったなその制限
15デフォルトの名無しさん (ワッチョイ 79c2-iO6U)
2022/11/04(金) 16:29:55.40ID:MccBwaps0 つーかよ
俺5だけど、あの程度のことで
8みたいなこと言われたのずっこけてる
別に無駄に複雑化はしてないし裏技も使ってない
当たり前の書き方で目的を素直に書いてるだけなのに
一次テンプレートと特殊化でis_系のクエリーを作って
それでコンセプト作って使おうとしただけだぜ?
何があかんの?
テンプレートテンプレート仮引数がわからんだけじゃないのかって邪推しちまいそう
俺5だけど、あの程度のことで
8みたいなこと言われたのずっこけてる
別に無駄に複雑化はしてないし裏技も使ってない
当たり前の書き方で目的を素直に書いてるだけなのに
一次テンプレートと特殊化でis_系のクエリーを作って
それでコンセプト作って使おうとしただけだぜ?
何があかんの?
テンプレートテンプレート仮引数がわからんだけじゃないのかって邪推しちまいそう
16デフォルトの名無しさん (スッップ Sd33-pLSs)
2022/11/04(金) 16:49:46.97ID:nV9i8Ccmd 全然あかんくないと思うよ
8がアホなだけ
8がアホなだけ
17デフォルトの名無しさん (ワッチョイ 8901-T+yX)
2022/11/04(金) 18:04:41.45ID:I5Ua2kB1018デフォルトの名無しさん (ワッチョイ 8901-T+yX)
2022/11/04(金) 18:07:42.31ID:I5Ua2kB1019はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7b3e-Tk+f)
2022/11/04(金) 19:44:51.78ID:lXYNWX4U0 制限はあくまでも「深さ」であって「回数」ではないので上手いこと変形するのも技の内だったんだよな……。
遊びでやるならきつめの制限も楽しいんだけどね。
遊びでやるならきつめの制限も楽しいんだけどね。
20デフォルトの名無しさん (ワッチョイ f61f-0tFf)
2022/11/05(土) 15:23:46.47ID:6woT7hPv0 自動的に解釈されるテンプレート引数で
値渡しじゃなく参照渡しと解釈させる方法ってありますかね?
値渡しじゃなく参照渡しと解釈させる方法ってありますかね?
21デフォルトの名無しさん (スフッ Sdb2-hVB7)
2022/11/05(土) 15:33:58.60ID:95t5abQGd std::ref
std::cref
std::cref
22デフォルトの名無しさん (ワッチョイ f61f-0tFf)
2022/11/05(土) 15:40:28.55ID:6woT7hPv0 あるんですねぇ
ありがとうございます
ありがとうございます
23デフォルトの名無しさん (テテンテンテン MM96-REjG)
2022/11/07(月) 14:57:30.80ID:8LbwGvMzM 明示的な型変換が可能か調べる方法ってありますか?
暗黙的ならis_convertibleが使えるのですが…
std::is_convertible<std::shared_ptr<void>, bool>::value; // trueになってほしい
暗黙的ならis_convertibleが使えるのですが…
std::is_convertible<std::shared_ptr<void>, bool>::value; // trueになってほしい
24デフォルトの名無しさん (スッップ Sdb2-oy7h)
2022/11/07(月) 16:58:07.91ID:2UaeFBkad is_constructibleを使う
25デフォルトの名無しさん (テテンテンテン MM96-REjG)
2022/11/07(月) 17:32:26.98ID:unROdsfFM26デフォルトの名無しさん (テテンテンテン MM96-REjG)
2022/11/07(月) 17:32:50.90ID:unROdsfFM >>24
ありがとうございました。
ありがとうございました。
27デフォルトの名無しさん (ササクッテロロ Sp79-uppo)
2022/11/09(水) 10:37:27.83ID:uQIa4jnTp 質問です
マネージドとかアンマネージドとかMSの呪いですか?
マネージドとかアンマネージドとかMSの呪いですか?
28デフォルトの名無しさん (オイコラミネオ MM91-wgF3)
2022/11/09(水) 11:23:16.37ID:GzNJb2MKM プログラミング言語 C++ [第四版]
BJARNE STROUSTRUP, 柴田望洋 訳
「第四章 C++を探検しよう:コンテナとアルゴリズム」のp.102-103
に以下の様なコードが有るのですが、phone_book = の右側の初期化子(?)
の部分をコンパイラ内部でどのように翻訳(解釈)していくのかの厳密な詳細が
分かりませんので、どなたか教えてもらえませんか。
struct Entry {
string name;
int number;
};
vector<Entty> phone_book = {
{"David Hyme",123456},
{"Karl Popper",234567},
{"Bertrand Arthur William Russell",2345678}
};
前提として、クラステンプレート vector<T> には、以下のような
「初期化子並びコンストラクタ」があることとします。
template <class T, class Alloc = allocator<T>>
class vector {
・・・
// 初期化子並びコンストラクタ :
vector( std::initializer_list<T> a );
・・・
}
ここで問題となるのは、以下のどちらの方法で解釈されているかということです。
[続く]
BJARNE STROUSTRUP, 柴田望洋 訳
「第四章 C++を探検しよう:コンテナとアルゴリズム」のp.102-103
に以下の様なコードが有るのですが、phone_book = の右側の初期化子(?)
の部分をコンパイラ内部でどのように翻訳(解釈)していくのかの厳密な詳細が
分かりませんので、どなたか教えてもらえませんか。
struct Entry {
string name;
int number;
};
vector<Entty> phone_book = {
{"David Hyme",123456},
{"Karl Popper",234567},
{"Bertrand Arthur William Russell",2345678}
};
前提として、クラステンプレート vector<T> には、以下のような
「初期化子並びコンストラクタ」があることとします。
template <class T, class Alloc = allocator<T>>
class vector {
・・・
// 初期化子並びコンストラクタ :
vector( std::initializer_list<T> a );
・・・
}
ここで問題となるのは、以下のどちらの方法で解釈されているかということです。
[続く]
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【イオン】中国湖南省に新大型店を開業 混乱なく地元客でにぎわい モール内にユニクロや無印良品 [1ゲットロボ★]
- 【ヒグマ】焼却施設が限界 駆除数17倍で処理に追われる自治体 1頭焼却に灯油100リットル 作業追いつかずに腐敗進み、埋めるケースも [ぐれ★]
- 【芸能】『バンダイナムコフェス』上海公演 日本人歌手・大槻マキが歌唱中に強制退場… 急に音を止められスタッフらしき人達に★2 [冬月記者★]
- 「特に中国は事態悪化を控えるべき」 日中対立巡りフランス高官言及 [蚤の市★]
- 住宅ローン金利、大手4行で「最高水準」に…10年固定の基準金利4.40-5.15% [蚤の市★]
- 【相次ぐイベント中止】TBS北京支局「反日デモなどは全くない」過去の尖閣諸島問題では関係正常化までに6年… [1ゲットロボ★]
- 昨日高市に8000万の宣伝費報道が出てから各社高市に批判的な記事を一斉に出し始める。一体何が起こってるんや…🤔 [931948549]
- ケンメンってなんかペットとか飼ってんの? [884040186]
- お前らが知ってる日産車の名前 [445522505]
- 【速報】例のVtuber、謝罪
- 一流経済学者(70)「WSJの記事はウソだ。情報を取れない人が書いている」 [309323212]
- 高市応援団、急に消える。一体何故🤔 [256556981]
