次スレを立てる時は本文の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/
760デフォルトの名無しさん
2019/06/06(木) 00:50:27.07ID:owYx3C4X >>759
参照とオーバーロードにどういう関係がありますのん?
参照とオーバーロードにどういう関係がありますのん?
761デフォルトの名無しさん
2019/06/06(木) 00:51:47.37ID:vlcJQGqo 専門家が深く考えて議論して決めたことを素人が批判してて草
762デフォルトの名無しさん
2019/06/06(木) 01:17:25.71ID:u8n9IUq9 >>752は、operator->()をみたらしぬ
763デフォルトの名無しさん
2019/06/06(木) 03:17:03.81ID:BJpCSJfe =0とか分かりやすすぎ
764デフォルトの名無しさん
2019/06/06(木) 06:49:58.29ID:VYs0Fl5K765デフォルトの名無しさん
2019/06/06(木) 07:01:39.10ID:PF44iNdb Cの古い文法を(ほぼ)そのまま残した上にC++を作ったから
いきなりC++から勉強すると気色悪いと感じる面もあるかもな。
ポインタと参照が同時期に言語に入ってたら、
int a; // 通常の変数
int &ra = a; // 参照
int *pa = a; // &演算子なしで暗黙にポインタに変換
てな書き方になってたかも知れん。
void func(int n);
void func(int *pn);
void func(int &rn);
これらは曖昧で解決できない、になってたかも。
いきなりC++から勉強すると気色悪いと感じる面もあるかもな。
ポインタと参照が同時期に言語に入ってたら、
int a; // 通常の変数
int &ra = a; // 参照
int *pa = a; // &演算子なしで暗黙にポインタに変換
てな書き方になってたかも知れん。
void func(int n);
void func(int *pn);
void func(int &rn);
これらは曖昧で解決できない、になってたかも。
766デフォルトの名無しさん
2019/06/06(木) 08:16:40.59ID:YZj7S1bc >>765
ポインタのポインタやキャストのこと考えたら、その例のような暗黙のポインタ変換とか持ち込むとかえって混乱やミスの元になりそうだし、現状の仕様もしかたないものかなと思うよ
ポインタのポインタやキャストのこと考えたら、その例のような暗黙のポインタ変換とか持ち込むとかえって混乱やミスの元になりそうだし、現状の仕様もしかたないものかなと思うよ
767デフォルトの名無しさん
2019/06/06(木) 08:40:36.13ID:p2k3Z1kO >>766
Go使いやすいよ
Go使いやすいよ
768デフォルトの名無しさん
2019/06/06(木) 10:41:12.25ID:VbLHIWhF 参照引数に結果を代入とかたまに使うけど呼び出す側から分かりやすいようにC#のout修飾子とかほしい
769デフォルトの名無しさん
2019/06/06(木) 11:48:51.90ID:CNru8FH6 C#のoutは言われてみれば確かにって感じだけど、そうやって問題提起されるまではそもそも当然すぎて問題だと思われてなかったんだろうね
引数に代入することで呼出元へ値を返すのってfortranとかの時代から続く悪しき伝統だから
引数に代入することで呼出元へ値を返すのってfortranとかの時代から続く悪しき伝統だから
770デフォルトの名無しさん
2019/06/06(木) 11:53:56.84ID:fZVA+Le5 分配束縛の導入が必要だね
あと、NRVOの義務化
あと、NRVOの義務化
771デフォルトの名無しさん
2019/06/06(木) 12:07:43.67ID:bIT6TIHx 仮引数名をoutにしとけばいいだけでは?
772デフォルトの名無しさん
2019/06/06(木) 12:09:14.70ID:G/M7SWSB >>768
それconst付きかどうかで判断すべきと言うか判断するだろ?
それconst付きかどうかで判断すべきと言うか判断するだろ?
773デフォルトの名無しさん
2019/06/06(木) 12:26:08.08ID:qi/Zl49P 世の中には引数にconst付けない糞ライブラリがあるんですよ
774デフォルトの名無しさん
2019/06/06(木) 13:52:14.20ID:CNru8FH6 >>772
問題はそこじゃない
呼出元のコードだけを見たときにソース上で区別がつかないだろ
C#のoutは呼出元にも付ける必要があるんだよ
C++でも出力引数に参照渡しを使うことは禁止しポインタを使う流派があるが、
あれも呼出元を見たとき書換えの可能性の有無を&の有無だけで判別できるようにするのが目的
問題はそこじゃない
呼出元のコードだけを見たときにソース上で区別がつかないだろ
C#のoutは呼出元にも付ける必要があるんだよ
C++でも出力引数に参照渡しを使うことは禁止しポインタを使う流派があるが、
あれも呼出元を見たとき書換えの可能性の有無を&の有無だけで判別できるようにするのが目的
775デフォルトの名無しさん
2019/06/06(木) 17:27:39.41ID:G/M7SWSB776デフォルトの名無しさん
2019/06/06(木) 17:40:39.24ID:AdzMW0EL class Person
{
public:
Person& set(int);
private:
int age;
}
Person& Person::set(int num)
{
age = num;
return *this;
}
*thisを返す関数ってことで大雑把にこんな感じのサンプルが本に出てました
メンバーセットするだけならわざわざ本体の参照返す必要無くない?voidで良くない?って思ったんですけど何かメリットってありますか?
{
public:
Person& set(int);
private:
int age;
}
Person& Person::set(int num)
{
age = num;
return *this;
}
*thisを返す関数ってことで大雑把にこんな感じのサンプルが本に出てました
メンバーセットするだけならわざわざ本体の参照返す必要無くない?voidで良くない?って思ったんですけど何かメリットってありますか?
777デフォルトの名無しさん
2019/06/06(木) 17:45:07.81ID:Yj1l17Nf 基本的には複数の値を戻したいならtuple返すべきだし、オブジェクトの状態を書き換える関数はそのオブジェクトのメンバにするべき
データ構造体を一部書き換えるような処理は、書き換えじゃなくて新しいのを作って返した方が読みやすいし効率的なことも多い
全部が全部そうとは言わないけど、参照引数は書き換え分かりにくいってブーブー言う奴のコードって大体汚いイメージある
データ構造体を一部書き換えるような処理は、書き換えじゃなくて新しいのを作って返した方が読みやすいし効率的なことも多い
全部が全部そうとは言わないけど、参照引数は書き換え分かりにくいってブーブー言う奴のコードって大体汚いイメージある
778デフォルトの名無しさん
2019/06/06(木) 17:49:48.99ID:Yj1l17Nf >>776
operator=系は組み込み演算子と挙動合わせるために*thisを返すことが多い
今はあんまり推奨されないけどif(a=foo())とか書けるようにね
その例はif(p.set(40))とか書きたいのか、operator=系の話と混同してよく分からずに適当に書いてるか、そのどっちか
operator=系は組み込み演算子と挙動合わせるために*thisを返すことが多い
今はあんまり推奨されないけどif(a=foo())とか書けるようにね
その例はif(p.set(40))とか書きたいのか、operator=系の話と混同してよく分からずに適当に書いてるか、そのどっちか
779デフォルトの名無しさん
2019/06/06(木) 17:52:12.08ID:zzmbMYQ4780デフォルトの名無しさん
2019/06/06(木) 17:57:05.98ID:vlcJQGqo C++はアドリブ力が要求されるからな
781デフォルトの名無しさん
2019/06/06(木) 18:04:35.29ID:WQTF5R5g C++の言語仕様にケチつけたところでどうにもならんでしょ。
なにがしたいの。 >>2 にある「すっぱい葡萄」な人?
なにがしたいの。 >>2 にある「すっぱい葡萄」な人?
782デフォルトの名無しさん
2019/06/06(木) 18:13:42.57ID:BJpCSJfe 呼び出し側の制約がしたいならtemplateでちょこっと書けば出来るし
template<typename T>
struct Out {
T& ref_;
explicit Out(T& ref_):ref_(ref_){}
T& operator()() const{return ref_;}
};
template<typename T>
inline auto out(T& ref_for_out)
{
return Out<T>(ref_for_out);
}
void func(Out<int> const& v)
{
v()=1;
}
int main()
{
int i;
//func(i);
func(out(i));
}
template<typename T>
struct Out {
T& ref_;
explicit Out(T& ref_):ref_(ref_){}
T& operator()() const{return ref_;}
};
template<typename T>
inline auto out(T& ref_for_out)
{
return Out<T>(ref_for_out);
}
void func(Out<int> const& v)
{
v()=1;
}
int main()
{
int i;
//func(i);
func(out(i));
}
783デフォルトの名無しさん
2019/06/06(木) 20:03:44.48ID:cAEvq2fq やれやれ
784デフォルトの名無しさん
2019/06/06(木) 20:12:37.34ID:cbON3Xt8785デフォルトの名無しさん
2019/06/06(木) 20:55:57.85ID:mQulWN9t786デフォルトの名無しさん
2019/06/06(木) 21:33:19.25ID:9wGcGWUm787デフォルトの名無しさん
2019/06/06(木) 23:08:39.21ID:Qxsak61t メソッドチェーンか
Ruby, jQuery のマネw
Kotlin も真似してる
Ruby, jQuery のマネw
Kotlin も真似してる
788デフォルトの名無しさん
2019/06/06(木) 23:21:23.55ID:/EsEj/n2 マネってお前…
789デフォルトの名無しさん
2019/06/07(金) 06:54:43.17ID:CBwJTjr/790デフォルトの名無しさん
2019/06/07(金) 07:43:41.42ID:Pe4fcpYB >>789
書くのも読むのもだるい
書くのも読むのもだるい
791デフォルトの名無しさん
2019/06/07(金) 07:45:42.22ID:51aJPRpO 2個くらいならいいが
10個くらいつなぐやついて長すぎて改行するから結局同じ
10個くらいつなぐやついて長すぎて改行するから結局同じ
792デフォルトの名無しさん
2019/06/07(金) 07:52:12.96ID:bSdf4jBS おっしゃる通り
793デフォルトの名無しさん
2019/06/07(金) 07:59:02.43ID:qUGReS69 メソッドチェーンの利点で調べてみたら名前付き引数みたいなことが可能とあったな。
//メソッドチェーンで設定してない値は初期値を使用
//コンストラクタとは違いチェーンしてるので値の設定の順番は自由
void test(data().year(2019).manth(12).day(24));
void test(data().manth(12).day(24).year(2018));
//メソッドチェーンで設定してない値は初期値を使用
//コンストラクタとは違いチェーンしてるので値の設定の順番は自由
void test(data().year(2019).manth(12).day(24));
void test(data().manth(12).day(24).year(2018));
794デフォルトの名無しさん
2019/06/07(金) 07:59:54.93ID:CBwJTjr/ >>790
C++に向いてないからやめたらw
C++に向いてないからやめたらw
795デフォルトの名無しさん
2019/06/07(金) 08:02:27.28ID:CBwJTjr/796デフォルトの名無しさん
2019/06/07(金) 08:09:00.14ID:qUGReS69797デフォルトの名無しさん
2019/06/07(金) 08:13:09.29ID:xj9RlcCA 「流れるような」とか言われると笑う
798デフォルトの名無しさん
2019/06/07(金) 10:10:37.57ID:CBwJTjr/799デフォルトの名無しさん
2019/06/07(金) 10:20:00.95ID:Pe4fcpYB800デフォルトの名無しさん
2019/06/07(金) 10:22:00.36ID:BtT+kizM range adapter、C++20から使えるよ、メソッドチェーンだよ・・・
801デフォルトの名無しさん
2019/06/07(金) 10:34:36.93ID:9H5/9dgd ようするにラムダ式をチェインさせればいいんだろ
かんたんじゃん
Lispの時代に近づいてるだけだ
かんたんじゃん
Lispの時代に近づいてるだけだ
802デフォルトの名無しさん
2019/06/07(金) 10:35:22.44ID:aX0Y7AKm803デフォルトの名無しさん
2019/06/07(金) 11:29:19.04ID:O2O1gPjv メソッドチェーンとかいらんわ
リファクタリングしにくいし
Kotlinのapplyがベスト
リファクタリングしにくいし
Kotlinのapplyがベスト
804デフォルトの名無しさん
2019/06/07(金) 11:30:58.83ID:dp7q4wQg 横に長いのがいやなんだよな
多少冗長でも縦の方がいい
特になっがいメソッドチェーンで途中から返り値変わってるやつとか殺意わく
多少冗長でも縦の方がいい
特になっがいメソッドチェーンで途中から返り値変わってるやつとか殺意わく
805デフォルトの名無しさん
2019/06/07(金) 11:38:12.52ID:Pe4fcpYB 関数の定義は正方形に近いのがいい
806デフォルトの名無しさん
2019/06/07(金) 12:23:28.70ID:CBwJTjr/ >>802
そのうち追加されるだろうから待ってなよ
そのうち追加されるだろうから待ってなよ
807デフォルトの名無しさん
2019/06/07(金) 12:25:28.59ID:CBwJTjr/808デフォルトの名無しさん
2019/06/07(金) 14:04:49.95ID:Pe4fcpYB809デフォルトの名無しさん
2019/06/07(金) 14:45:14.80ID:8IyUxlC9 ところで>>776のような return *this; だとコピーが発生しないか?
return this;; として->でメソッドチェーンにするのならわかる
return this;; として->でメソッドチェーンにするのならわかる
811デフォルトの名無しさん
2019/06/07(金) 15:25:18.97ID:adznp1U4812デフォルトの名無しさん
2019/06/07(金) 15:29:32.41ID:DvEE5fSZ ちゃんとした設計になっていればどんなスタイルでもいいよ
813デフォルトの名無しさん
2019/06/07(金) 15:59:52.88ID:Qcue35T9 sortの比較関数についてなんですけど
たとえばvector<int> v = {0, 1, 2, 3, 4, 5}があったら
bool compare(const int& num1, const int& num2) { return num1 > num2; }
sort(v.begin(), v.end(), compare)で降順になりますよね
なるほど、0< n < v.size()でどのv[n]とv[n+1]でもcompareがtrueを満たすように
並び替えてくれるんだな、って理解したんです
それで試しに
bool compare(const int& num1, const int& num2) { return num1 == (num2 + 1); }
って書き換えたんですけど降順になってくれないんです
どのv[n]もv[n + 1] + 1に等しい→降順になると思ったんですけど
評価関数ってどう理解したらいいんでしょう?
たとえばvector<int> v = {0, 1, 2, 3, 4, 5}があったら
bool compare(const int& num1, const int& num2) { return num1 > num2; }
sort(v.begin(), v.end(), compare)で降順になりますよね
なるほど、0< n < v.size()でどのv[n]とv[n+1]でもcompareがtrueを満たすように
並び替えてくれるんだな、って理解したんです
それで試しに
bool compare(const int& num1, const int& num2) { return num1 == (num2 + 1); }
って書き換えたんですけど降順になってくれないんです
どのv[n]もv[n + 1] + 1に等しい→降順になると思ったんですけど
評価関数ってどう理解したらいいんでしょう?
814デフォルトの名無しさん
2019/06/07(金) 16:06:41.20ID:adznp1U4 pred内でprintfデバッグでもしてみたら?
n番目ととn+1番目の要素以外でも比較が発生しているのがわかるから。
n番目ととn+1番目の要素以外でも比較が発生しているのがわかるから。
815デフォルトの名無しさん
2019/06/07(金) 16:47:23.38ID:StFsiGGy 比較関数の右辺と左辺が入れ替えて比較した結果が矛盾してると、ソートは意図しない挙動になる。当たり前ではあるけど。
816デフォルトの名無しさん
2019/06/07(金) 16:52:15.04ID:RgT+kAkp >>813 俺も理解せずに言葉だけ覚えてるんだけど、
比較関数の性質として「狭義の弱順序」を示さなくちゃいけないのだ。
「狭義の弱順序」でネット検索すれば分かると思うよ。
少なくとも俺の場合「自分には(今のところ)理解できない」ことが分かった。
…て言うか、誰か分かりやすい解説サイトなど紹介してください。
比較関数の性質として「狭義の弱順序」を示さなくちゃいけないのだ。
「狭義の弱順序」でネット検索すれば分かると思うよ。
少なくとも俺の場合「自分には(今のところ)理解できない」ことが分かった。
…て言うか、誰か分かりやすい解説サイトなど紹介してください。
817デフォルトの名無しさん
2019/06/07(金) 17:52:26.15ID:9H5/9dgd 群論のマグマやモノイドあたり
818デフォルトの名無しさん
2019/06/07(金) 19:55:02.31ID:eP2De+H/ >>793
俺は好きだな。 jQuery みたいでかわいい
俺は好きだな。 jQuery みたいでかわいい
819デフォルトの名無しさん
2019/06/07(金) 20:05:15.50ID:RHh4qcVs 関数チェイン入るんかいな。
任意のコンテナにチェイン出来るフリー関数を書きたいお年頃なオレ。
任意のコンテナにチェイン出来るフリー関数を書きたいお年頃なオレ。
820デフォルトの名無しさん
2019/06/07(金) 20:43:41.59ID:bGghseJi C++20で構造体の指示付き初期化があるみたい。
https://ja.cppreference.com/w/cpp/language/aggregate_initialization
上の使えば
void test({.year = 2019, .manth = 12, .day =24});
は可能だな。
ただし構造体の順番通りじゃないといけないのが欠点(指示をしない場合は初期値を使用)
https://ja.cppreference.com/w/cpp/language/aggregate_initialization
上の使えば
void test({.year = 2019, .manth = 12, .day =24});
は可能だな。
ただし構造体の順番通りじゃないといけないのが欠点(指示をしない場合は初期値を使用)
821デフォルトの名無しさん
2019/06/07(金) 20:50:05.58ID:/Ew8uqLj バカが好きそうなクソシンタックスばっかり入るなw
822デフォルトの名無しさん
2019/06/07(金) 21:19:45.80ID:khSrdsPe cでもあるし妥当だろ
まあ順番は面倒だが
まあ順番は面倒だが
823デフォルトの名無しさん
2019/06/07(金) 21:34:52.47ID:51aJPRpO もうずっとmanthが気になって仕方がない
824デフォルトの名無しさん
2019/06/07(金) 21:57:41.25ID:PFCjrauz 質問です。
std::remove_ifは実際には要素の削除を行わない。
https://qiita.com/naka4/items/1f207b5d6acf102b0db7
「削除する要素を詰めて、サイズが縮んだコンテナの新しい終端イテレータを返す」
とのことですが
vector<shared_ptr<T>>の場合、その挙動に従わない場合があって困惑しています。
下記のコードで、erase()する前にCのデスタラクタが呼ばれているのは何故ですか。
https://ideone.com/7rp1Os
たぶんムーブの挙動の絡みのナニカだとは思うのですが…
また、この挙動はどう解釈すべきですか?
特に気にせずこのままremove_if→eraseは問題ないのか?
または規格に照らし合わせてNGだったり危険だったりするものでしょうか?
std::remove_ifは実際には要素の削除を行わない。
https://qiita.com/naka4/items/1f207b5d6acf102b0db7
「削除する要素を詰めて、サイズが縮んだコンテナの新しい終端イテレータを返す」
とのことですが
vector<shared_ptr<T>>の場合、その挙動に従わない場合があって困惑しています。
下記のコードで、erase()する前にCのデスタラクタが呼ばれているのは何故ですか。
https://ideone.com/7rp1Os
たぶんムーブの挙動の絡みのナニカだとは思うのですが…
また、この挙動はどう解釈すべきですか?
特に気にせずこのままremove_if→eraseは問題ないのか?
または規格に照らし合わせてNGだったり危険だったりするものでしょうか?
825デフォルトの名無しさん
2019/06/07(金) 22:07:56.01ID:bSdf4jBS 最初はsp(10)sp(11)sp(12)sp(13)sp(14)
remove_ifするとsp(10)sp(11)sp(13)sp(14*)sp(14*) (*は共有)
sp(12)の参照カウンタがなくなったので破棄される
普通の挙動では?
remove_ifするとsp(10)sp(11)sp(13)sp(14*)sp(14*) (*は共有)
sp(12)の参照カウンタがなくなったので破棄される
普通の挙動では?
826デフォルトの名無しさん
2019/06/07(金) 22:10:55.22ID:bSdf4jBS ムーブするからsp(10)sp(11)sp(13)sp(14)sp(null)か
結論は一緒だけど
結論は一緒だけど
827デフォルトの名無しさん
2019/06/07(金) 22:12:27.62ID:khSrdsPe swapじゃなくてmove代入されているんじゃね
828デフォルトの名無しさん
2019/06/07(金) 22:21:39.08ID:RHh4qcVs 参照カウンタ増やさない方法で移動されてるのかな??
インプレースだから、扱いが雑な気がする。
インプレースだから、扱いが雑な気がする。
829デフォルトの名無しさん
2019/06/07(金) 22:25:21.08ID:bSdf4jBS まあremoveの外側はunspecifiedだからどうするかは実装の勝手
雑に扱われてても文句は言えない
雑に扱われてても文句は言えない
830824
2019/06/07(金) 22:34:00.62ID:PFCjrauz 各位、どうも
なんとなく分かってきました
cpprefjpでも「有効だが未規定な値」とのこと
実装依存で参照カウントが減ってゼロになるときもあるよ、そういうmoveもされ得るよ
ということですね
とりあえず返却されたイテレータが示す範囲は正常だと思うので
erase()はそのまま使う方向でいってみようと思います
なんとなく分かってきました
cpprefjpでも「有効だが未規定な値」とのこと
実装依存で参照カウントが減ってゼロになるときもあるよ、そういうmoveもされ得るよ
ということですね
とりあえず返却されたイテレータが示す範囲は正常だと思うので
erase()はそのまま使う方向でいってみようと思います
831デフォルトの名無しさん
2019/06/07(金) 22:56:05.74ID:khSrdsPe 雑とかそう言う話ではなく
remove_ifの実装でremove後の空きshared_ptr部分に後の要素をどうやって詰めているかだけの話
swapじゃないなら、代入にせよmove代入にせよ、その場で参照カウント減ってデストラクタが呼ばれるよ
remove_ifの実装でremove後の空きshared_ptr部分に後の要素をどうやって詰めているかだけの話
swapじゃないなら、代入にせよmove代入にせよ、その場で参照カウント減ってデストラクタが呼ばれるよ
832デフォルトの名無しさん
2019/06/07(金) 23:01:56.95ID:RHh4qcVs 実装がとある一つなのだから、変数に持ち直してやるのもオーバヘッドがーという場合もある。
コンテナ上の空き領域の作り方も幾つかあって、
今回は疑似ポインタだからコピーが軽いけど、実態をいじるときは涙目になるきがす。
実装を定義してないはずだから言いようはいくつかあるけど、
インプレースでやるときは面倒だということだけ知っておけばよい気がする。
コンテナ上の空き領域の作り方も幾つかあって、
今回は疑似ポインタだからコピーが軽いけど、実態をいじるときは涙目になるきがす。
実装を定義してないはずだから言いようはいくつかあるけど、
インプレースでやるときは面倒だということだけ知っておけばよい気がする。
833デフォルトの名無しさん
2019/06/08(土) 01:15:29.93ID:B4mMYyrz 整数の事情って結局どうするのが正しいの?
powは遅いだの何だの以前にdoubleとの間で一々キャストするのが姿勢として正しいように思えない
マクロでやってる人が多い?
powは遅いだの何だの以前にdoubleとの間で一々キャストするのが姿勢として正しいように思えない
マクロでやってる人が多い?
834デフォルトの名無しさん
2019/06/08(土) 01:33:51.17ID:f9OaJysQ powの整数型引数のがあるんじゃない?
835デフォルトの名無しさん
2019/06/08(土) 06:52:32.97ID:81RPqzS0 std::powにはないから自分で書くしかない
836デフォルトの名無しさん
2019/06/08(土) 08:59:01.58ID:JxaHk6L1 >>833
整数値で指数みたいな物を扱う場合、簡単にオーバーフローが起きるので
本気でやるとしたらだいぶ恣意的なサイズ区切りを入れることになる。
そんなことやるくらいなら浮動小数からのキャストのがだいぶ楽だし実装も安定する。
整数値で指数みたいな物を扱う場合、簡単にオーバーフローが起きるので
本気でやるとしたらだいぶ恣意的なサイズ区切りを入れることになる。
そんなことやるくらいなら浮動小数からのキャストのがだいぶ楽だし実装も安定する。
837デフォルトの名無しさん
2019/06/08(土) 10:35:16.88ID:uBDMoQSs 負の数が指数に与えられたら結果は少数になるけどそれでもいいなら
838デフォルトの名無しさん
2019/06/08(土) 10:47:03.88ID:Yv0NxNrw 二乗だろ?
何悩んでんだよ
何悩んでんだよ
839デフォルトの名無しさん
2019/06/08(土) 11:17:40.81ID:CfSNJA7X840デフォルトの名無しさん
2019/06/08(土) 11:37:29.71ID:6OYPkGQi 二乗なんて直接掛け算で書き込んでもいいくらい
841デフォルトの名無しさん
2019/06/08(土) 12:05:54.87ID:hw2i/19C 底が2でない3乗以上の累乗なんか整数でやろうと思ったことないな
842デフォルトの名無しさん
2019/06/08(土) 18:23:48.07ID:81RPqzS0 整数の冪は速度云々よりオーバーフローが気になる
100を5乗しただけであっという間にuint32_tをぶっちぎるんだぞこえーよ
100を5乗しただけであっという間にuint32_tをぶっちぎるんだぞこえーよ
843デフォルトの名無しさん
2019/06/08(土) 20:11:59.83ID:KGab8pqO n乗してオーバーフローする整数は予め求められるんだからn乗する前に判定するだけだろ
844デフォルトの名無しさん
2019/06/08(土) 20:14:05.51ID:f9OaJysQ やっぱlog表現にすべきやな
845デフォルトの名無しさん
2019/06/08(土) 20:18:41.89ID:16S9+5P1 メモリを無限に使えばええ
846デフォルトの名無しさん
2019/06/08(土) 20:36:16.78ID:JxaHk6L1 >>843
判定のためにdoubleにキャストして、みたいな?
判定のためにdoubleにキャストして、みたいな?
847デフォルトの名無しさん
2019/06/08(土) 20:37:46.29ID:KGab8pqO >>846
100がオーバーフローする最大値なら100と予め整数比較するだけだろ
100がオーバーフローする最大値なら100と予め整数比較するだけだろ
848デフォルトの名無しさん
2019/06/08(土) 20:39:53.83ID:JxaHk6L1 なるほど n=100くらいまで全て持っていればいいと。
まあそうかもな。
まあそうかもな。
849デフォルトの名無しさん
2019/06/09(日) 02:20:42.24ID:49FyDaAW C++知らないことが多すぎてちょっと勉強するだけでもあーあそここれ使って書いてればよかったーってなることばっかりだわ
しばらく前に書いたコード見直したくねぇ
しばらく前に書いたコード見直したくねぇ
850デフォルトの名無しさん
2019/06/09(日) 02:37:22.98ID:bDrC2N4p そのうちこれわざわざこれ使って書く必要なかったなになるゾ
851デフォルトの名無しさん
2019/06/09(日) 02:55:27.45ID:5fLgSAOM そしてC言語が正解だったことに気づく
852デフォルトの名無しさん
2019/06/09(日) 02:57:41.57ID:bDrC2N4p それはない
コンテナはやっぱり便利
動的ポリモーフィズムは必要ねえなぁ
テンプレートで十分
コンテナはやっぱり便利
動的ポリモーフィズムは必要ねえなぁ
テンプレートで十分
853デフォルトの名無しさん
2019/06/09(日) 03:16:06.77ID:/cpSAd8E854デフォルトの名無しさん
2019/06/09(日) 09:31:54.10ID:/FZVYwra テンプレートもそろそろガンだってことが普通に認識されるようになるだろうな。
標準のテンプレートだけ使ってりゃいいんだよ(それでも使いこなせないだろうが。)
バカの作るテンプレートライブラリほどひどいものはない。
標準のテンプレートだけ使ってりゃいいんだよ(それでも使いこなせないだろうが。)
バカの作るテンプレートライブラリほどひどいものはない。
855デフォルトの名無しさん
2019/06/09(日) 10:15:07.88ID:Gi1Jt9cY そりゃ堂々巡りの言い方だろ
酷い奴の作るテンプレートライブラリは酷い。そりゃそうだ
テンプレートライブラリが酷けりゃ作ったヤツは酷い。こうなるわな
酷い奴の作るテンプレートライブラリは酷い。そりゃそうだ
テンプレートライブラリが酷けりゃ作ったヤツは酷い。こうなるわな
856デフォルトの名無しさん
2019/06/09(日) 10:55:06.08ID:jMWe1oeX857デフォルトの名無しさん
2019/06/09(日) 10:55:18.69ID:g07iT4nf >>854
どこが癌なのか教えてください。
どこが癌なのか教えてください。
858デフォルトの名無しさん
2019/06/09(日) 12:52:56.51ID:Oof3fMf0 いやテンプレート「ライブラリ」ともなれば十分な機能と性能と使いやすさを全立させるには必要スキルがダンチになる印象
そうではなくて問題に特化した形でテンプレートを使ってコードの記述量を激減させることは常人のもできる
ただし他人に理解してもらうのが困難になるからそういのうはモジュール内に囲ってテンプレートそのものを外に出さなければ宜しい
もし使いにくいとか理解しがたいだけでなく動作品質に問題があるなら、
その場合は問題のある人物が取り替えられる方向へと管理者のソーシャルスキルの発動の時間である
そうではなくて問題に特化した形でテンプレートを使ってコードの記述量を激減させることは常人のもできる
ただし他人に理解してもらうのが困難になるからそういのうはモジュール内に囲ってテンプレートそのものを外に出さなければ宜しい
もし使いにくいとか理解しがたいだけでなく動作品質に問題があるなら、
その場合は問題のある人物が取り替えられる方向へと管理者のソーシャルスキルの発動の時間である
859デフォルトの名無しさん
2019/06/09(日) 13:05:27.14ID:bDrC2N4p >>858
それが言いたかったんだよ、うん
それが言いたかったんだよ、うん
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 ★2 [Hitzeschleier★]
- 【中国局長】両国関係に「深刻な影響」 首相発言の撤回要求 [蚤の市★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★3 [BFU★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 【社会】40代以上のおじさん・おばさんは叩いてオッケーという風潮はなぜ加速したのか [七波羅探題★]
- 自分に自信がない女の子、陽キャ美容室で80cmのエクステを付けた結果wwwwwwwwwwwwwwwwwww [329329848]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 外務省局長、よくわからないまま帰国へ [834922174]
- 【実況】博衣こよりのえちえち歌枠🧪
- 【朗報】外務省局長、中国側の要求を断固拒否。「高市さんの答弁は日本政府の立場を変えるものではないし、撤回しない」 [519511584]
- 農林水産省「春頃にはコメ価格落ち着くのでは」新米の取引価格、過去最高を更新。 [256556981]
