前スレ
C++相談室 part157
https://mevius.5ch.net/test/read.cgi/tech/1628474251/
C++相談室 part158
レス数が1000を超えています。これ以上書き込みはできません。
2021/11/15(月) 18:49:18.44ID:I69rZ/Of
938デフォルトの名無しさん
2022/02/15(火) 15:22:08.66ID:3zKYAjvH 数学のベクトルクラスでも作成してるのかい?
939デフォルトの名無しさん
2022/02/15(火) 17:13:44.36ID:QbgtcDS7 >>933
あるよ。おすすめするわけじゃないけど。
https://www.google.com/search?q=boost+fusion+for_each+struct
こんな奇怪なライブラリ使わなくても済むようにするための言語側サポートはいずれも提案中。先は長い。
P1306 Expansion statements
https://github.com/cplusplus/papers/issues/156
P1240 Scalable Reflection in C++
https://github.com/cplusplus/papers/issues/545
あるよ。おすすめするわけじゃないけど。
https://www.google.com/search?q=boost+fusion+for_each+struct
こんな奇怪なライブラリ使わなくても済むようにするための言語側サポートはいずれも提案中。先は長い。
P1306 Expansion statements
https://github.com/cplusplus/papers/issues/156
P1240 Scalable Reflection in C++
https://github.com/cplusplus/papers/issues/545
940デフォルトの名無しさん
2022/02/15(火) 17:28:44.20ID:AWN50YIA じゃあこれもオススメではないがリフレクションベースで
https://www.rttr.org/
を使った例でも...
#include <iostream>
#include <rttr/registration>
using namespace rttr;
struct s{
int m1;
double m2;
};
RTTR_REGISTRATION {
registration::class_<s>("s").constructor<>()
.property("m1", &s::m1)
.property("m2", &s::m2);
}
template<typename T>
double sum(const T& o) {
type t = type::get<s>();
double sum = 0.;
for (auto& prop : t.get_properties()) {
sum += prop.get_value(o).to_double();
}
return sum;
}
int main() {
s o{1,1.1};
std::cout << sum(o) << std::endl;
return 0;
}
// 思いつきで聞いてるだけな気もするけどw
https://www.rttr.org/
を使った例でも...
#include <iostream>
#include <rttr/registration>
using namespace rttr;
struct s{
int m1;
double m2;
};
RTTR_REGISTRATION {
registration::class_<s>("s").constructor<>()
.property("m1", &s::m1)
.property("m2", &s::m2);
}
template<typename T>
double sum(const T& o) {
type t = type::get<s>();
double sum = 0.;
for (auto& prop : t.get_properties()) {
sum += prop.get_value(o).to_double();
}
return sum;
}
int main() {
s o{1,1.1};
std::cout << sum(o) << std::endl;
return 0;
}
// 思いつきで聞いてるだけな気もするけどw
941デフォルトの名無しさん
2022/02/15(火) 17:31:44.80ID:AWN50YIA ちょっと修正
#include <iostream>
#include <rttr/registration>
using namespace rttr;
struct s{
int m1;
double m2;
};
RTTR_REGISTRATION {
registration::class_<s>("s").constructor<>()
.property("m1", &s::m1)
.property("m2", &s::m2);
}
template<typename T>
double sum(const T& o) {
double sum = 0.;
for (auto& prop : type::get<T>().get_properties()) {
sum += prop.get_value(o).to_double();
}
return sum;
}
int main() {
s o{1,1.1};
std::cout << sum(o) << std::endl;
return 0;
}
#include <iostream>
#include <rttr/registration>
using namespace rttr;
struct s{
int m1;
double m2;
};
RTTR_REGISTRATION {
registration::class_<s>("s").constructor<>()
.property("m1", &s::m1)
.property("m2", &s::m2);
}
template<typename T>
double sum(const T& o) {
double sum = 0.;
for (auto& prop : type::get<T>().get_properties()) {
sum += prop.get_value(o).to_double();
}
return sum;
}
int main() {
s o{1,1.1};
std::cout << sum(o) << std::endl;
return 0;
}
942デフォルトの名無しさん
2022/02/17(木) 18:59:32.62ID:bHlhY+TU std::unique_ptr</*見切れる程長いクラス名*/> looongPtr{ std::make_unique</*見切れる程長いクラス名*/>(/*見切れる程多い引数*/) };
unique_ptrをメンバ変数にするときに最初のとこをautoに出来ないんですか?
unique_ptrをメンバ変数にするときに最初のとこをautoに出来ないんですか?
943デフォルトの名無しさん
2022/02/17(木) 19:17:57.96ID:9tUnWmYs make関数使えば?
944蟻人間 ◆T6xkBnTXz7B0
2022/02/17(木) 19:30:29.28ID:sNGWbyyl typedef longlonglongtypename shorttypename;
auto ptr = std::make_unique<shorttypename>...
auto ptr = std::make_unique<shorttypename>...
945デフォルトの名無しさん
2022/02/17(木) 20:09:06.95ID:TNf7BdQD946デフォルトの名無しさん
2022/02/17(木) 20:26:37.89ID:wIu//gsc >>942
設計を見直せ
設計を見直せ
947デフォルトの名無しさん
2022/02/17(木) 21:57:39.99ID:d4bhbZak 単なる○○できますか?に対して設計見直せとだけ言ってくるガイジなんなん
まず質問に答えた上でなら分からんでもないが
まず質問に答えた上でなら分からんでもないが
948デフォルトの名無しさん
2022/02/17(木) 22:12:03.03ID:wIu//gsc うるせぇ雑魚が
949デフォルトの名無しさん
2022/02/17(木) 23:04:10.74ID:wrwPyddf ざーこざーこw
950デフォルトの名無しさん
2022/02/17(木) 23:56:12.71ID:bHlhY+TU 🤔
951デフォルトの名無しさん
2022/02/18(金) 00:20:49.11ID:q/M7jrOo C++の業務ってことで入ったんだけどC++とは名ばかりのC言語バリバリのコードだった
C++11、いやせめてCじゃなくてC++を書こうとしようぜと思うんだけど世の中こんなんばっかなん?こういうケースほんっとに多くてさぁ
40代↑の人が書いてるC++の言語って大体ほぼCでうんざりする
C++11、いやせめてCじゃなくてC++を書こうとしようぜと思うんだけど世の中こんなんばっかなん?こういうケースほんっとに多くてさぁ
40代↑の人が書いてるC++の言語って大体ほぼCでうんざりする
952デフォルトの名無しさん
2022/02/18(金) 00:25:14.77ID:qZSzRw8s 偏見だけど同名の関数が並んでる以外Cとしてコンパイルできそうなイメージある
953はちみつ餃子 ◆8X2XSCHEME
2022/02/18(金) 00:25:30.70ID:fowo2HBL >>951
なんでそんなことになるんだろうな?
コンパイラを信用してないからか?
ワイは40代以上やけど C++ を使える状況であえて C 的なスタイルで書く気はしないわ。
だって単純に面倒くさいもの。
なんでそんなことになるんだろうな?
コンパイラを信用してないからか?
ワイは40代以上やけど C++ を使える状況であえて C 的なスタイルで書く気はしないわ。
だって単純に面倒くさいもの。
954デフォルトの名無しさん
2022/02/18(金) 00:26:19.39ID:VWFgwWIW で、相談は?
955デフォルトの名無しさん
2022/02/18(金) 01:20:21.17ID:x3azmRP7 Cの文法が覚えられる限界なんでしょうな
956デフォルトの名無しさん
2022/02/18(金) 02:48:20.56ID:y/CjghL0 人事部の人がCとC++の見分けがつかなくて
会計上コンパイラ代に「C++」と書いてあったから
C++で募集かけてたんじゃね?
会計上コンパイラ代に「C++」と書いてあったから
C++で募集かけてたんじゃね?
958デフォルトの名無しさん
2022/02/18(金) 13:34:17.22ID:NqXxszTV959デフォルトの名無しさん
2022/02/18(金) 14:23:13.29ID:y/CjghL0 自分は何かできるとでも言いたげだな
すべて作り直すということがどのくらいの工数かわかってないんだろ
すべて作り直すということがどのくらいの工数かわかってないんだろ
960デフォルトの名無しさん
2022/02/18(金) 15:06:16.89ID:tL/18rdC >>958
俺もそう思う
現場の不平不満ばかりの意識高い系エンジニアさん多いよね
その現場を改善するわけでもなく文句いうだけ
高いスキルあるならそんな現場やめれば?
単価150万超えるようなとこなら周りにも高スキルな人がたくさんいるよ?
現場の文句言うだけの奴は結局その現場がお似合いのレベルなんだよ、っていつも思ってる
俺もそう思う
現場の不平不満ばかりの意識高い系エンジニアさん多いよね
その現場を改善するわけでもなく文句いうだけ
高いスキルあるならそんな現場やめれば?
単価150万超えるようなとこなら周りにも高スキルな人がたくさんいるよ?
現場の文句言うだけの奴は結局その現場がお似合いのレベルなんだよ、っていつも思ってる
961デフォルトの名無しさん
2022/02/18(金) 15:32:05.24ID:dD/fDJ+w962デフォルトの名無しさん
2022/02/18(金) 15:57:07.65ID:NqXxszTV >>955
無職が言いそうなことだ。無能なブロジェクトリーダーはCプロジェクトをあっさりとC++化できる、
存在しないスーパープログラマを探し続けるがそんな奴はどこにもいない。
そんなスーパーPGがいたらATMはバグで止まらない。C++書ける奴はCをバカにしないよ。
無職が言いそうなことだ。無能なブロジェクトリーダーはCプロジェクトをあっさりとC++化できる、
存在しないスーパープログラマを探し続けるがそんな奴はどこにもいない。
そんなスーパーPGがいたらATMはバグで止まらない。C++書ける奴はCをバカにしないよ。
963デフォルトの名無しさん
2022/02/18(金) 16:33:00.65ID:xb2lszF9 バグ出たまま放置してるヤツはバカにするけど
964デフォルトの名無しさん
2022/02/18(金) 17:01:46.61ID:1bc1nI/9 正当な理由もなくスマポやSTLを嫌がった結果
生ポインタをガチャガチャいじくり回したスパゲティコード書いて
それが遅くて非効率でバグまみれリークだらけというのは非常によくあるけど
そういうCプログラマ様も敬わなきゃダメ?
生ポインタをガチャガチャいじくり回したスパゲティコード書いて
それが遅くて非効率でバグまみれリークだらけというのは非常によくあるけど
そういうCプログラマ様も敬わなきゃダメ?
965デフォルトの名無しさん
2022/02/18(金) 17:04:32.95ID:y/CjghL0 バイアス満載だな
落ち着けよw
落ち着けよw
966デフォルトの名無しさん
2022/02/18(金) 17:19:05.78ID:xb2lszF9 そういうどうしょうもないのはヒソカに心の奥でバカにしていいし反面教示にすべし
967デフォルトの名無しさん
2022/02/18(金) 18:15:33.32ID:jeS+/hUn マ板かここ?
968デフォルトの名無しさん
2022/02/18(金) 20:06:32.33ID:z2RoOtDN 80対20の法則は大事だし、動くコードを作ってから最適化をした方がいいって偉い人も言ってた気がする
リソース管理はとりあえずスマポを使うのが吉だと思ってます
リソース管理はとりあえずスマポを使うのが吉だと思ってます
969デフォルトの名無しさん
2022/02/18(金) 20:12:42.95ID:N0FOn5a0 自分で責任もって結合テストする覚悟があるんならいくらでもCからC++に置き換えていいと思うよ
970デフォルトの名無しさん
2022/02/18(金) 20:34:30.32ID:y/CjghL0 とテストの基本がわかってないやつが言う
C++に動的な型宣言はないからな
C++に動的な型宣言はないからな
971デフォルトの名無しさん
2022/02/18(金) 20:38:01.63ID:NqXxszTV 効率ガーと言うが、CをC++に書き換えて高速化、省メモリ化するなんてむしろレアケース。
972デフォルトの名無しさん
2022/02/18(金) 20:44:21.03ID:y/CjghL0 C++の隠れたコードが何をしてるか解ってないやつが
C++にしたら高速化した低速化したって言語のせいにするんだよ
C++にしたら高速化した低速化したって言語のせいにするんだよ
973デフォルトの名無しさん
2022/02/18(金) 21:35:17.98ID:UZsjZs7N こういうとき悲しいのはね
CもC++もたいして知りもしねえド素人のアマチュアが
想像と思い込みでもっていろいろレスつけてくること
噴飯ものだぞ?
CもC++もたいして知りもしねえド素人のアマチュアが
想像と思い込みでもっていろいろレスつけてくること
噴飯ものだぞ?
974デフォルトの名無しさん
2022/02/18(金) 23:03:13.88ID:k8EYArXJ c++書いてたとき何ちゃらストリームやらのファイル操作遅すぎてムリすぎて結局fopen使ったような…
まあ便利は便利なんだけど利便さ求めるならそもそもpythonとかに逃げますし
C++17未満?だとfilesystem使えなくてこんな簡単なことも出来ないのかと絶望した気もする
まあ便利は便利なんだけど利便さ求めるならそもそもpythonとかに逃げますし
C++17未満?だとfilesystem使えなくてこんな簡単なことも出来ないのかと絶望した気もする
975デフォルトの名無しさん
2022/02/18(金) 23:08:29.98ID:qZSzRw8s std::endlがフラッシュ兼ねてるのを知らずに使うとクソ遅くなる
976デフォルトの名無しさん
2022/02/19(土) 00:57:04.84ID:kSnJ/KwP 初心者にC++は早い
C++は人類に対する挑戦
C++は人類に対する挑戦
977デフォルトの名無しさん
2022/02/19(土) 01:05:13.77ID:Sb0QDKc0 みんな最初は初心者
978デフォルトの名無しさん
2022/02/19(土) 01:28:32.55ID:MLwzxLgZ Appleのcopland、Googleのandroid、MSのEdgeの失敗を見れば
予算と開発期間が十分にあれば解決すると思ってるならそれは間違いだと理解するだろう。
生ポインタをこねくり回す程度で脳みそのキャパが越えてるようじゃC++使ってもまともな実装なんてできない。
隠れたコードも何もC、C++はアセンブラの知識は必須だ。バイナリを読めるようになってから文句言え。
予算と開発期間が十分にあれば解決すると思ってるならそれは間違いだと理解するだろう。
生ポインタをこねくり回す程度で脳みそのキャパが越えてるようじゃC++使ってもまともな実装なんてできない。
隠れたコードも何もC、C++はアセンブラの知識は必須だ。バイナリを読めるようになってから文句言え。
979デフォルトの名無しさん
2022/02/19(土) 03:09:27.37ID:kSnJ/KwP フムフムアセンブラが必須か…
https://godbolt.org/z/jq16j83We
#include<vector>
using namespace std;
void f(char* dst, const char* src_start, const char* src_end) {
const char*s = src_start;
char*p = dst;
while (s != src_end) *p++ = *s++;
}
template<typename Dst, typename Src>
void f2(Dst dst, Src src_start, Src src_end) {
auto s = src_start;
auto p = dst;
while (s != src_end) *p++ = *s++;
}
void hoge() {
vector<char> dst(1024), src(1024);
f(dst.data(), src.data(), src.data() + src.size());
f2(src.begin(), dst.begin(), dst.end());
}
これってどうしてhoge側だとSIMD使わないの?
C++コードでSIMD使わせるにはどうしたらいい?
https://godbolt.org/z/jq16j83We
#include<vector>
using namespace std;
void f(char* dst, const char* src_start, const char* src_end) {
const char*s = src_start;
char*p = dst;
while (s != src_end) *p++ = *s++;
}
template<typename Dst, typename Src>
void f2(Dst dst, Src src_start, Src src_end) {
auto s = src_start;
auto p = dst;
while (s != src_end) *p++ = *s++;
}
void hoge() {
vector<char> dst(1024), src(1024);
f(dst.data(), src.data(), src.data() + src.size());
f2(src.begin(), dst.begin(), dst.end());
}
これってどうしてhoge側だとSIMD使わないの?
C++コードでSIMD使わせるにはどうしたらいい?
980デフォルトの名無しさん
2022/02/19(土) 04:43:40.93ID:2+bZAOZm valarray
981デフォルトの名無しさん
2022/02/19(土) 04:46:13.97ID:kSnJ/KwP 不正解
982デフォルトの名無しさん
2022/02/19(土) 06:01:38.84ID:2+bZAOZm hoge側でどうSIMD使えって言いたいの?
inlineとかだったらしばくぞ
inlineとかだったらしばくぞ
983デフォルトの名無しさん
2022/02/19(土) 06:20:48.76ID:ZqDn11YK イントリンシック、でしょう?
984デフォルトの名無しさん
2022/02/19(土) 08:45:24.25ID:0ANF/iVA Intelのコンパイラに任せ
985デフォルトの名無しさん
2022/02/19(土) 09:52:14.21ID:kSnJ/KwP 1024 -> 1024 * 16にすると...
986デフォルトの名無しさん
2022/02/19(土) 09:57:47.91ID:kSnJ/KwP intrinsicは(inline)assemblerとほぼ同じなので、C#でしか使ったことないな
987デフォルトの名無しさん
2022/02/19(土) 10:03:29.25ID:mDQ0X8WX アセンブラなどの理解は「低レイヤを知りたい人向けのCコンパイラ作成入門」が結構勉強になったんですが、バイナリは何で勉強すればいいですかね?
988デフォルトの名無しさん
2022/02/19(土) 10:34:54.00ID:0ANF/iVA >>985
キャッシュメモリのアレで遅くなるやつか?
キャッシュメモリのアレで遅くなるやつか?
989デフォルトの名無しさん
2022/02/19(土) 10:44:00.07ID:kSnJ/KwP さぁ?・・・callしたり判定用コードやサイズ計算とかオーバーヘッドがあるからじゃね?知らんw
990デフォルトの名無しさん
2022/02/19(土) 11:57:14.27ID:kSnJ/KwP991デフォルトの名無しさん
2022/02/19(土) 12:08:36.38ID:2h4SA+VW CADソフトCANDYの作者の発言。
>数年前に,私の会社で組み込み機器向けのプロジェクトで,C++コンパイラが安定して動かないので
>Cでプログラムを書くように私が指示したケースがあったのだが,
>何人かのエンジニアが「今さらCなんかでプログラムを書けませんよ。
>クラスを使えなければスパゲッティコードになってしまいます」と猛反対をしてきた。
■ 第4回 オブジェクト指向の本質
https://gihyo.jp/lifestyle/serial/01/software_is_beautiful/0004
別のインタビューと補完すると、そのときC++の標準ライブラリ的なブツを著者が
C言語でババーっと書いて仕事させたという話だったはず(記憶モード
ちょっどこの昭和カヨ?!
>数年前に,私の会社で組み込み機器向けのプロジェクトで,C++コンパイラが安定して動かないので
>Cでプログラムを書くように私が指示したケースがあったのだが,
>何人かのエンジニアが「今さらCなんかでプログラムを書けませんよ。
>クラスを使えなければスパゲッティコードになってしまいます」と猛反対をしてきた。
■ 第4回 オブジェクト指向の本質
https://gihyo.jp/lifestyle/serial/01/software_is_beautiful/0004
別のインタビューと補完すると、そのときC++の標準ライブラリ的なブツを著者が
C言語でババーっと書いて仕事させたという話だったはず(記憶モード
ちょっどこの昭和カヨ?!
992デフォルトの名無しさん
2022/02/19(土) 12:18:20.98ID:kSnJ/KwP 組み込み機器用のCPUって特殊なんで、コンパイラが安定しないなんてよくある話
オブジェクト指向のメリットの本質についての話なので、可能/不可能が実装言語に依存しないというのもよくある話(楽かどうかは別)
別に昭和でも平成でも令和でも変わってないけど、>>991に伝わってないのは確か
オブジェクト指向のメリットの本質についての話なので、可能/不可能が実装言語に依存しないというのもよくある話(楽かどうかは別)
別に昭和でも平成でも令和でも変わってないけど、>>991に伝わってないのは確か
993デフォルトの名無しさん
2022/02/19(土) 12:50:13.00ID:gFosEVVi GTKのGObjectはCでオブジェクト指向を実現している訳だけど
(ただし学習コストが低いとは言えないと思う)
(ただし学習コストが低いとは言えないと思う)
994デフォルトの名無しさん
2022/02/19(土) 12:53:15.56ID:2h4SA+VW そんなん言ったらX Window SystemもC言語でオブジェクト指向しているらしい
らしい(伝聞
らしい(伝聞
995デフォルトの名無しさん
2022/02/19(土) 13:05:47.37ID:x/upE6G9 当たり前だけどアセンブラでもオブジェクト指向はできるし還暦の爺さん(とは言ってもなかなかの人ではある)が10年以上前に書いた記事だしまじで何を言いたいのかよくわからん
996デフォルトの名無しさん
2022/02/19(土) 13:20:12.26ID:kSnJ/KwP 分からん分からん言うのは誰でも出来るし、どんな初心者でも何に対してもそう言える
なので、具体的に分からん部分を指摘できない人は初心者か、荒らしだと思ってる
なので、具体的に分からん部分を指摘できない人は初心者か、荒らしだと思ってる
997デフォルトの名無しさん
2022/02/19(土) 13:22:03.79ID:kSnJ/KwP athenaくらいつかったことあるよね
998デフォルトの名無しさん
2022/02/19(土) 13:28:47.19ID:2h4SA+VW >当たり前だけどアセンブラでもオブジェクト指向はできるし
ちょっカプセル化(シンボルの隠蔽)にやや手間がかかるし
オブジェクトをスタックにのコピーして返すのにもさらに手間がかかるし、
コンストラやデストラの呼び出しの保証や継承関係のチェックについて処理系のサポートが一切無いし、
やんけ;;;
そういうオブジェクト指向のプログラミングパラダイムにおいて裏で当然働くべき処理が
プログラマーが手間をかけ注意を振り向け続けないと実現されないというのはオブジェクト指向しているうちに入らないのでは……
ちょっカプセル化(シンボルの隠蔽)にやや手間がかかるし
オブジェクトをスタックにのコピーして返すのにもさらに手間がかかるし、
コンストラやデストラの呼び出しの保証や継承関係のチェックについて処理系のサポートが一切無いし、
やんけ;;;
そういうオブジェクト指向のプログラミングパラダイムにおいて裏で当然働くべき処理が
プログラマーが手間をかけ注意を振り向け続けないと実現されないというのはオブジェクト指向しているうちに入らないのでは……
999デフォルトの名無しさん
2022/02/19(土) 13:31:35.88ID:6TS2kFRN brainfuckでもオブジェクト指向でプログラミングできるんやで
1000デフォルトの名無しさん
2022/02/19(土) 13:31:55.84ID:6TS2kFRN >>1000なら次スレでちんこ貼る
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 95日 18時間 42分 38秒
新しいスレッドを立ててください。
life time: 95日 18時間 42分 38秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★3 [ぐれ★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- 現役猟師・東出昌大、クマ被害続出も過熱する報道に「クマはそんな危ないもんじゃない」理由語る [muffin★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- さっっっっっっっっっっっっっっっっっむ!?!!?!?!?!!??!??!???!
- 日本の歴代総理大臣で1番ダメだった奴
- 高市政権「中国依存の経済から脱却する」?「それはダメーッ!」
- 【急募】今!!夜更かししている全お前らに告ぐ!!!何時に寝るのか宣言するのだ!!!
- 4時だから窓から4回ちんこ出した
- Perfume・あ~ちゃんの結婚相手の一般男性、吉田カバンの社長と判明 [977261419]
