次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part137 (正しくはpart138)
http://mevius.5ch.net/test/read.cgi/tech/1535353320/
C++相談室 part139
https://mevius.5ch.net/test/read.cgi/tech/1538755188/
C++相談室 part140
https://mevius.5ch.net/test/read.cgi/tech/1547326582/
C++相談室 part141
https://mevius.5ch.net/test/read.cgi/tech/1550772463/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.103【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1530384293/
■長いソースを貼るときはここへ。■
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++相談室 part142
■ このスレッドは過去ログ倉庫に格納されています
2019/04/01(月) 22:17:05.84ID:wmfpIKt/
347デフォルトの名無しさん
2019/04/20(土) 00:01:37.25ID:a7z6m7l4 ごめんなさい、ごめんなさい。本当にごめんなさい。
勝手に脳内で要約したのが間違えまくってました
正確には以下の通りです。
#include <map>
#include <memory>
using KVPCollectionType = std::map<std::string, std::string>;
class c {
public:
c(const KVPCollectionType&& kvps = {}){}
};
int main()
{
auto ok = std::make_shared<c>(KVPCollectionType{{"key1", "value1"},{"key2","value2"}}); // OK
auto ng = std::make_shared<c>({{"key1", "value1"},{"key2","value2"}}); // NG!!!
}
勝手に脳内で要約したのが間違えまくってました
正確には以下の通りです。
#include <map>
#include <memory>
using KVPCollectionType = std::map<std::string, std::string>;
class c {
public:
c(const KVPCollectionType&& kvps = {}){}
};
int main()
{
auto ok = std::make_shared<c>(KVPCollectionType{{"key1", "value1"},{"key2","value2"}}); // OK
auto ng = std::make_shared<c>({{"key1", "value1"},{"key2","value2"}}); // NG!!!
}
348デフォルトの名無しさん
2019/04/20(土) 10:47:21.77ID:5oa1AZjP 全てのバグを絶滅せよ。
「今日は死に日和」好評発売中。
「今日は死に日和」好評発売中。
349デフォルトの名無しさん
2019/04/20(土) 11:08:43.59ID:3kBWifqd C++11や14を使ってる人、コンパイラは何ですか。
350デフォルトの名無しさん
2019/04/20(土) 11:25:30.96ID:m+a2EYsq ゲームエンジン作ってる人いますか
351デフォルトの名無しさん
2019/04/20(土) 11:30:38.02ID:5oa1AZjP clとgcc。
352デフォルトの名無しさん
2019/04/20(土) 13:20:15.93ID:lwVpLCzw c+11以降はバージョン違うと全く別のコンパイラ
353デフォルトの名無しさん
2019/04/20(土) 13:23:19.12ID:8Vh3F1FF Twitchでプログラミングしてるやつの中でゲームエンジンも居たような
354はちみつ餃子 ◆8X2XSCHEME
2019/04/20(土) 13:30:02.11ID:7hm/FBJ7 >>347
テンプレートの推論ルールとして「関数テンプレートのパラメータとして波カッコの初期化子リストを渡して型推論させることはできない。」
ということになっている。 ( https://cpprefjp.github.io/lang/cpp11/uniform_initialization.html )
make_shared の実際の型は template <class T, class... Args> shared_ptr<T> make_shared(Args&&... args); なので、
このとき Args が推論できない以上はどうにもならん。
型を固定した専用の関数をはさんでこんな感じにするくらいのことしか思いつかないな。
#include <map>
#include <memory>
#include <initializer_list>
#include <utility>
using KVPCollectionType = std::map<std::string, std::string>;
class c {
public:
c(const KVPCollectionType&& kvps = {}){}
c(const std::initializer_list<typename KVPCollectionType::value_type>){}
};
std::shared_ptr<c> make_c_shared(std::initializer_list<typename KVPCollectionType::value_type> a) {
return std::make_shared<c>(std::move(a));
}
std::shared_ptr<c> make_c_shared(KVPCollectionType&& a) {
return std::make_shared<c>(std::move(a));
}
int main() {
auto ok = make_c_shared(KVPCollectionType{{"key1", "value1"},{"key2","value2"}});
auto ng = make_c_shared({{"key1", "value1"},{"key2","value2"}});
}
テンプレートの推論ルールとして「関数テンプレートのパラメータとして波カッコの初期化子リストを渡して型推論させることはできない。」
ということになっている。 ( https://cpprefjp.github.io/lang/cpp11/uniform_initialization.html )
make_shared の実際の型は template <class T, class... Args> shared_ptr<T> make_shared(Args&&... args); なので、
このとき Args が推論できない以上はどうにもならん。
型を固定した専用の関数をはさんでこんな感じにするくらいのことしか思いつかないな。
#include <map>
#include <memory>
#include <initializer_list>
#include <utility>
using KVPCollectionType = std::map<std::string, std::string>;
class c {
public:
c(const KVPCollectionType&& kvps = {}){}
c(const std::initializer_list<typename KVPCollectionType::value_type>){}
};
std::shared_ptr<c> make_c_shared(std::initializer_list<typename KVPCollectionType::value_type> a) {
return std::make_shared<c>(std::move(a));
}
std::shared_ptr<c> make_c_shared(KVPCollectionType&& a) {
return std::make_shared<c>(std::move(a));
}
int main() {
auto ok = make_c_shared(KVPCollectionType{{"key1", "value1"},{"key2","value2"}});
auto ng = make_c_shared({{"key1", "value1"},{"key2","value2"}});
}
355はちみつ餃子 ◆8X2XSCHEME
2019/04/20(土) 13:32:51.70ID:7hm/FBJ7356はちみつ餃子 ◆8X2XSCHEME
2019/04/20(土) 13:35:42.76ID:7hm/FBJ7 >>347
ちゃんと考えたら >>354 はいらんことしとるな……
これで充分か
#include <map>
#include <memory>
#include <utility>
using KVPCollectionType = std::map<std::string, std::string>;
class c {
public:
c(const KVPCollectionType&& kvps = {}){}
};
std::shared_ptr<c> make_c_shared(KVPCollectionType&& a) {
return std::make_shared<c>(std::move(a));
}
int main() {
auto ok = make_c_shared(KVPCollectionType{{"key1", "value1"},{"key2","value2"}});
auto ng = make_c_shared({{"key1", "value1"},{"key2","value2"}});
}
ちゃんと考えたら >>354 はいらんことしとるな……
これで充分か
#include <map>
#include <memory>
#include <utility>
using KVPCollectionType = std::map<std::string, std::string>;
class c {
public:
c(const KVPCollectionType&& kvps = {}){}
};
std::shared_ptr<c> make_c_shared(KVPCollectionType&& a) {
return std::make_shared<c>(std::move(a));
}
int main() {
auto ok = make_c_shared(KVPCollectionType{{"key1", "value1"},{"key2","value2"}});
auto ng = make_c_shared({{"key1", "value1"},{"key2","value2"}});
}
357デフォルトの名無しさん
2019/04/21(日) 08:19:35.76ID:jJhiZdMc358デフォルトの名無しさん
2019/04/22(月) 23:55:58.01ID:uyfay/gq メンバアクセスにthis->つける?
359デフォルトの名無しさん
2019/04/23(火) 00:01:58.24ID:cW1os5L0 エディタの補完機能使いたいときにたまにそうやって補完して最後に消す。
が、たまに忘れる。
が、たまに忘れる。
360デフォルトの名無しさん
2019/04/23(火) 00:02:35.52ID:BSgCsXpz IDEの都合で付ける事が良くある
付けないと補完候補多すぎて
付けないと補完候補多すぎて
361デフォルトの名無しさん
2019/04/23(火) 00:09:08.10ID:JKfCESEZ ああなるほど
補完候補を絞るのには便利ですね
補完候補を絞るのには便利ですね
362デフォルトの名無しさん
2019/04/23(火) 18:16:01.64ID:Wx+D+gzo メンバであるという保証ができるので付ける
363デフォルトの名無しさん
2019/04/23(火) 19:39:28.32ID:cE0Yu4R7 メンバ名は頭にm_付けろみたいなクソルールよりずっといいと思うので付けるべき
364デフォルトの名無しさん
2019/04/23(火) 19:42:38.83ID:JKfCESEZ 仮引数と別の名前つけるのだるいからm_は別に良いと思う
365デフォルトの名無しさん
2019/04/23(火) 20:02:01.86ID:8XemHsTC メンバ変数に専用の色付けたらいいじゃん
366デフォルトの名無しさん
2019/04/23(火) 20:13:43.06ID:sktjqElV 引数そのままメンバに入れるなら引数に_つけてvar(_var)って初期化してるわ
>>366
それって var(var) でも問題ないんですよ…
それって var(var) でも問題ないんですよ…
368さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/04/23(火) 21:18:06.78ID:DAl4rXky バーバー
369デフォルトの名無しさん
2019/04/23(火) 21:32:08.36ID:BSgCsXpz >>367
綴り間違えたら悲惨なことになった
綴り間違えたら悲惨なことになった
370デフォルトの名無しさん
2019/04/23(火) 21:34:08.78ID:3k1+3l7a ハンガリアン記法は、入力補完のないエディタ上での可読性を高めるのに役立ってるでしょ。今でも。
371デフォルトの名無しさん
2019/04/23(火) 21:35:06.30ID:8XemHsTC ゴミ使ってる奴のことなんか知らん
372デフォルトの名無しさん
2019/04/23(火) 21:36:10.37ID:BSgCsXpz あれ可読性落ちるだろ
373デフォルトの名無しさん
2019/04/23(火) 21:39:11.30ID:lLaZpSEH 定期的にunsignedとsigned混在させてハマるアホをみるとハンガリアン必要だと思うわ
374デフォルトの名無しさん
2019/04/23(火) 21:40:37.34ID:lAbUfbw7 C#で入力補完のないエディタがどうとかさすがにナンセンスでは
だってvisual studio使うじゃん
だってvisual studio使うじゃん
375デフォルトの名無しさん
2019/04/23(火) 21:41:16.53ID:ZkNEZW45 どっちでもいいわ。
大抵の場合そんなとこに気を使わんといかんコードになってることのが問題。
大抵の場合そんなとこに気を使わんといかんコードになってることのが問題。
376デフォルトの名無しさん
2019/04/23(火) 21:45:47.89ID:lLaZpSEH >>375
こういうやつがそのうちハマって丸1日つぶしたりするんだよなw
こういうやつがそのうちハマって丸1日つぶしたりするんだよなw
377デフォルトの名無しさん
2019/04/23(火) 21:51:11.17ID:8XemHsTC >>373
関係なくて草
関係なくて草
378デフォルトの名無しさん
2019/04/23(火) 21:55:03.06ID:lLaZpSEH 関係あることわかってなくて草
379デフォルトの名無しさん
2019/04/23(火) 21:55:54.04ID:8XemHsTC 黙ってろゴミw
380デフォルトの名無しさん
2019/04/23(火) 21:59:25.62ID:ZkNEZW45 >>376
だから人を嵌めるようなコード書くなつってんだよばか。
だから人を嵌めるようなコード書くなつってんだよばか。
381デフォルトの名無しさん
2019/04/23(火) 22:06:36.15ID:lLaZpSEH382デフォルトの名無しさん
2019/04/23(火) 22:53:19.60ID:ZkNEZW45 いつの間にかハンガリアンが言語仕様になってた。。
383デフォルトの名無しさん
2019/04/23(火) 23:10:13.77ID:lLaZpSEH ハンガリアンも防御的なプログラミングと考えたら悪くないよ
成り立ち調べてみな
でも基本型とポインタだけだな
クラスには無用だと思う
成り立ち調べてみな
でも基本型とポインタだけだな
クラスには無用だと思う
384デフォルトの名無しさん
2019/04/23(火) 23:27:23.37ID:8XemHsTC てめーらはまともなIDEかエディタ使ってねえのかよ
385デフォルトの名無しさん
2019/04/23(火) 23:37:57.35ID:JKfCESEZ むしろVSがないと何も書けない
386デフォルトの名無しさん
2019/04/23(火) 23:55:15.96ID:UPBQPhwq VSがあっても何も書けない。
387デフォルトの名無しさん
2019/04/23(火) 23:55:30.60ID:ZkNEZW45 c++みたいに型情報ありがデフォルトの言語でハンガリアンとか二重メンテもいいとこだわ。
388デフォルトの名無しさん
2019/04/24(水) 01:00:02.97ID:pnt3hUol 前方宣言したクラスをTにしたスマポメンバでコンパイル通るときと通らないときがあって調べてたら
デストラクタがインライン(暗黙)だと駄目だとわかった
しかもこの問題が起こるのはunique_ptrのときだけでshared_ptrはデストラクタの定義に関係なく通る
わけわからんぞ
教科書に書いておいてくれ
class ClassB;
class ClassA{
public:
ClassA();
private:
std::unique_ptr<ClassB> u; // NG
std::shared_ptr<ClassB> s; // OK
}
---
class ClassB;
class ClassA{
public:
ClassA();
~ClassA(); ←これでunique_ptrもOK
private:
std::unique_ptr<ClassB> u; // OK
std::shared_ptr<ClassB> s; // OK
}
デストラクタがインライン(暗黙)だと駄目だとわかった
しかもこの問題が起こるのはunique_ptrのときだけでshared_ptrはデストラクタの定義に関係なく通る
わけわからんぞ
教科書に書いておいてくれ
class ClassB;
class ClassA{
public:
ClassA();
private:
std::unique_ptr<ClassB> u; // NG
std::shared_ptr<ClassB> s; // OK
}
---
class ClassB;
class ClassA{
public:
ClassA();
~ClassA(); ←これでunique_ptrもOK
private:
std::unique_ptr<ClassB> u; // OK
std::shared_ptr<ClassB> s; // OK
}
389デフォルトの名無しさん
2019/04/24(水) 07:38:59.52ID:IdP8M60W >>388
unique_ptr<T>のデストラクタはインスタンス化するときにTが完全型であることを要求する(デストラクタで直接Tのデストラクタを呼ぶ)
unique_ptrを内包するクラスのデストラクタが暗黙だとクラス内でコンパイラによって実装されるけど、その場でunique_ptrのデストラクタを要求する
しかし、その翻訳単位内でTの定義が無ければコンパイルエラーとなる
unique_ptr<T>を内包するクラスのデストラクタがとりあえず宣言だけでもあると
実際の定義がある場所で同様の事が起こるので、その場所でTの定義が見つかればいい
その場合に定義を書かないと、コンパイラさんが適切な翻訳単位内に定義をおいてくれるみたい
shared_ptrは動的削除子のおかげでデストラクタが呼ばれるところで適切にデリータを定義し、デストラクタを呼ぶようになっているのでこの様な問題は起こらない
shared_ptr<T>のデストラクタ内ではTのデストラクタを直接呼び出すようなコードが無い
unique_ptr<T>のデストラクタはインスタンス化するときにTが完全型であることを要求する(デストラクタで直接Tのデストラクタを呼ぶ)
unique_ptrを内包するクラスのデストラクタが暗黙だとクラス内でコンパイラによって実装されるけど、その場でunique_ptrのデストラクタを要求する
しかし、その翻訳単位内でTの定義が無ければコンパイルエラーとなる
unique_ptr<T>を内包するクラスのデストラクタがとりあえず宣言だけでもあると
実際の定義がある場所で同様の事が起こるので、その場所でTの定義が見つかればいい
その場合に定義を書かないと、コンパイラさんが適切な翻訳単位内に定義をおいてくれるみたい
shared_ptrは動的削除子のおかげでデストラクタが呼ばれるところで適切にデリータを定義し、デストラクタを呼ぶようになっているのでこの様な問題は起こらない
shared_ptr<T>のデストラクタ内ではTのデストラクタを直接呼び出すようなコードが無い
390デフォルトの名無しさん
2019/04/24(水) 18:54:26.06ID:pnt3hUol >>389
解説ありがとう
解説ありがとう
391デフォルトの名無しさん
2019/04/26(金) 01:05:34.79ID:UW94aXeh うーんC++プライマー8500円かぁ。本家のプログラミング言語C++第4版はもっとするし
情報量からすると安いが本一冊にポンと出すにはお高い……日本語である程度網羅的な本となるとこの2冊くらいよね
情報量からすると安いが本一冊にポンと出すにはお高い……日本語である程度網羅的な本となるとこの2冊くらいよね
392デフォルトの名無しさん
2019/04/26(金) 19:40:01.51ID:aJMYFNVy set<double> って int のときと同様にちゃんとソートされるんですか?
393デフォルトの名無しさん
2019/04/26(金) 20:34:04.97ID:Fns+A8Ou NaNが無ければ大丈夫NaNじゃね
394デフォルトの名無しさん
2019/04/26(金) 20:34:22.70ID:Fns+A8Ou NaNが無ければ大丈夫NaNじゃね
395デフォルトの名無しさん
2019/04/26(金) 22:17:06.30ID:PbDaLlJb のちに永久保存される平成最後のスベり
396デフォルトの名無しさん
2019/04/26(金) 23:59:20.16ID:LBUDtqYL たしかにそうだな・・いよいよ平成最後なんだな
みなさん、>>393-394 みたいな事にならないよう、気をひきしめましょう
みなさん、>>393-394 みたいな事にならないよう、気をひきしめましょう
397デフォルトの名無しさん
2019/04/27(土) 00:20:06.56ID:nrL5Mhiq 平成最後っていう言い回し使われすぎて嫌いになってきた
398デフォルトの名無しさん
2019/04/27(土) 00:23:11.48ID:v7q7vgVx イテレータの参照を次に移すときってなんでitr++ではなく++itrなの?
399デフォルトの名無しさん
2019/04/27(土) 00:33:20.40ID:nrL5Mhiq ヤフーでぐぐれ
400デフォルトの名無しさん
2019/04/27(土) 01:04:24.73ID:oB7jkl++ 素直な実装だとitr++より++itrのほうが速いんじゃないかなあ、となんとなくみんなが思っているから
401デフォルトの名無しさん
2019/04/27(土) 01:07:57.61ID:v7q7vgVx 速度に差が出るのか
知らなかった
知らなかった
402デフォルトの名無しさん
2019/04/27(土) 01:35:51.19ID:KjSesqKI インクリメント後のイテレーターの値を返す処理の実装を考えると
先の場合はインクリメントしてそのまま渡せばいいけど
後の場合はインクリメント前の値を保存しといてそれを渡さないといけないので一手間かかるから
・・なんだけど諸々の最適化とか色んな条件とか考えたらそこまで差がでるかどうかはよくわからん
先の場合はインクリメントしてそのまま渡せばいいけど
後の場合はインクリメント前の値を保存しといてそれを渡さないといけないので一手間かかるから
・・なんだけど諸々の最適化とか色んな条件とか考えたらそこまで差がでるかどうかはよくわからん
403デフォルトの名無しさん
2019/04/27(土) 01:38:33.58ID:EJ6OYH9I it++だと、戻り値をコピーしてとっておいてから、ポインタなりを進めた後にreturnする必要があるが、
++itだと、ポインタを進めた後に参照を返すだけでするからな。
++itだと、ポインタを進めた後に参照を返すだけでするからな。
404デフォルトの名無しさん
2019/04/27(土) 01:39:08.58ID:EJ6OYH9I 被ったw
405デフォルトの名無しさん
2019/04/27(土) 11:13:20.29ID:qp4sR6Ay406デフォルトの名無しさん
2019/04/27(土) 11:46:20.51ID:Tan1PMrG >>402-405
cppcheck にかけたらちゃんと警告出るね。
cppcheck にかけたらちゃんと警告出るね。
407デフォルトの名無しさん
2019/04/27(土) 14:06:33.77ID:dwPa57iA どうせ戻り値捨てるんだったら++itを選んでおいて損はない
無駄にit++を使うのは時期尚早な最不適化って奴だ
無駄にit++を使うのは時期尚早な最不適化って奴だ
408デフォルトの名無しさん
2019/04/27(土) 19:31:57.61ID:Ht8C3PIL C++で書くんだから後置インクリメントの方がメインに決まってんじゃん
前置は異端だ
前置は異端だ
409デフォルトの名無しさん
2019/04/27(土) 19:37:22.12ID:nrL5Mhiq 殺せ
410デフォルトの名無しさん
2019/04/27(土) 20:12:28.01ID:uerCNQ9f ++C
411デフォルトの名無しさん
2019/04/27(土) 20:53:36.82ID:hHA0b+W+ C++でいいんだよ。
規格は一歩進むけど、使ってるやつはbetter Cばかりってな
規格は一歩進むけど、使ってるやつはbetter Cばかりってな
412デフォルトの名無しさん
2019/04/27(土) 20:55:05.03ID:nrL5Mhiq ++C++まだかよ
413デフォルトの名無しさん
2019/04/27(土) 22:37:09.45ID:Czz6ceI0 >>411
vectorとかstringとか使わんの?
vectorとかstringとか使わんの?
414デフォルトの名無しさん
2019/04/28(日) 03:35:47.43ID:c2OY2Ben CArrayとCStringだぞ
コピコンは定義されてないから自分で作るぞ
コピコンは定義されてないから自分で作るぞ
415デフォルトの名無しさん
2019/04/28(日) 11:01:20.49ID:DJV+PGkd CArrayは、<algorithm>ヘッダーで定義された信頼性の高いユーティリティ関数を使えないのがね・・・。
416デフォルトの名無しさん
2019/04/28(日) 13:46:52.13ID:nadmD8id >>413
この思考がbetter C
この思考がbetter C
417デフォルトの名無しさん
2019/04/28(日) 14:25:38.47ID:n1RanWws >>416
わけわからん
わけわからん
418デフォルトの名無しさん
2019/04/28(日) 14:29:28.69ID:c2OY2Ben 俺がBest Cだ
419はちみつ餃子 ◆8X2XSCHEME
2019/04/28(日) 14:56:12.05ID:mA4VukHK420デフォルトの名無しさん
2019/04/28(日) 15:37:56.41ID:UbqPSgHc inconsistent begin/end types in range-based ‘for’ statement
gcc(g++) 8.2で -std=c++17オプションでコンパイルで
範囲forでこのエラーが出るんだが
begin endの型不一致の制限緩和されいるはずだよな?
原因わかる方いますか?
gcc(g++) 8.2で -std=c++17オプションでコンパイルで
範囲forでこのエラーが出るんだが
begin endの型不一致の制限緩和されいるはずだよな?
原因わかる方いますか?
421デフォルトの名無しさん
2019/04/28(日) 15:49:39.60ID:4R543R/q >>415
GetData()とGetData()+GetSize()を渡せば、とりあえず動くんじゃね?
GetData()とGetData()+GetSize()を渡せば、とりあえず動くんじゃね?
422デフォルトの名無しさん
2019/04/28(日) 16:05:30.47ID:n1RanWws >>420 比較演算子定義されてないとか?
423デフォルトの名無しさん
2019/04/28(日) 16:22:25.11ID:UbqPSgHc >>422
int _n = 0;
auto __begin = _container.begin();
auto __end = _container.end();
for (; __begin != __end; ++__begin) {
_n = *__begin;
}
比較演算子はちゃんと定義してるし
上のコードは何故かコンパイル通る
だけど
for (const auto _n : _container) {
//hoge
}
は何故か通らない
int _n = 0;
auto __begin = _container.begin();
auto __end = _container.end();
for (; __begin != __end; ++__begin) {
_n = *__begin;
}
比較演算子はちゃんと定義してるし
上のコードは何故かコンパイル通る
だけど
for (const auto _n : _container) {
//hoge
}
は何故か通らない
424デフォルトの名無しさん
2019/04/28(日) 16:41:14.97ID:n1RanWws 範囲for文のconst autoをconst auto&かauto&&に変えるとどうなる?
425デフォルトの名無しさん
2019/04/28(日) 16:43:13.35ID:UbqPSgHc >>424
auto&&にした時のみエラーが増えます
cannot bind rvalue reference of type ‘const long unsigned int&&’ to lvalue of type
auto&&にした時のみエラーが増えます
cannot bind rvalue reference of type ‘const long unsigned int&&’ to lvalue of type
426デフォルトの名無しさん
2019/04/28(日) 16:54:13.46ID:/ZzCGjK1 beginとendのシグニチャは?
427デフォルトの名無しさん
2019/04/28(日) 17:02:57.34ID:UbqPSgHc >>426
using iterator = typename std;;vector<int>::iterator;
using const_iterator = typename std;;vector<int>::const_iterator;
using my_iterator = MYIterator;
my_iterator begin();
iterator end();
const my_iterator begin() const;
const_iterator end() const;
const my_iterator cbegin() const;
const_iterator cend() const;
using iterator = typename std;;vector<int>::iterator;
using const_iterator = typename std;;vector<int>::const_iterator;
using my_iterator = MYIterator;
my_iterator begin();
iterator end();
const my_iterator begin() const;
const_iterator end() const;
const my_iterator cbegin() const;
const_iterator cend() const;
428デフォルトの名無しさん
2019/04/28(日) 17:18:10.81ID:HBE/zmE6 これで動かん?
for (auto&& _n : _container) {
}
for (auto&& _n : _container) {
}
429デフォルトの名無しさん
2019/04/28(日) 17:28:42.95ID:UbqPSgHc >>428
動かないです
動かないです
430デフォルトの名無しさん
2019/04/28(日) 18:12:40.94ID:/ZzCGjK1 MYIteratorの実体がunsigned longみたいだけど
vector<int>::iteratorの実体がポインタだったらoperator!=の定義できなくない?
vector<int>::iteratorの実体がポインタだったらoperator!=の定義できなくない?
431デフォルトの名無しさん
2019/04/28(日) 18:13:25.64ID:7uO4eV2c >>420
wandboxで再現コード作って出直すか、それができないんならエスパーに頼んだほうがいいんじゃないかな。
https://mevius.2ch.net/test/read.cgi/tech/1187922645/
wandboxで再現コード作って出直すか、それができないんならエスパーに頼んだほうがいいんじゃないかな。
https://mevius.2ch.net/test/read.cgi/tech/1187922645/
432デフォルトの名無しさん
2019/04/28(日) 20:53:07.97ID:B+3vkW9O >>423
bool operator != (〜) const ← これ付け忘れてないか?
bool operator != (〜) const ← これ付け忘れてないか?
433デフォルトの名無しさん
2019/04/28(日) 20:57:20.67ID:HwAGJ3yN constつけ忘れは時々はまる
434デフォルトの名無しさん
2019/04/28(日) 23:15:17.87ID:UbqPSgHc >>427
自己解決
const iteratorとconst_iteratorが一緒だと勘違いしていた
const my_iteratorではなくmy_const_iteratorを実装して返り値とすべきでした
自己解決
const iteratorとconst_iteratorが一緒だと勘違いしていた
const my_iteratorではなくmy_const_iteratorを実装して返り値とすべきでした
435デフォルトの名無しさん
2019/04/29(月) 08:12:30.69ID:caHZo185 struct A{
int member;
};
struct B: A{
void run(){member = 0;}//ok
};
template<typename T>
struct TA{
T member;
};
template<typename T>
struct TB:TA<T>{
void run(){member = 0;}//NG。this->memberとするとok
};
クラステンプレートを継承してクラステンプレートを作成した場合にthisでないと継承元のメンバーが見えないのは仕様?
int member;
};
struct B: A{
void run(){member = 0;}//ok
};
template<typename T>
struct TA{
T member;
};
template<typename T>
struct TB:TA<T>{
void run(){member = 0;}//NG。this->memberとするとok
};
クラステンプレートを継承してクラステンプレートを作成した場合にthisでないと継承元のメンバーが見えないのは仕様?
436デフォルトの名無しさん
2019/04/29(月) 10:32:33.68ID:ytpB6N2f 仕様
一寸前までのmsvcではなぜか通っていたけど
一寸前までのmsvcではなぜか通っていたけど
437デフォルトの名無しさん
2019/04/29(月) 11:47:53.29ID:atpu4K08 >>436
なんでそんな仕様になってるんだろう…
なんでそんな仕様になってるんだろう…
438デフォルトの名無しさん
2019/04/29(月) 12:13:25.59ID:TWBg2sM/439デフォルトの名無しさん
2019/04/30(火) 10:16:07.47ID:5viqjSMx 8bitや16bitのintしか使えない環境で、
32bitなどの大きな数を扱うにはどうすれば良いですか?
変数をいくつかつなげて大きな数を表現できないかと思っているのですが、やり方が分りません。
ご存知の方いらっしゃいましたら教えて頂けると嬉しいです。
32bitなどの大きな数を扱うにはどうすれば良いですか?
変数をいくつかつなげて大きな数を表現できないかと思っているのですが、やり方が分りません。
ご存知の方いらっしゃいましたら教えて頂けると嬉しいです。
440439
2019/04/30(火) 10:20:33.67ID:5viqjSMx 補足させて下さい。
足し算、引き算は出来るようにしたいです。
可能でしたら、掛け算や割り算もできると助かります。
足し算、引き算は出来るようにしたいです。
可能でしたら、掛け算や割り算もできると助かります。
441デフォルトの名無しさん
2019/04/30(火) 10:25:07.05ID:l5C1eDEl 多倍長演算で検索
442デフォルトの名無しさん
2019/04/30(火) 10:45:28.19ID:Cm5pFeJF >>439-440
https://mevius.5ch.net/test/read.cgi/tech/1434079972/51
近々、委譲をやめて継承に戻すつもりです
あと掛け算はkaratsubaを適用できる目処がたちました
x64 に特化してインラインアセンブラ化することも考えています
https://mevius.5ch.net/test/read.cgi/tech/1434079972/51
近々、委譲をやめて継承に戻すつもりです
あと掛け算はkaratsubaを適用できる目処がたちました
x64 に特化してインラインアセンブラ化することも考えています
444はちみつ餃子 ◆8X2XSCHEME
2019/04/30(火) 12:03:49.54ID:MGpUBTsC karatsuba はかなり桁数が多いときじゃないと効果がないとも聞くけど
>>444
多分それは乗算FFTのことかと
多分それは乗算FFTのことかと
446デフォルトの名無しさん
2019/04/30(火) 12:28:54.66ID:44LYo/LT >>439
stdint.h で int_least32_t とか使えるのでは?
stdint.h で int_least32_t とか使えるのでは?
>>446
8bit/16bit CPU で int_least32_t とかはそもそも存在しないのでは?
8bit/16bit CPU で int_least32_t とかはそもそも存在しないのでは?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★6 [ぐれ★]
- 「日の丸にバツ印」掲げた大学生 あいまいな国旗損壊罪に「怖い」 The Mainichi [少考さん★]
- 高市内閣「支持」64%「不支持」19% NHK世論調査 ★2 [少考さん★]
- 【音楽】BARBEE BOYS・KONTAが事故で四肢麻痺を公表、新体制で活動は継続 [少考さん★]
- 高市首相「多様なコメの増産を進める」 方針転換への懸念払拭狙いか ★2 [どどん★]
- 中国「捜索レーダー起動は各国の通常の手法」 火器管制用か回答せず [蚤の市★]
- 初めて顔パックしたけど凄いなこれ
- ぺこーら、地震で同僚が次々配信を止めるなか強行し続けるので悪目立ちするwww [268244553]
- 巨大地震 [957955821]
- 胃腸弱い奴は社会的弱者←ガチ
- 【🏡】岩手ビックウェーブ🏄うおおおおおおおおおおお🌊
- 千晴の住所教えてよ!
