https://mevius.5ch.net/test/read.cgi/tech/1589424805/
※前スレ
C++相談室 part152
https://mevius.5ch.net/test/read.cgi/tech/1594528940/
テンプレおしまい
C++相談室 part153
■ このスレッドは過去ログ倉庫に格納されています
2020/10/10(土) 23:18:20.00ID:i4F+i14Y
633デフォルトの名無しさん
2020/12/02(水) 01:32:17.93ID:cCR9MlfF >>632
添字番号を併記したりかんたんな演算を行ったりしたかった
添字番号を併記したりかんたんな演算を行ったりしたかった
634デフォルトの名無しさん
2020/12/02(水) 05:03:16.50ID:OLoYTJfY OSはOS X10.15.7でApple clang12.0.0のC++17指定です
vector<tuple<int, int, int>> T;
vector<pair<int, int>> P;
のような配列(stdは省略)を作成したのですが以下のような挙動になりました
P.emplace_back(i, j); //通る
P.push_back(i, j); //エラー
P.emplace_back({i, j); //エラー
P.push_back({i, j}); //通る
P.emplace_back(make_pair(i, j)); //通る
P.push_back(make_pair(i, j)); //通る
省略はしてますがtupleも大体同じです(i, jはint)
push_backが一時コンストラクトをムーブしてることやmake_pairやmake_tupleに
型の推論があることは調べたのですが上記のようになる理由が分かりませんでした
後clangとg++でどちらに合わせた方が標準的というのはあるのでしょうか
図々しくも質問が2つになってしまいましたがよろしくお願いします
vector<tuple<int, int, int>> T;
vector<pair<int, int>> P;
のような配列(stdは省略)を作成したのですが以下のような挙動になりました
P.emplace_back(i, j); //通る
P.push_back(i, j); //エラー
P.emplace_back({i, j); //エラー
P.push_back({i, j}); //通る
P.emplace_back(make_pair(i, j)); //通る
P.push_back(make_pair(i, j)); //通る
省略はしてますがtupleも大体同じです(i, jはint)
push_backが一時コンストラクトをムーブしてることやmake_pairやmake_tupleに
型の推論があることは調べたのですが上記のようになる理由が分かりませんでした
後clangとg++でどちらに合わせた方が標準的というのはあるのでしょうか
図々しくも質問が2つになってしまいましたがよろしくお願いします
635デフォルトの名無しさん
2020/12/02(水) 11:08:47.58ID:3dB9NeQy636デフォルトの名無しさん
2020/12/02(水) 11:20:44.01ID:CcFfxv7q637はちみつ餃子 ◆8X2XSCHEME
2020/12/02(水) 11:59:18.46ID:wCsCmSK2 >>634
そういう言語仕様だからそうなるとしか言えない。
たぶん必要な情報は
・ emplace_back ( https://cpprefjp.github.io/reference/vector/vector/emplace_back.html )
・ push_back ( https://cpprefjp.github.io/reference/vector/vector/push_back.html )
・ 一様初期化 ( https://cpprefjp.github.io/lang/cpp11/uniform_initialization.html )
かな。
言語仕様に沿っていれば普通は gcc でも clang でも問題は起きない。
たまには処理系のバグってことも無くはないが、
どちらかで問題が起きるなら書いたプログラムのどこかが間違ってる疑いのほうが濃い。
個別の事情によってはコンパイラをどちらかに固定することもあるかもしれないが、
理想としてはどちらでも良いようになっているほうが好ましくはある。
そういう言語仕様だからそうなるとしか言えない。
たぶん必要な情報は
・ emplace_back ( https://cpprefjp.github.io/reference/vector/vector/emplace_back.html )
・ push_back ( https://cpprefjp.github.io/reference/vector/vector/push_back.html )
・ 一様初期化 ( https://cpprefjp.github.io/lang/cpp11/uniform_initialization.html )
かな。
言語仕様に沿っていれば普通は gcc でも clang でも問題は起きない。
たまには処理系のバグってことも無くはないが、
どちらかで問題が起きるなら書いたプログラムのどこかが間違ってる疑いのほうが濃い。
個別の事情によってはコンパイラをどちらかに固定することもあるかもしれないが、
理想としてはどちらでも良いようになっているほうが好ましくはある。
638はちみつ餃子 ◆8X2XSCHEME
2020/12/02(水) 15:48:13.91ID:wCsCmSK2 >>631
シェルというか Python か Guile は使える。
https://sourceware.org/gdb/current/onlinedocs/gdb/Python-API.html#Python-API
シェルというか Python か Guile は使える。
https://sourceware.org/gdb/current/onlinedocs/gdb/Python-API.html#Python-API
639デフォルトの名無しさん
2020/12/02(水) 21:51:44.10ID:3RyObk2q プログラミング初心者でC++で競馬予想ソフトを作ってみたいんだけどC++はそういうのに向かないんですかね?
スクレイピングってやつはC++でできないのか?
スクレイピングってやつはC++でできないのか?
640デフォルトの名無しさん
2020/12/02(水) 22:26:25.03ID:FHuLcrq8 できるけどC++はWebやテキスト処理が得意とはいい難いから別の言語の方がいいかも
641デフォルトの名無しさん
2020/12/02(水) 22:45:20.94ID:9+QNoiNo テキストはc♯のが向いてる
642デフォルトの名無しさん
2020/12/02(水) 22:49:07.36ID:1SGYvOuK >>638
対話モードのPythonインタプリタ上でgdbを動かせるということですか?
対話モードのPythonインタプリタ上でgdbを動かせるということですか?
644デフォルトの名無しさん
2020/12/02(水) 23:31:37.18ID:3RyObk2q ありがとうございました!
645デフォルトの名無しさん
2020/12/02(水) 23:51:03.60ID:1SGYvOuK647デフォルトの名無しさん
2020/12/02(水) 23:56:36.23ID:9+QNoiNo pythonは仮想マシーンが必要
変数がすべてvariantなので初心者にはうってつけよ
変数がすべてvariantなので初心者にはうってつけよ
648デフォルトの名無しさん
2020/12/03(木) 00:11:32.72ID:MFKNATAf649デフォルトの名無しさん
2020/12/03(木) 06:42:09.17ID:w/MpdpQO 勉強するぞ!勉強するぞ!勉強するぞ!
↑
C++には似合わないような気が。
↑
C++には似合わないような気が。
650デフォルトの名無しさん
2020/12/03(木) 11:49:30.18ID:4DIFtwYV651デフォルトの名無しさん
2020/12/03(木) 22:01:01.64ID:anyYWQoy 「ブラック企業社員」のお助けアプリが誕生 開発したのは22歳金髪大学生、開発のきっかけとは?
https://news.yahoo.co.jp/articles/b9d5e3b84e4aa78fab64d3eb8e0c02f72911287e
レシート買い取りアプリONEの17歳起業家、サービス一時停止から「怒涛の3カ月」で気づいたこと
https://www.businessinsider.jp/post-175983
ビジネス版マッチングアプリ「yenta(イェンタ)」全国展開 開始!
https://prtimes.jp/main/html/rd/p/000000023.000021544.html
ギフティング「TANP」運営がGCPほかから5億円調達
1日1200件の「リアルギフト」送付も可能に、U25起業家の新たな挑戦
https://thebridge.jp/2019/08/gift-ec-tanp-raised-500m-yen-from-gcp
人はこうすれば“ハマる”、源流はゲーマー視点の「幸せ」
https://project.nikkeibp.co.jp/behealth/atcl/feature/00005/012100006/
アプリ開発での起業は難しくない!成功するために覚えておくべきこと
https://www.biz.ne.jp/subject/blog/2004433/
【稼ぎ方が知りたい!】アプリの開発の収入って実際どれくらい?
https://itpropartners.com/blog/1657/
ネット関連事業で起業した成功例8選!ネットで成功するには○○が重要!?
https://www.official.or.jp/internet-entrepreneurship-success/
https://news.yahoo.co.jp/articles/b9d5e3b84e4aa78fab64d3eb8e0c02f72911287e
レシート買い取りアプリONEの17歳起業家、サービス一時停止から「怒涛の3カ月」で気づいたこと
https://www.businessinsider.jp/post-175983
ビジネス版マッチングアプリ「yenta(イェンタ)」全国展開 開始!
https://prtimes.jp/main/html/rd/p/000000023.000021544.html
ギフティング「TANP」運営がGCPほかから5億円調達
1日1200件の「リアルギフト」送付も可能に、U25起業家の新たな挑戦
https://thebridge.jp/2019/08/gift-ec-tanp-raised-500m-yen-from-gcp
人はこうすれば“ハマる”、源流はゲーマー視点の「幸せ」
https://project.nikkeibp.co.jp/behealth/atcl/feature/00005/012100006/
アプリ開発での起業は難しくない!成功するために覚えておくべきこと
https://www.biz.ne.jp/subject/blog/2004433/
【稼ぎ方が知りたい!】アプリの開発の収入って実際どれくらい?
https://itpropartners.com/blog/1657/
ネット関連事業で起業した成功例8選!ネットで成功するには○○が重要!?
https://www.official.or.jp/internet-entrepreneurship-success/
652デフォルトの名無しさん
2020/12/04(金) 14:40:55.75ID:rp0tCaVB653はちみつ餃子 ◆8X2XSCHEME
2020/12/05(土) 00:49:53.38ID:rsyXPWsW >>652
結局のところ何がわからなかったのか言葉にしてくれんともやもやするんやが……。
結局のところ何がわからなかったのか言葉にしてくれんともやもやするんやが……。
654デフォルトの名無しさん
2020/12/05(土) 08:56:44.63ID:F3hjf/ak 最近ずぶの素人にいきなりSTL教えたりする変な風潮、変なサイトが増えたせいで
こういうとこで初心者が苦労するんだよなぁ
ライブラリの使い方なんか、初心者がいきなりぶつかる"壁"であってはならんと思うんだが・・
先に言語自体の基本を学んでれば、>>634はここに聞きに来なくて済んでるはず
こういうとこで初心者が苦労するんだよなぁ
ライブラリの使い方なんか、初心者がいきなりぶつかる"壁"であってはならんと思うんだが・・
先に言語自体の基本を学んでれば、>>634はここに聞きに来なくて済んでるはず
655デフォルトの名無しさん
2020/12/05(土) 10:34:50.44ID:T+MIshnP C++11以降はSTL前提で学んだほうが理解しやすい
656デフォルトの名無しさん
2020/12/05(土) 11:14:52.77ID:pZ+vMW1v STLとそうじゃないものの境界ってなに?
657デフォルトの名無しさん
2020/12/05(土) 11:17:08.79ID:i8LYHGeY そんなの意識する必要ない。"STL"なんて定義曖昧な言葉を使わなければよい。
658デフォルトの名無しさん
2020/12/05(土) 11:41:24.32ID:f0cq7ZxN C++を使わなくてもSTLを学ぶほうが良い。
それどころか、およそ学問というものに携わる者はSTLを学ぶべきだ。
なぜなら20世紀における抽象化最大の功績だからだ。
それどころか、およそ学問というものに携わる者はSTLを学ぶべきだ。
なぜなら20世紀における抽象化最大の功績だからだ。
659デフォルトの名無しさん
2020/12/05(土) 11:42:36.00ID:f0cq7ZxN STLは宇宙人が教えた説があるほどクレバー、クレバー、そしてクレバーだ。
660デフォルトの名無しさん
2020/12/05(土) 11:47:59.12ID:f0cq7ZxN 目からうろこですよ。
まじ鱗。
まじ鱗。
661デフォルトの名無しさん
2020/12/05(土) 11:53:54.60ID:f0cq7ZxN ムーブセマンティクスも感動したなあ。
あいつら本物の天才だな。
まじ鱗ですよ。
あいつら本物の天才だな。
まじ鱗ですよ。
662デフォルトの名無しさん
2020/12/05(土) 12:09:38.13ID:WVFX1CVk unique_ptrとかthreadとかnumeric_limitsとかも"standard template library"だけどSTLとは呼ばれない
よく理解してないC++アンチが何となく叩きの槍玉に上げる時に使われる用語っていう印象
よく理解してないC++アンチが何となく叩きの槍玉に上げる時に使われる用語っていう印象
663デフォルトの名無しさん
2020/12/05(土) 12:15:33.65ID:f0cq7ZxN なんじゃそりゃ。
664デフォルトの名無しさん
2020/12/05(土) 12:22:29.71ID:pZ+vMW1v コントかよ
665デフォルトの名無しさん
2020/12/05(土) 18:59:09.68ID:ynooL14Y >>634
pairが初期化子リストによるコンストラクタを持たないから
c++ - emplace_back not working with std::vector<std::map<int, int>> - Stack Overflow
https://stackoverflow.com/questions/33207232/emplace-back-not-working-with-stdvectorstdmapint-int?answertab=votes#tab-top
似たような質問があって、mapだと初期化子リストのコンストラクタがあるから、initializer_listを使って初期化出来てる
この箇所あたりがそれ
https://cpprefjp.github.io/reference/map/map/op_constructor.html
map(initializer_list<value_type> init,
const Allocator& alloc); // (11) C++14 から
https://cpprefjp.github.io/reference/utility/pair/op_constructor.html
pairのコンストラクタにはinitializer_listは出てこない
pairが初期化子リストによるコンストラクタを持たないから
c++ - emplace_back not working with std::vector<std::map<int, int>> - Stack Overflow
https://stackoverflow.com/questions/33207232/emplace-back-not-working-with-stdvectorstdmapint-int?answertab=votes#tab-top
似たような質問があって、mapだと初期化子リストのコンストラクタがあるから、initializer_listを使って初期化出来てる
この箇所あたりがそれ
https://cpprefjp.github.io/reference/map/map/op_constructor.html
map(initializer_list<value_type> init,
const Allocator& alloc); // (11) C++14 から
https://cpprefjp.github.io/reference/utility/pair/op_constructor.html
pairのコンストラクタにはinitializer_listは出てこない
666デフォルトの名無しさん
2020/12/05(土) 19:10:24.03ID:F+hw3W9u >>662
御意
御意
667デフォルトの名無しさん
2020/12/06(日) 03:41:22.30ID:hI81p89D >>665
違うと思うぞ
違うと思うぞ
668デフォルトの名無しさん
2020/12/06(日) 08:19:51.08ID:tzyWxjgm じゃあ、多数決で決めましょうや。
669デフォルトの名無しさん
2020/12/06(日) 11:09:55.43ID:sjTPCZjA >>667
違うんだったら何が正解だ?
違うんだったら何が正解だ?
670デフォルトの名無しさん
2020/12/06(日) 13:55:38.68ID:hI81p89D671デフォルトの名無しさん
2020/12/08(火) 20:44:18.72ID:efO/t6By visual studio 2019でstd::filesystemを使いたいのですが、namespace"std"にfilesystemがありませんと言われます
ググた通りにC++言語標準をC++17にしても変わりません
どうすればいいですか?
ググた通りにC++言語標準をC++17にしても変わりません
どうすればいいですか?
672デフォルトの名無しさん
2020/12/08(火) 21:02:15.62ID:O6ovwbXJ 上の方に
#include<filesystem>
と書く
#include<filesystem>
と書く
673デフォルトの名無しさん
2020/12/09(水) 01:24:22.81ID:WuZTb4kZ なんだそりゃあ?!
674デフォルトの名無しさん
2020/12/09(水) 06:50:42.80ID:OrjjObtT >>671
// cl 671.cpp /EHsc /std:c++17
#include <filesystem>
#include <iostream>
using namespace std;
using namespace std::filesystem;
int main()
{
directory_iterator d(current_path());
for(auto&& e : d) cout << e.path() << endl;
}
全く問題なく動くぞ
cl.exeのバージョンは19.28.29334 for x64
// cl 671.cpp /EHsc /std:c++17
#include <filesystem>
#include <iostream>
using namespace std;
using namespace std::filesystem;
int main()
{
directory_iterator d(current_path());
for(auto&& e : d) cout << e.path() << endl;
}
全く問題なく動くぞ
cl.exeのバージョンは19.28.29334 for x64
675デフォルトの名無しさん
2020/12/09(水) 08:05:49.03ID:TKgHvdMy >>671
脱線の話だがappleのclangでfilesystem使おうと思ったら、
OSを10.15以降にしないと動かない上にビルドしたバイナリもそれ以降。
macだとintel版はhomebrewでgcc落としてビルドすれば旧いのでも動く。
日本語などのファイル名の扱いは、自分の試した範囲で、mac,linux,winで微妙に違ってた。
「wstring」、「stringでutf-8」のどっちかしか出来ん処理系があって、
複数機種用のコードは結局ifdefで分けるしかなかった。
そのうちライブラリが整備されるとは思うけど。
しかし「ハ゜」→「パ」のmacの仕様には参った。
脱線の話だがappleのclangでfilesystem使おうと思ったら、
OSを10.15以降にしないと動かない上にビルドしたバイナリもそれ以降。
macだとintel版はhomebrewでgcc落としてビルドすれば旧いのでも動く。
日本語などのファイル名の扱いは、自分の試した範囲で、mac,linux,winで微妙に違ってた。
「wstring」、「stringでutf-8」のどっちかしか出来ん処理系があって、
複数機種用のコードは結局ifdefで分けるしかなかった。
そのうちライブラリが整備されるとは思うけど。
しかし「ハ゜」→「パ」のmacの仕様には参った。
676デフォルトの名無しさん
2020/12/09(水) 09:04:33.91ID:bCzZQrOf 脱線路運動。
677デフォルトの名無しさん
2020/12/13(日) 02:22:39.32ID:1g8P/X2h c++でRSSリーダー作れましゅか?
678デフォルトの名無しさん
2020/12/13(日) 04:12:37.43ID:64ZS/1bZ はい
679デフォルトの名無しさん
2020/12/13(日) 11:52:25.92ID:83or1IML RSSなんてもう誰も使ってないだろ
フィードしてるサイトなんてありゅ?
フィードしてるサイトなんてありゅ?
680はちみつ餃子 ◆8X2XSCHEME
2020/12/13(日) 13:34:03.99ID:hv54fxHN ブログホスティングサイトの系統だと RSS を提供してないところとかあんまりないと思うが。
681デフォルトの名無しさん
2020/12/14(月) 16:01:14.17ID:WlKHswnl ていうかあちこちの言語スレで同じ事聞くのやめなさい
682デフォルトの名無しさん
2020/12/14(月) 19:00:34.80ID:mjvV58cu std::vectorのメンバ関数にfind()とかrfind()がないのはなんでですかね?
string::find()みたいにあってもよさそうな気がするんですが・・・
string::find()みたいにあってもよさそうな気がするんですが・・・
683デフォルトの名無しさん
2020/12/14(月) 19:10:08.09ID:iTp2tyae >>682
よう知らんけど、vector固有でなくても使えるアルゴリズムだからでは?
よう知らんけど、vector固有でなくても使えるアルゴリズムだからでは?
684デフォルトの名無しさん
2020/12/15(火) 09:25:27.40ID:rqj48Chi >>682
#include <algorithm>のfind()を使えってことだ
何でもかんでもメンバに突っ込むのは悪い設計だからだ
この意味でstring::findは蛇足ともいえる
現実にはstring::findはiteratorではなくsize_typeを返すので
複数の文字列の同じ位置、のようなことがやりやすい
#include <algorithm>のfind()を使えってことだ
何でもかんでもメンバに突っ込むのは悪い設計だからだ
この意味でstring::findは蛇足ともいえる
現実にはstring::findはiteratorではなくsize_typeを返すので
複数の文字列の同じ位置、のようなことがやりやすい
685デフォルトの名無しさん
2020/12/15(火) 13:10:21.94ID:qBOs25Ot UTF8とかだと単純に同じバイト値探せばいいわけじゃないからstringは特殊化してるんだよ
686デフォルトの名無しさん
2020/12/15(火) 13:19:55.29ID:PHBBuZ6n >何でもかんでもメンバに突っ込むのは悪い設計だからだ
こういう考え方いかにもCから入りましたって感じだな
こういう考え方いかにもCから入りましたって感じだな
687デフォルトの名無しさん
2020/12/15(火) 13:21:51.75ID:gbeRTgGG UTF-16(wchar_t)と違ってUTF-8(char)なら同じバイト列を探せばいいんじゃないの?
ASCIIと同じコーディングで済むのがUTF-8が普及した要因だと思ってた
ASCIIと同じコーディングで済むのがUTF-8が普及した要因だと思ってた
688デフォルトの名無しさん
2020/12/15(火) 13:36:54.46ID:8mWx/Grk689デフォルトの名無しさん
2020/12/15(火) 14:01:10.21ID:gbeRTgGG std::stringってバイト単位で扱うものでしょ
本当に文字単位で扱いたいならstd::wstring
本当に文字単位で扱いたいならstd::wstring
690デフォルトの名無しさん
2020/12/15(火) 14:23:23.61ID:rqj48Chi691デフォルトの名無しさん
2020/12/15(火) 16:06:36.42ID:cCubMtK6 >>689
wstringだろうがu16stringだろうがu32stringだろうが状況変わらんぞ
wstringだろうがu16stringだろうがu32stringだろうが状況変わらんぞ
692デフォルトの名無しさん
2020/12/15(火) 16:37:15.21ID:pcemzeew >>690
質問主ですが、是非ともkwskしてくだしあ
質問主ですが、是非ともkwskしてくだしあ
693デフォルトの名無しさん
2020/12/15(火) 16:39:59.71ID:4y27nUGT utf16はサロゲートペアちょんぎらないようにしないとな
694デフォルトの名無しさん
2020/12/15(火) 20:33:42.18ID:DseQeO8W 合字とか異体字セレクタとかもな
文字を扱うというのは大変なんだ
文字を扱うというのは大変なんだ
695デフォルトの名無しさん
2020/12/15(火) 21:47:00.55ID:F7+1e89x >>688
1バイト目とそれ以降は重ならないからそういうことは起こらないはず
1バイト目とそれ以降は重ならないからそういうことは起こらないはず
696デフォルトの名無しさん
2020/12/15(火) 22:25:44.23ID:jc1ZwvrK そもそもstring::findがあるのは文字列から文字列を探す需要が高いからじゃないですかね
vector含む各コンテナから探すのはほとんどの場合要素単位だから汎用的なstd::findを使えということと解釈
vector含む各コンテナから探すのはほとんどの場合要素単位だから汎用的なstd::findを使えということと解釈
697デフォルトの名無しさん
2020/12/16(水) 06:17:15.68ID:vxgFSXGy698デフォルトの名無しさん
2020/12/16(水) 08:58:52.32ID:O+yPS5En699デフォルトの名無しさん
2020/12/16(水) 09:05:13.62ID:9tcp04F0 まぁ汎用的というか、stlのアルゴリズムはほとんどが全コンテナに対して共通のコードに出来るからそうしてる(グローバルな関数にしてる)んじゃないかね
実際問題、共通のインターフェースを継承によって表現するのでない限り、同じコードをあちこちメンバ関数にするのは不自然
逆に共通のインターフェースにすべきクラスの機能を無理に普通の関数にするのも馬鹿げてる
実際問題、共通のインターフェースを継承によって表現するのでない限り、同じコードをあちこちメンバ関数にするのは不自然
逆に共通のインターフェースにすべきクラスの機能を無理に普通の関数にするのも馬鹿げてる
700はちみつ餃子 ◆8X2XSCHEME
2020/12/16(水) 10:59:12.23ID:zkq7HUY5 アドホック多相とパラメトリック多相の違い。
701デフォルトの名無しさん
2020/12/16(水) 11:28:07.30ID:Hv+rjawS データ構造とアルゴリズムを合わせたものがクラスでありオブジェクト指向言語の特徴の1つと教わった
いまは汎用アルゴリズムが再び外部に分離されるようになってきてるのかな
テンプレート・ジェネリクス・インターフェースのおかげかな?
型Tに対する操作を外部化しておいたほうが汎用的で型Tを実装するすべてのクラスが操作を個別に持つのは無駄ってことか
いまは汎用アルゴリズムが再び外部に分離されるようになってきてるのかな
テンプレート・ジェネリクス・インターフェースのおかげかな?
型Tに対する操作を外部化しておいたほうが汎用的で型Tを実装するすべてのクラスが操作を個別に持つのは無駄ってことか
702デフォルトの名無しさん
2020/12/16(水) 11:50:27.11ID:uK3tjXUx beginとendをペアで指定しないといけないポインタ的iteratorのせいで外部化せざるを得なかったという方が正しいんじゃないですかね
703デフォルトの名無しさん
2020/12/16(水) 11:58:03.72ID:cXvwu3qd ↓のサイトでも外人が同じ議論してるね
誰か要約してください
https://stackoverrun.com/ja/q/4020758
Why does std::string have a find member function while std::vector and friends don't have it?
Is there anything wrong with using std::find on the string?
誰か要約してください
https://stackoverrun.com/ja/q/4020758
Why does std::string have a find member function while std::vector and friends don't have it?
Is there anything wrong with using std::find on the string?
704はちみつ餃子 ◆8X2XSCHEME
2020/12/16(水) 13:09:55.17ID:zkq7HUY5 >>701
オブジェクト指向にも種類がある。
ただひとつのオブジェクト指向がオブジェクト指向たる基準があるわけではなくて、
わりとふんわりした概念だよ……。
C++ の場合はカプセル化に軸があると思う。
隠されていないデータを処理する分にはメンバ関数にする必然性がない。
オブジェクト指向にも種類がある。
ただひとつのオブジェクト指向がオブジェクト指向たる基準があるわけではなくて、
わりとふんわりした概念だよ……。
C++ の場合はカプセル化に軸があると思う。
隠されていないデータを処理する分にはメンバ関数にする必然性がない。
705デフォルトの名無しさん
2020/12/16(水) 13:27:14.81ID:j60AFdVm C++ってカプセル化できるんでしたっけ?
706デフォルトの名無しさん
2020/12/16(水) 13:34:22.28ID:KCK/bj61 抜け道があるかって意味なら、java等もカプセル化できないってことになるけど
707デフォルトの名無しさん
2020/12/16(水) 13:45:31.91ID:O+yPS5En >>701
そういうことじゃねえよ
データ構造とアルゴリズムごちゃ混ぜにしたのをクラスと言い張る意味はない
1つの目的のためのお膳立てを揃えたものがオブジェクトでオブジェクトの種類がクラスだ
C++標準のライブラリではデータ構造はコンテナ、アルゴリズムは関数テンプレートとして分離されている
コンテナは配列やリストといったデータ構造を提供するまでにとどめ
それらを使って何かする応用までメンバにはせず関数テンプレートにしてある
そういうことじゃねえよ
データ構造とアルゴリズムごちゃ混ぜにしたのをクラスと言い張る意味はない
1つの目的のためのお膳立てを揃えたものがオブジェクトでオブジェクトの種類がクラスだ
C++標準のライブラリではデータ構造はコンテナ、アルゴリズムは関数テンプレートとして分離されている
コンテナは配列やリストといったデータ構造を提供するまでにとどめ
それらを使って何かする応用までメンバにはせず関数テンプレートにしてある
708デフォルトの名無しさん
2020/12/16(水) 13:50:56.36ID:j60AFdVm >>706
Javaのリフレクションで何でも呼べる抜け道みたいな話ではなく
C++ってヘッダーファイルにprivateメンバー書かないといけないじゃん
そのせいで内部実装が変わったらライブラリ利用者にヘッダーファイルを差し替えてもらわないといけなかったりする
これってカプセル化できてないってことじゃない?
pimplとかテクニックがあるけどさ
Javaのリフレクションで何でも呼べる抜け道みたいな話ではなく
C++ってヘッダーファイルにprivateメンバー書かないといけないじゃん
そのせいで内部実装が変わったらライブラリ利用者にヘッダーファイルを差し替えてもらわないといけなかったりする
これってカプセル化できてないってことじゃない?
pimplとかテクニックがあるけどさ
709デフォルトの名無しさん
2020/12/16(水) 13:54:21.41ID:vzlQaAwm >>708
古い知識ですまんが、素直に抽象基底クラス被せるでだめなん?
古い知識ですまんが、素直に抽象基底クラス被せるでだめなん?
710デフォルトの名無しさん
2020/12/16(水) 13:55:52.62ID:KCK/bj61 なる。
そういうことならpmplかインターフェースクラスを定義するかしか思い浮かばないな
そういうことならpmplかインターフェースクラスを定義するかしか思い浮かばないな
711デフォルトの名無しさん
2020/12/16(水) 14:40:21.32ID:O+yPS5En > 内部実装が変わったらライブラリ利用者にヘッダーファイルを差し替えてもらわないと
これ、そんなに深刻な問題か?
ライブラリの更新なんてリポジトリ決めてバージョン管理して
あとは勝手に落とせで運用できてるやん
これ、そんなに深刻な問題か?
ライブラリの更新なんてリポジトリ決めてバージョン管理して
あとは勝手に落とせで運用できてるやん
712はちみつ餃子 ◆8X2XSCHEME
2020/12/16(水) 15:35:04.62ID:zkq7HUY5 現実的な部分では運用でなんとかしてる部分はあるのも確かだが、
現実に対する妥協なのでパラダイム的な話とは区別が必要じゃない?
まあ不可分なところもあるんで微妙な話ではあるけども。
現実に対する妥協なのでパラダイム的な話とは区別が必要じゃない?
まあ不可分なところもあるんで微妙な話ではあるけども。
713デフォルトの名無しさん
2020/12/16(水) 16:36:11.97ID:uK3tjXUx >>708
それってモジュール使えば解決できる問題じゃないんでしたっけ
それってモジュール使えば解決できる問題じゃないんでしたっけ
714デフォルトの名無しさん
2020/12/16(水) 18:14:53.45ID:O+yPS5En >>712
運用できていても、いささかでも無理があれば
まだ余裕があるうちでも将来を見据えて
議論する価値が出てくるね
問題は無理を全く感じていないことを
空想論的に問題視することだ
個人的に問題視するのは勝手だが
他人が付き合ってくれないときにしつこくすることだ
運用できていても、いささかでも無理があれば
まだ余裕があるうちでも将来を見据えて
議論する価値が出てくるね
問題は無理を全く感じていないことを
空想論的に問題視することだ
個人的に問題視するのは勝手だが
他人が付き合ってくれないときにしつこくすることだ
715デフォルトの名無しさん
2020/12/16(水) 18:54:24.56ID:G781YURu 意義深い議論が展開されてるな
716デフォルトの名無しさん
2020/12/16(水) 22:51:18.04ID:IUrbfkPB C++はゼロコストで極力あらゆる制御をプログラマーに与えることを
使命ていうか至上命題にして至高のレーゾンデートルとみなしているように見えるので
プログラミングパラダイムを論じるにはいまいちに思はるる、
やっぱヘッダファイルとか批判者にとってかっこうの餌食でありその光景がまさに展開された、
使命ていうか至上命題にして至高のレーゾンデートルとみなしているように見えるので
プログラミングパラダイムを論じるにはいまいちに思はるる、
やっぱヘッダファイルとか批判者にとってかっこうの餌食でありその光景がまさに展開された、
717デフォルトの名無しさん
2020/12/16(水) 22:58:46.39ID:IUrbfkPB きちんとオブジェクト指向するんなら継承は全部virtualであるべきや
といってもC++だけにあてはまる批判ではないが
Base::Foo()とDerived::Foo()が異なる振る舞いで定義されているときに、
func(Base&)にDerivedを渡したらfunc()の中ではBase::Foo()が呼ばれるとか
危険極まりない
この基準で言ったらたいていの似非オブジェクト指向言語はNG
といってもC++だけにあてはまる批判ではないが
Base::Foo()とDerived::Foo()が異なる振る舞いで定義されているときに、
func(Base&)にDerivedを渡したらfunc()の中ではBase::Foo()が呼ばれるとか
危険極まりない
この基準で言ったらたいていの似非オブジェクト指向言語はNG
718デフォルトの名無しさん
2020/12/16(水) 23:05:40.32ID:L6k9APCP 不毛な宗教戦争よ
719デフォルトの名無しさん
2020/12/16(水) 23:25:11.55ID:2c+prgNQ クラスベースオブジェクト指向はすべて似非オブジェクト指向
アランケイ「C++のオブジェクト指向?知らない子ですね…」
アランケイ「C++のオブジェクト指向?知らない子ですね…」
720デフォルトの名無しさん
2020/12/17(木) 01:05:17.90ID:X4tT/GwL >>716
>C++はゼロコストで極力あらゆる制御をプログラマーに与えることを
>使命ていうか至上命題にして至高のレーゾンデートルとみなしているように見えるので
半分は正しいがそれならcでええやんてなる。
c++のc++たる所以(もしくは厨受けするところ)ってのは、ゼロコストなのにさらにどんなに高級な機能も入れられるんやで〜ってところだろ。
>C++はゼロコストで極力あらゆる制御をプログラマーに与えることを
>使命ていうか至上命題にして至高のレーゾンデートルとみなしているように見えるので
半分は正しいがそれならcでええやんてなる。
c++のc++たる所以(もしくは厨受けするところ)ってのは、ゼロコストなのにさらにどんなに高級な機能も入れられるんやで〜ってところだろ。
721デフォルトの名無しさん
2020/12/17(木) 01:10:53.36ID:YFuWJYb1722デフォルトの名無しさん
2020/12/17(木) 07:05:17.82ID:iG8ucCJK 非仮想だとそうなっちゃうっていう批判なんだろ
ハイディングなんかする方が悪いと思うけど
ハイディングなんかする方が悪いと思うけど
723デフォルトの名無しさん
2020/12/17(木) 07:08:07.45ID:4VSV+Zch724デフォルトの名無しさん
2020/12/17(木) 08:15:27.96ID:61mx8GyZ725デフォルトの名無しさん
2020/12/17(木) 11:41:30.12ID:YFuWJYb1726デフォルトの名無しさん
2020/12/17(木) 14:49:46.67ID:4VSV+Zch #include <charconv>
using namespace std;
int main()
{
char str[] = "123";
double dbl;
from_chars(str, str + 3, dbl);
}
Visual Studioでは通るんだけど、GCCではダメ
どうも戻りのfrom_chars_resultがテンプレートになってて推論に失敗してるようなんだけど
規格ドラフト見てもfrom_chars_resultがテンプレートだなんてどこにも書いてない
これGCCがおかしいんだよな?
バグレポ上がってたりする?
using namespace std;
int main()
{
char str[] = "123";
double dbl;
from_chars(str, str + 3, dbl);
}
Visual Studioでは通るんだけど、GCCではダメ
どうも戻りのfrom_chars_resultがテンプレートになってて推論に失敗してるようなんだけど
規格ドラフト見てもfrom_chars_resultがテンプレートだなんてどこにも書いてない
これGCCがおかしいんだよな?
バグレポ上がってたりする?
727デフォルトの名無しさん
2020/12/17(木) 14:50:46.30ID:4VSV+Zch バージョン書き忘れた
Visual Studio: 19.28.29334
GCC: 10.2.0
Visual Studio: 19.28.29334
GCC: 10.2.0
728デフォルトの名無しさん
2020/12/17(木) 15:56:08.03ID:UR7Dc4KD >>726
整数型だけしかサポートしてないよ
整数型だけしかサポートしてないよ
729デフォルトの名無しさん
2020/12/17(木) 17:33:27.07ID:4VSV+Zch730デフォルトの名無しさん
2020/12/17(木) 22:56:50.01ID:mqVedE2Y gccの傾向として、熱烈な信者がいて、出来ないことを出来ると宣伝したり、劣っているものを優れていると宣伝したりする場合がある。
ところが、そのような場合、GNUのマニュアルは「出来ない」「劣る」と明言している場合が多い。
したがって、gccについてはみだりに検索せず、GNUのサイトを見ることをお勧めします。
ところが、そのような場合、GNUのマニュアルは「出来ない」「劣る」と明言している場合が多い。
したがって、gccについてはみだりに検索せず、GNUのサイトを見ることをお勧めします。
731デフォルトの名無しさん
2020/12/18(金) 01:08:57.52ID:CTNkAd3G >>726 「ダメ」がコンパイルエラーの意味ならエラーメッセージも挙げてよ。
732デフォルトの名無しさん
2020/12/18(金) 01:16:51.95ID:UPU6Cu+L ダメコンは、ダメージコントロールの略ですよ。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ [冬月記者★]
- 自民・麻生太郎副総裁 石破政権の1年は「どよーん」 高市政権発足で「何となく明るくなった」「世の中のことが決まり動いている」★2 [Hitzeschleier★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- 【テレビ】元NHK解説委員が指摘 「敗戦国の日本は、生意気言うなというのが中国の立場」「腕まくりは意味がない」 [冬月記者★]
- バイク事故で入院ゆたぼん、見舞金「1円」振り込みの名義に衝撃「悲しい人ですね」「こういう人がいるから…」 [muffin★]
- 【画像】消えた美人女優 上原多香子さん(42)、沖縄で目撃される [牛丼★]
