次スレを立てる時は本文の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/
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 とかはそもそも存在しないのでは?
448デフォルトの名無しさん
2019/04/30(火) 14:19:40.82ID:44LYo/LT >>447
「8bitや16bitのintしか使えない」を見て long や long long はもっと大きいんじゃないの?と思ったんだよ。
「整数型」の意味で"int"って書いてたんなら、確かに存在しない環境のことを言ってるのかもしれない。
その場合は ISO C/C++ の LONG_MAX の最低絶対値の要求に準拠できないってことになるんだけど。
「8bitや16bitのintしか使えない」を見て long や long long はもっと大きいんじゃないの?と思ったんだよ。
「整数型」の意味で"int"って書いてたんなら、確かに存在しない環境のことを言ってるのかもしれない。
その場合は ISO C/C++ の LONG_MAX の最低絶対値の要求に準拠できないってことになるんだけど。
449デフォルトの名無しさん
2019/04/30(火) 14:19:47.17ID:gDkH0fQs 8bit pic用XCでもlongは32bitなのに
>>449
それはそれですごいインプリメンテーションですね…
8 bit PIC で 32bit int がさくさく書けちゃうとは、そのインプリメンターは根性がありますね、それか頭のねじが何本か外れていて「無理を無理と思わない人」とか…
それはそれですごいインプリメンテーションですね…
8 bit PIC で 32bit int がさくさく書けちゃうとは、そのインプリメンターは根性がありますね、それか頭のねじが何本か外れていて「無理を無理と思わない人」とか…
451デフォルトの名無しさん
2019/04/30(火) 15:29:16.24ID:0LsajAP1 shortは16bit固定でlongは32bit固定でしょ。何言ってんの?
452デフォルトの名無しさん
2019/04/30(火) 16:18:35.89ID:coQMvXAj >>451
いや、お前こそ何を言ってるんだ?
いや、お前こそ何を言ってるんだ?
>>451
残念でした、short も long もインプリメンターが好きに実装していいのですっ!きりっ!
残念でした、short も long もインプリメンターが好きに実装していいのですっ!きりっ!
454さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/04/30(火) 16:45:08.36ID:lzNlO/OB >>451
64-bit Linux でsizeof(long) が8だった。移植がある場合は<cstdint>使わんとあかん
64-bit Linux でsizeof(long) が8だった。移植がある場合は<cstdint>使わんとあかん
455デフォルトの名無しさん
2019/04/30(火) 17:46:03.06ID:bcA0O1+B intが16bitならISOの規格は満たしてることになるかな。
32bit以上の長い整数はクラスと演算子オーバーロードで誤魔化すか。
頑張ってもリテラル表記もダメだろうから、使い勝手は悪いよな。
32bit以上の長い整数はクラスと演算子オーバーロードで誤魔化すか。
頑張ってもリテラル表記もダメだろうから、使い勝手は悪いよな。
456デフォルトの名無しさん
2019/04/30(火) 19:51:46.33ID:tnl21ewQ >>451
うろ覚えだが
VC Win32bit: int 32bit long 32bit pointer 32bit
gcc Linux32bit: int 32bit long 32bit pointer 32bit -ここまでは同じ
VC Win64bit: int 32bit long 32bit pointer 64bit -int64_tで64bit整数
gcc Linux32bit: int 32bit long 64bit pointer 64bit
うろ覚えだが
VC Win32bit: int 32bit long 32bit pointer 32bit
gcc Linux32bit: int 32bit long 32bit pointer 32bit -ここまでは同じ
VC Win64bit: int 32bit long 32bit pointer 64bit -int64_tで64bit整数
gcc Linux32bit: int 32bit long 64bit pointer 64bit
457デフォルトの名無しさん
2019/04/30(火) 20:17:37.41ID:YvhWBPAF 既にLP64とかLLP64とかの呼び方が存在するんだから、そっちを使おうよ
https://ja.wikipedia.org/wiki/64%E3%83%93%E3%83%83%E3%83%88#64%E3%83%93%E3%83%83%E3%83%88%E3%83%87%E3%83%BC%E3%82%BF%E3%83%A2%E3%83%87%E3%83%AB
https://ja.wikipedia.org/wiki/64%E3%83%93%E3%83%83%E3%83%88#64%E3%83%93%E3%83%83%E3%83%88%E3%83%87%E3%83%BC%E3%82%BF%E3%83%A2%E3%83%87%E3%83%AB
458デフォルトの名無しさん
2019/04/30(火) 20:34:29.38ID:4LCMFhXh 厳密なbit長が必要なときにintだのlongだの使っちゃ駄目よ
459デフォルトの名無しさん
2019/04/30(火) 20:56:09.36ID:ba2OmOyM じゃあ何を使えばいいの?
460デフォルトの名無しさん
2019/04/30(火) 20:59:46.66ID:jq/I62+g int_leastシリーズでは?
461デフォルトの名無しさん
2019/04/30(火) 21:02:03.72ID:tJFiug19 intの配列のラッパーのようなものから再発明すりゃーいい
class Bignumber{
int number[4];
Bignumber(const String num){
for(int i=0; i<4; i++){
number[i] = //考えるのが面倒臭い
}
}
Bignumber operator+(){
//以下、延々とオペレータオーバーロードが続く
}
};
class Bignumber{
int number[4];
Bignumber(const String num){
for(int i=0; i<4; i++){
number[i] = //考えるのが面倒臭い
}
}
Bignumber operator+(){
//以下、延々とオペレータオーバーロードが続く
}
};
>>459
int64_t とか int32_t とか cstdint の面々を使うしかないでしょうね…私もデフォでそうするようになりました
int64_t とか int32_t とか cstdint の面々を使うしかないでしょうね…私もデフォでそうするようになりました
463デフォルトの名無しさん
2019/04/30(火) 21:08:03.86ID:0LsajAP1 あ…ありのまま 今 起こった事を話すぜ。
平成の終わりにいろんな奴からshort/longに対する認識の誤りを指摘される恥辱を味わった。
何言ってるかわからねーと思うが(以下略
平成の終わりにいろんな奴からshort/longに対する認識の誤りを指摘される恥辱を味わった。
何言ってるかわからねーと思うが(以下略
464デフォルトの名無しさん
2019/04/30(火) 21:08:35.71ID:QYmLdpSV なんかもうビットという表現すら無くそうとしてるんじゃなかった?
465デフォルトの名無しさん
2019/04/30(火) 21:19:14.38ID:l5C1eDEl 制限された環境で使える多倍長整数のライブラリくらいいくらでもありそうだけど
466デフォルトの名無しさん
2019/04/30(火) 21:42:28.23ID:ba2OmOyM467デフォルトの名無しさん
2019/04/30(火) 23:24:19.16ID:xHYWEb3z ビット数を付けるのは、MISRA-C で決まっているだろ
int8, 16, 32
uint8, 16, 32
int8, 16, 32
uint8, 16, 32
468デフォルトの名無しさん
2019/05/01(水) 00:05:54.61ID:rGIFhODV C++の規格上はintは16 bit以上(ターゲットのアーキテクチャで一番自然なサイズ
、longは32 bit以上
だったと思った
、longは32 bit以上
だったと思った
469デフォルトの名無しさん
2019/05/01(水) 06:23:13.87ID:EdGuPz7E class ClassA
class ClassB: public ClassA
class ClassA::ClassC
のときに、ClassBはClassAのサブクラスと言いますがClassCはなんと呼ぶものですか?
class ClassB: public ClassA
class ClassA::ClassC
のときに、ClassBはClassAのサブクラスと言いますがClassCはなんと呼ぶものですか?
471デフォルトの名無しさん
2019/05/01(水) 06:32:44.82ID:TS5dpT59 基底クラス
スーパークラス
親クラス
ベースクラス
スーパークラス
親クラス
ベースクラス
472デフォルトの名無しさん
2019/05/01(水) 06:56:41.43ID:q4ZM9Khf 細かいことを言えば、規格準拠の処理系でも
int32_t (ピッタリ32bit) が定義されるとは限らないのね。
int_fast32_t, int_least32_t なら定義される。
8bit単位じゃないCPUへの配慮らしいから、
普通の(この表現も危険だけど)コンピュータを使う分には
int32_t があると仮定して書いてもたいがい大丈夫だろうけど。
コンパイルエラーが出るから出たら対処、で十分かと。
int32_t (ピッタリ32bit) が定義されるとは限らないのね。
int_fast32_t, int_least32_t なら定義される。
8bit単位じゃないCPUへの配慮らしいから、
普通の(この表現も危険だけど)コンピュータを使う分には
int32_t があると仮定して書いてもたいがい大丈夫だろうけど。
コンパイルエラーが出るから出たら対処、で十分かと。
473デフォルトの名無しさん
2019/05/01(水) 07:06:00.95ID:EdGuPz7E >>470
クラス内で定義したクラスです
class ClassA {
public:
...
private:
class ClassC;
ClassC * C;
}
class ClassA::ClassC {
...
}
の場合class ClassA::ClassC からClassA::を取るとコンパイルが通りません
クラス内で定義したクラスです
class ClassA {
public:
...
private:
class ClassC;
ClassC * C;
}
class ClassA::ClassC {
...
}
の場合class ClassA::ClassC からClassA::を取るとコンパイルが通りません
474デフォルトの名無しさん
2019/05/01(水) 07:25:40.44ID:shCLaGGL 「プログラミング言語C++」だと、入れ子クラス(nested class)とか
メンバクラス(member class)とか呼んでるみたい。
メンバクラス(member class)とか呼んでるみたい。
475デフォルトの名無しさん
2019/05/01(水) 07:36:13.31ID:EdGuPz7E おお、なるほど
ありがとうございます
ありがとうございます
476デフォルトの名無しさん
2019/05/01(水) 09:29:42.19ID:HwrGV3PF 内部クラス(inner class)もよく聞くけど調べたらJava用語っぽいな
477デフォルトの名無しさん
2019/05/01(水) 10:28:09.06ID:imZnb7dZ Inner Class、Java用語なのか。そう呼んじゃってたわ
478デフォルトの名無しさん
2019/05/01(水) 17:22:15.78ID:Ul5/0sra 今よみがえる構造体ネストの悪夢
479はちみつ餃子 ◆8X2XSCHEME
2019/05/01(水) 17:31:05.65ID:Gk4iJJA0480デフォルトの名無しさん
2019/05/01(水) 19:23:34.42ID:DLNQH846 以前、「完全さを求めるあまり今存在する良い物を犠牲にしてはならない」という趣旨のことわざをBBCハードトークで仄聞したのだが、原典はなんだろうか?
>>480
ググってヒットしたもののうち、これについてめぐらせています(ことわざとは関係ありません…)
http://www.kt.rim.or.jp/~hisashim/gabriel/WIB.ja.html
この人(原著者)、最後まで間違ったままでいるような気がしてなりませんが、実際のところどうでしょうか
ググってヒットしたもののうち、これについてめぐらせています(ことわざとは関係ありません…)
http://www.kt.rim.or.jp/~hisashim/gabriel/WIB.ja.html
この人(原著者)、最後まで間違ったままでいるような気がしてなりませんが、実際のところどうでしょうか
482デフォルトの名無しさん
2019/05/01(水) 22:03:28.27ID:EdGuPz7E >>479
ありがとう
ありがとう
483デフォルトの名無しさん
2019/05/04(土) 17:19:13.49ID:x8LtSB02484デフォルトの名無しさん
2019/05/06(月) 08:44:53.70ID:Omhj+R8I ストリームの遅さは凄い凄すぎる。
ほとんどの場合、遅くても問題ないということはわかる。
でもあそこ迄遅くする必要があったのだろうか。
ほとんどの場合、遅くても問題ないということはわかる。
でもあそこ迄遅くする必要があったのだろうか。
485デフォルトの名無しさん
2019/05/06(月) 10:41:12.07ID:ZJRraXBB 突然何?
486デフォルトの名無しさん
2019/05/06(月) 12:17:09.96ID:jqdyfBGc 3.5 ストリーム
ttps://sicp.iijlab.net/fulltext/x350.html
これだろう
理想的にはこうなるべきだが、技術的には未だに追いついてないだけであり、将来的には解決される
なのでC++では他のどの言語も真似してない<<や>>がある
逆に言うとストリーム・プログラミングが主流になったらC++が主流の座に返り咲く
ttps://sicp.iijlab.net/fulltext/x350.html
これだろう
理想的にはこうなるべきだが、技術的には未だに追いついてないだけであり、将来的には解決される
なのでC++では他のどの言語も真似してない<<や>>がある
逆に言うとストリーム・プログラミングが主流になったらC++が主流の座に返り咲く
487デフォルトの名無しさん
2019/05/06(月) 15:05:44.09ID:XjarcZ9f 今やどの言語もprintfのような書式付き文字列を指定する方式に回帰した(jsすら!)。
少なくとも書式付き出力に限れば、ストリームはプログラミング言語の中ではもう淘汰されてしまったんだと思うよ。
早いとこ、string::format()とかbasic_ostream::format()とか作ってほしいわ
少なくとも書式付き出力に限れば、ストリームはプログラミング言語の中ではもう淘汰されてしまったんだと思うよ。
早いとこ、string::format()とかbasic_ostream::format()とか作ってほしいわ
488デフォルトの名無しさん
2019/05/06(月) 15:24:11.52ID:ecbY6TsO 多言語対応するためにはC#みたいに %1, %2みたいに引数を番号で指定できる書式じゃないとダメでしょ。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★6 [ぐれ★]
- 「日の丸にバツ印」掲げた大学生 あいまいな国旗損壊罪に「怖い」 The Mainichi [少考さん★]
- 【音楽】BARBEE BOYS・KONTAが事故で四肢麻痺を公表、新体制で活動は継続 [少考さん★]
- 【テレビ】25年ぶり復活「炎のチャレンジャー」南原清隆&菊池風磨がMC 懐かし「電流イライラ棒」も [湛然★]
- 中国「捜索レーダー起動は各国の通常の手法」 火器管制用か回答せず [蚤の市★]
- 【映画】「果てしなきスカーレット」入場者プレゼント実施 細田守監督描き下ろし「歴代ヒロイン」色紙7種をランダム配布 [muffin★]
- 色づく世界の明日からっておもろい?
- 【閲覧注意】ちずちんな
- ぺこーら、地震で同僚が次々配信を止めるなか強行し続けるので悪目立ちするwww [268244553]
- 高市総理、睡眠時間30分😢
- フェリーの魅力を語ろう。
- 引越したんだがかなり大変だな
