前スレ
C++相談室 part156
https://mevius.5ch.net/test/read.cgi/tech/1621389313/
探検
C++相談室 part157
■ このスレッドは過去ログ倉庫に格納されています
2021/08/09(月) 10:57:31.60ID:JaaB5Egp
103デフォルトの名無しさん
2021/08/14(土) 22:18:40.56ID:cML6JT7R 11よりは前は書きたくないね
104デフォルトの名無しさん
2021/08/15(日) 00:20:00.85ID:YeWgyy60 QZ案外初心者やなw
でも言ってることは全面的に賛成
ポインタや参照、クラス等の基本を抑えてからでないとスマポや、C++11からの要素(右辺値参照含む)の使い方もわからんと思う
でも言ってることは全面的に賛成
ポインタや参照、クラス等の基本を抑えてからでないとスマポや、C++11からの要素(右辺値参照含む)の使い方もわからんと思う
105デフォルトの名無しさん
2021/08/15(日) 06:30:24.80ID:AkVzvB4L autoもそうだが ->戻り型やusingエイリアスもだね
typedefには戻れない
typedefには戻れない
106ハノン ◆QZaw55cn4c
2021/08/15(日) 09:34:41.47107デフォルトの名無しさん
2021/08/15(日) 14:37:33.11ID:Qb5ISoeo >>104
なにこれ?
QZ「〜」
名無し「QZ初心者やな。でも賛成」
っていう自演をやろうとしたが、一個目のQZのレスをコテつけ忘れで投稿してしまったのか?
あるいははちみつとQZを同一視している?
いずれにせよとんでもない皮肉だな笑
なにこれ?
QZ「〜」
名無し「QZ初心者やな。でも賛成」
っていう自演をやろうとしたが、一個目のQZのレスをコテつけ忘れで投稿してしまったのか?
あるいははちみつとQZを同一視している?
いずれにせよとんでもない皮肉だな笑
109デフォルトの名無しさん
2021/08/15(日) 17:48:49.44ID:pJ9UilRh >>107
それ、以前俺が書いたカキコを勝手にコピペされただけだよ
それ、以前俺が書いたカキコを勝手にコピペされただけだよ
110デフォルトの名無しさん
2021/08/15(日) 17:52:57.61ID:/OoKg6VD クッソささやかな体面保つためだけの自演も失敗とか本当にみじめないきものだな…
111デフォルトの名無しさん
2021/08/15(日) 18:00:11.34ID:/ZNLC/hj これか。どういう意図のコピペなんだろうかね。
https://mevius.5ch.net/test/read.cgi/tech/1594615908/595
https://mevius.5ch.net/test/read.cgi/tech/1594615908/595
112はちみつ餃子 ◆8X2XSCHEME
2021/08/15(日) 18:12:10.32ID:oR5NZ4bd113デフォルトの名無しさん
2021/08/15(日) 18:15:56.65ID:pJ9UilRh114はちみつ餃子 ◆8X2XSCHEME
2021/08/15(日) 18:21:10.51ID:oR5NZ4bd115デフォルトの名無しさん
2021/08/15(日) 18:25:05.27ID:pJ9UilRh (´・ω・`)そうか
116デフォルトの名無しさん
2021/08/16(月) 15:03:34.95ID:Gh+OcB3l >>107
なんで突然はちみつ?
なんで突然はちみつ?
117はちみつ餃子 ◆8X2XSCHEME
2021/08/16(月) 15:17:56.99ID:5E5Krdno >>116
現時点でこのスレにコテ (+トリップ) 付きで書き込んでいるのがはちみつ餃子と QZ だけだからだろ。
現時点でこのスレにコテ (+トリップ) 付きで書き込んでいるのがはちみつ餃子と QZ だけだからだろ。
118デフォルトの名無しさん
2021/08/16(月) 19:18:38.03ID:QgSHgEhC (unsigned) intの数を受けたら何らかの演算をして (unsigned) long longの数を返す、(unsigned) double の数を受けたら何らかの演算をして (unsigned) long double の数を返す、みたいのって逐一オーバーロードを書くしかないですよね?
要するに、大きいデータ型に格上げして何らかの演算をして返したいってことなんですが
要するに、大きいデータ型に格上げして何らかの演算をして返したいってことなんですが
119ハノン ◆QZaw55cn4c
2021/08/16(月) 19:34:40.64120デフォルトの名無しさん
2021/08/16(月) 19:55:44.02ID:AiYiQHL1 引数をテンプレートにして、引数Tのビット数と整数型かどうかを見て、一段階大きい型を戻り値の型とすることは出来る
122デフォルトの名無しさん
2021/08/16(月) 21:59:33.60ID:AiYiQHL1 ごめん、めんどい・・というか
sizeof(T)と整数or浮動小数点数のbool(is_integralとかで取る)を受け取る構造体の中でtype(戻り値の型)を定義、とか考えてたけど
結局Tのサイズごとに特殊化するから手間変わらん、てのと
関数の中身が長くなるなら、オーバーロードした関数からテンプレート版(戻り値の型と引数の型がテンプレート)を呼んで、そこで中身書けば一回で済むね
sizeof(T)と整数or浮動小数点数のbool(is_integralとかで取る)を受け取る構造体の中でtype(戻り値の型)を定義、とか考えてたけど
結局Tのサイズごとに特殊化するから手間変わらん、てのと
関数の中身が長くなるなら、オーバーロードした関数からテンプレート版(戻り値の型と引数の型がテンプレート)を呼んで、そこで中身書けば一回で済むね
123デフォルトの名無しさん
2021/08/16(月) 23:40:17.97ID:cwTPPWgm >>118
ふつうに long long や long double を引数で受け取るって演算して返す関数を書けば
その通りの動作になりそうなんだけど、何か気に入らないの?
2つ関数書くのが嫌だってこと?(やりたいことが少なくとも2通りあるのに?)
ふつうに long long や long double を引数で受け取るって演算して返す関数を書けば
その通りの動作になりそうなんだけど、何か気に入らないの?
2つ関数書くのが嫌だってこと?(やりたいことが少なくとも2通りあるのに?)
124はちみつ餃子 ◆8X2XSCHEME
2021/08/17(火) 00:20:49.88ID:yPn/BtRt 大きい型というのは一段階大きい型という意味なのかな?
型の大きさは処理系 (アーキテクチャ) 依存だし、
ポータブルに書こうと思ったら思ったよりも面倒な感じ。
主要なアーキテクチャだけ対処できればいいなら
8 → 16 → 32 → 64
の拡張が出来ればいいので用意するパターンはそんなに多くはない。
ちなみに Windows の long double は double と同じ大きさだよ。
型の大きさは処理系 (アーキテクチャ) 依存だし、
ポータブルに書こうと思ったら思ったよりも面倒な感じ。
主要なアーキテクチャだけ対処できればいいなら
8 → 16 → 32 → 64
の拡張が出来ればいいので用意するパターンはそんなに多くはない。
ちなみに Windows の long double は double と同じ大きさだよ。
125デフォルトの名無しさん
2021/08/17(火) 02:08:49.72ID:rNAqXouz 何種類か関数があるならtraitsを作成するのもありじゃない?
126デフォルトの名無しさん
2021/08/18(水) 04:11:58.97ID:ReVsRUuR 関数読んだら1段階デカい型が返ってくるなんて使う側でも面倒が起きそうだな
127デフォルトの名無しさん
2021/08/18(水) 04:23:43.76ID:TZ94eDdV まぁ、戻り値にも使用できるテンプレートの追加の型を関数内でconstexpr的に定義出来たらいろいろ面白いことが出来そうではあるなw
128デフォルトの名無しさん
2021/08/19(木) 15:14:48.98ID:9cCAU3aU 話は勝手に変わるけど、
{ 1,2,3,4,5 }
のような書き方が initializer_list になる場合とならない場合を全て知りたいけど
良く分からないので、誰か教えてくれまいか。
{ 1,2,3,4,5 }
のような書き方が initializer_list になる場合とならない場合を全て知りたいけど
良く分からないので、誰か教えてくれまいか。
129デフォルトの名無しさん
2021/08/19(木) 15:21:14.80ID:9cCAU3aU >>128
的を外しているかも知れないけど、その書き方をAと書くとすると、どんな文脈でも
A自体が最初に必ずいったん initializer_list<T> になった後にそれぞれの文脈で処理されるという
ことなのか、あるいは、
auto x {・・・};
auto x = {・・・};
auto x = TYPE {・・・};
func({・・・});
のようにいろいろな書き方や文脈が変わるとそもそも A は意味論的にすら
initializer_list<T> を経由せずにそれぞれ独自に解釈されて処理される
のか、どちらなんだろう????
的を外しているかも知れないけど、その書き方をAと書くとすると、どんな文脈でも
A自体が最初に必ずいったん initializer_list<T> になった後にそれぞれの文脈で処理されるという
ことなのか、あるいは、
auto x {・・・};
auto x = {・・・};
auto x = TYPE {・・・};
func({・・・});
のようにいろいろな書き方や文脈が変わるとそもそも A は意味論的にすら
initializer_list<T> を経由せずにそれぞれ独自に解釈されて処理される
のか、どちらなんだろう????
130デフォルトの名無しさん
2021/08/19(木) 15:24:22.53ID:9cCAU3aU あと、良く分からないのが、
struct CPerson {
・・・
CPerson(int a, int b, int c) {・・・} //(1)
};
とあった場合、
1. CPerson a{1,2,3};
2. CPerson a={1,2,3};
3. CPerson a=CPerson{1,2,3};
のどれを書いても多分、(1)が呼び出される気がするけど、
struct CPerson {
・・・
CPerson(initializer_list<int> a) {・・・} //(2)
};
と書いた場合、1,2,3 はやはり全て(2)が呼び出されるのだろうか?
struct CPerson {
・・・
CPerson(int a, int b, int c) {・・・} //(1)
};
とあった場合、
1. CPerson a{1,2,3};
2. CPerson a={1,2,3};
3. CPerson a=CPerson{1,2,3};
のどれを書いても多分、(1)が呼び出される気がするけど、
struct CPerson {
・・・
CPerson(initializer_list<int> a) {・・・} //(2)
};
と書いた場合、1,2,3 はやはり全て(2)が呼び出されるのだろうか?
131はちみつ餃子 ◆8X2XSCHEME
2021/08/19(木) 16:38:31.07ID:z/GAGLjl >>129
> initializer_list<T> を経由せずにそれぞれ独自に解釈されて処理される
initializer_list を経由しないことはある。
おおざっぱには initializer_list を受け取る文脈では initializer_list だし、
推論が必要なとき (auto やテンプレート) にも initializer_list に推論されるが、
そうでないときは initializer_list を経由しない。
> initializer_list<T> を経由せずにそれぞれ独自に解釈されて処理される
initializer_list を経由しないことはある。
おおざっぱには initializer_list を受け取る文脈では initializer_list だし、
推論が必要なとき (auto やテンプレート) にも initializer_list に推論されるが、
そうでないときは initializer_list を経由しない。
132はちみつ餃子 ◆8X2XSCHEME
2021/08/19(木) 16:48:40.83ID:z/GAGLjl >>130
優先順位がある。
1. 2. 3. のいずれも initializer_list としての解釈が「優先される」。
initializer_list を受け取るコンストラクタが存在しなければ
三引数のコンストラクタが呼出される。
優先順位がある。
1. 2. 3. のいずれも initializer_list としての解釈が「優先される」。
initializer_list を受け取るコンストラクタが存在しなければ
三引数のコンストラクタが呼出される。
133デフォルトの名無しさん
2021/08/19(木) 16:54:44.67ID:9cCAU3aU >>132
なるほど。確認だけど、
1. CPerson a{1,2,3};
2. CPerson a={1,2,3};
3. CPerson a=CPerson{1,2,3};
4. CPerson a(1,2,3);
5. CPerson a=CPerson(1,2,3);
は、どれも3引数のコンストラクタで受け取ることは可能ということでOk?
1. 2. 3. は、initializer_list を受け取るコンストラクタでも受け取ることが可能?
4. 5. は、initializer_list を受け取るコンストラクタでも受け取ることは不可能??
なるほど。確認だけど、
1. CPerson a{1,2,3};
2. CPerson a={1,2,3};
3. CPerson a=CPerson{1,2,3};
4. CPerson a(1,2,3);
5. CPerson a=CPerson(1,2,3);
は、どれも3引数のコンストラクタで受け取ることは可能ということでOk?
1. 2. 3. は、initializer_list を受け取るコンストラクタでも受け取ることが可能?
4. 5. は、initializer_list を受け取るコンストラクタでも受け取ることは不可能??
134はちみつ餃子 ◆8X2XSCHEME
2021/08/19(木) 17:08:54.15ID:z/GAGLjl >>133
(initializer_list を受け取るコンストラクタが無ければ) いずれも 3 引数のコンストラクタが起動されるが、
5. は 3 引数のコンストラクタでオブジェクトを構築した上で a にコピーする。
(コピーコンストラクタ、またはムーブコンストラクタが起動する。)
ただし RVO が有効な状況ではコピーやムーブはが省略されるので 5. は 4. と同じ。
そしてこの場合には関係ないが、波括弧によるコンストラクタ起動では引数の暗黙の型変換を許さない
といった重要な違いがある。
(initializer_list を受け取るコンストラクタが有る状況でも) 4. と 5. は initializer_list とは解釈されない。
(initializer_list を受け取るコンストラクタが無ければ) いずれも 3 引数のコンストラクタが起動されるが、
5. は 3 引数のコンストラクタでオブジェクトを構築した上で a にコピーする。
(コピーコンストラクタ、またはムーブコンストラクタが起動する。)
ただし RVO が有効な状況ではコピーやムーブはが省略されるので 5. は 4. と同じ。
そしてこの場合には関係ないが、波括弧によるコンストラクタ起動では引数の暗黙の型変換を許さない
といった重要な違いがある。
(initializer_list を受け取るコンストラクタが有る状況でも) 4. と 5. は initializer_list とは解釈されない。
135デフォルトの名無しさん
2021/08/19(木) 17:14:28.81ID:9cCAU3aU >>134
1. 2. 3. は、initializer_list を受け取るコンストラクタでも受け取ることが可能?
4. 5. は、initializer_list を受け取るコンストラクタでも受け取ることは不可能??
については?
1. 2. 3. は、initializer_list を受け取るコンストラクタでも受け取ることが可能?
4. 5. は、initializer_list を受け取るコンストラクタでも受け取ることは不可能??
については?
137デフォルトの名無しさん
2021/08/19(木) 17:21:53.70ID:9cCAU3aU >>136
すまん。もう一度明言してくれるとありがたい。
すまん。もう一度明言してくれるとありがたい。
138デフォルトの名無しさん
2021/08/19(木) 17:27:44.09ID:td+NCu9W template <int N> void test(std::bitset<N>& arg);
int main()
{
std::bitset<1ull> lvalue;
test(lvalue);
}
これ、Nが推定できないのはなんで?
int main()
{
std::bitset<1ull> lvalue;
test(lvalue);
}
これ、Nが推定できないのはなんで?
139デフォルトの名無しさん
2021/08/19(木) 17:28:31.68ID:td+NCu9W すまん、自己解決
unsigned long long Nが正解だった
unsigned long long Nが正解だった
140はちみつ餃子 ◆8X2XSCHEME
2021/08/19(木) 17:30:02.71ID:z/GAGLjl141はちみつ餃子 ◆8X2XSCHEME
2021/08/19(木) 17:33:59.90ID:z/GAGLjl142デフォルトの名無しさん
2021/08/19(木) 17:40:36.29ID:9cCAU3aU143デフォルトの名無しさん
2021/08/19(木) 22:54:32.78ID:CH0dz2ka vector<long long>を取る関数にvector<int>を渡すと、その引数はvector<long long>にキャストされる
で、vector<int>を取る関数にvector<long long>を渡すのはNG
この理解は合ってますでしょうか
で、vector<int>を取る関数にvector<long long>を渡すのはNG
この理解は合ってますでしょうか
144デフォルトの名無しさん
2021/08/19(木) 23:03:24.64ID:/B0HDd6y 間違ってる
vector<long long>とvector<int>には何の関係もない
intとstringに関係がないのと同じくらい関係ない
vector<long long>とvector<int>には何の関係もない
intとstringに関係がないのと同じくらい関係ない
145デフォルトの名無しさん
2021/08/20(金) 11:13:55.26ID:5K/SmrCp pair<int, int> は pair<long long, long long>にキャストできるけど
vectorにそういうコンストラクタはないな
vectorにそういうコンストラクタはないな
146デフォルトの名無しさん
2021/08/20(金) 12:13:09.91ID:ssGfr3Zr147デフォルトの名無しさん
2021/08/20(金) 12:42:32.36ID:5K/SmrCp 例外処理が2系統、数え方によっては3系統あるのがね
148デフォルトの名無しさん
2021/08/20(金) 15:19:34.50ID:Pb4opnB5 STOUT を STDOUT に空目してこそプログラマ脳
「ミロ」そっくりの缶ビール 子どもが誤飲し販売禁止に(豪) - Yahoo! JAPAN
https://article.yahoo.co.jp/detail/1a7b2e0b9ab108ebf156f22e654f60634c39c88b
子どものみならず大人にも大人気のココア味の麦芽飲料「ミロ」は、世界中で愛されている。このほどオーストラリアの企業が、
ミロにそっくりのパッケージデザインで缶ビールを製造したことにより「子どもが間違えて飲んでしまった」という苦情が届いた。
これにより同製品の広告使用禁止が言い渡されたことを『news.com.au』などが伝えている。
問題の缶ビールは、豪ビクトリア州にある企業「Howler Brewing Company」の「Chocolate Milk Stout」というチョコレート風味の黒ビールだ。
缶のデザインは有名な麦芽飲料「ミロ」を真似たもので、お馴染みの緑色を背景に製品名や販売会社を示す文字の色やフォントまで同じデザインとなっている。
同社はこれまでにも、Instagramや炭酸飲料「スプライト」など認知度の高いロゴデザインを真似た製品を作り出している。
「ミロ」そっくりの缶ビール 子どもが誤飲し販売禁止に(豪) - Yahoo! JAPAN
https://article.yahoo.co.jp/detail/1a7b2e0b9ab108ebf156f22e654f60634c39c88b
子どものみならず大人にも大人気のココア味の麦芽飲料「ミロ」は、世界中で愛されている。このほどオーストラリアの企業が、
ミロにそっくりのパッケージデザインで缶ビールを製造したことにより「子どもが間違えて飲んでしまった」という苦情が届いた。
これにより同製品の広告使用禁止が言い渡されたことを『news.com.au』などが伝えている。
問題の缶ビールは、豪ビクトリア州にある企業「Howler Brewing Company」の「Chocolate Milk Stout」というチョコレート風味の黒ビールだ。
缶のデザインは有名な麦芽飲料「ミロ」を真似たもので、お馴染みの緑色を背景に製品名や販売会社を示す文字の色やフォントまで同じデザインとなっている。
同社はこれまでにも、Instagramや炭酸飲料「スプライト」など認知度の高いロゴデザインを真似た製品を作り出している。
149デフォルトの名無しさん
2021/08/20(金) 17:52:50.79ID:BMARPdQo 関数オブジェクトじゃなくて関数を記述するメリットってなんかある?
テンプレートは近々関数オブジェクトの方でも使えるようになるんでしょ?
テンプレートは近々関数オブジェクトの方でも使えるようになるんでしょ?
150デフォルトの名無しさん
2021/08/20(金) 19:08:22.19ID:n19OoAH+ >>149
タイプ数が少ない、くらいかね。
タイプ数が少ない、くらいかね。
151デフォルトの名無しさん
2021/08/20(金) 20:12:20.52ID:BMARPdQo >>150
じゃあそのうち「関数はレガシーな書き方なので関数オブジェクトを使用するようにしましょう」とか言われるようになるの?
じゃあそのうち「関数はレガシーな書き方なので関数オブジェクトを使用するようにしましょう」とか言われるようになるの?
152デフォルトの名無しさん
2021/08/21(土) 00:32:59.41ID:E2GGZp0E153デフォルトの名無しさん
2021/08/21(土) 00:37:37.24ID:E2GGZp0E154デフォルトの名無しさん
2021/08/21(土) 00:45:38.19ID:E2GGZp0E あ、すまんラムダじゃなくて関数オブジェクトか
確かにタイプ数くらいしか思いつかんけど
テンプレートは既に使えるのでは?関数テンプレートに出来て関数オブジェクトに出来ないテンプレートの使い方あったっけ
確かにタイプ数くらいしか思いつかんけど
テンプレートは既に使えるのでは?関数テンプレートに出来て関数オブジェクトに出来ないテンプレートの使い方あったっけ
155デフォルトの名無しさん
2021/08/21(土) 10:46:43.63ID:+K/WXdke156デフォルトの名無しさん
2021/08/21(土) 12:15:51.53ID:t0h3aTQf157デフォルトの名無しさん
2021/08/21(土) 13:42:38.53ID:E2GGZp0E クラステンプレート内の普通のoperator ()だとそうだね
operator ()がテンプレートの場合ならほぼ関数テンプレートと同じ事出来るとは思うけど
文法上、明示的にテンプレート引数指定する際、関数と共通の書き方には出来ないな・・
operator ()がテンプレートの場合ならほぼ関数テンプレートと同じ事出来るとは思うけど
文法上、明示的にテンプレート引数指定する際、関数と共通の書き方には出来ないな・・
158デフォルトの名無しさん
2021/08/21(土) 20:47:50.56ID:7GAoG1Iq Rustのメモリ安全性はボローチェッカーによって担保されているが、
Nimと比較してRustはタイプ量が多い事により限りなく低い生産性と
C++のような高い難読性、超巨大なバイナリ生成性能を兼ね備えています
Nimはバージョン1.5.1でRustのボローチェッカーに似た「View types」が実装されれば、
GC無しでView types参照の有効性を検証することによってメモリ安全性を保証しつつ
限りなく抑え込まれたタイプ量で高速化したCのソースコードを吐き出せます
Nimソースコード ==nimコンパイラ==> Cソースコード ==Cコンパイラ==> バイナリ
なので、nimコンパイラが通った時点でメモリ安全性が担保されませんか?
Nimの実験的特徴
著者: アンドレアス・ルンプ
バージョン: 1.5.1
http://nim-lang.github.io/Nim/manual_experimental.html
Nimは限りなく抑え込まれたタイプ量で高い生産性とPythonのような高い可読性を実現し
ているにもかかわらず、Cのソースコードを吐き出せるのでC言語でリモートワークされ
ている方は割り振られた仕事が早く終わっても終わってないふりをして怠けることができる
「怠け者とはこうあるべきだ!」と言うとても大事な事を Nim は我々に教えてくれます
Nimと比較してRustはタイプ量が多い事により限りなく低い生産性と
C++のような高い難読性、超巨大なバイナリ生成性能を兼ね備えています
Nimはバージョン1.5.1でRustのボローチェッカーに似た「View types」が実装されれば、
GC無しでView types参照の有効性を検証することによってメモリ安全性を保証しつつ
限りなく抑え込まれたタイプ量で高速化したCのソースコードを吐き出せます
Nimソースコード ==nimコンパイラ==> Cソースコード ==Cコンパイラ==> バイナリ
なので、nimコンパイラが通った時点でメモリ安全性が担保されませんか?
Nimの実験的特徴
著者: アンドレアス・ルンプ
バージョン: 1.5.1
http://nim-lang.github.io/Nim/manual_experimental.html
Nimは限りなく抑え込まれたタイプ量で高い生産性とPythonのような高い可読性を実現し
ているにもかかわらず、Cのソースコードを吐き出せるのでC言語でリモートワークされ
ている方は割り振られた仕事が早く終わっても終わってないふりをして怠けることができる
「怠け者とはこうあるべきだ!」と言うとても大事な事を Nim は我々に教えてくれます
159デフォルトの名無しさん
2021/08/21(土) 22:35:53.53ID:o/sUihIV 質問です。
std::array ary = { 1, 2 };
↑の{}で初期化すると、
要素数を自動推論できるようにするにはどう実装すればいいんでしょう?
std::array ary = { 1, 2 };
↑の{}で初期化すると、
要素数を自動推論できるようにするにはどう実装すればいいんでしょう?
160デフォルトの名無しさん
2021/08/21(土) 22:55:48.18ID:+FOhqLVw161デフォルトの名無しさん
2021/08/22(日) 01:17:33.04ID:maGRuunL >>155
食ったところで飲みこまずにペッペッて吐き出すだろ
食ったところで飲みこまずにペッペッて吐き出すだろ
162デフォルトの名無しさん
2021/08/22(日) 04:31:26.04ID:Roj0wExz g++ -std=c++17
163デフォルトの名無しさん
2021/08/22(日) 12:59:29.57ID:0Cz6ueFz Rustのメモリ安全性はボローチェッカーによって担保されているが、
Nimと比較してRustはタイプ量が多い事により限りなく低い生産性と
C++のような高い難読性、超巨大なバイナリ生成性能を兼ね備えています
Nimはバージョン1.5.1でRustのボローチェッカーに似た「View types」が実装されれば、
GC無しのView typesで参照の有効性を検証することによってメモリ安全性を保証しつつ
限りなく抑え込まれたタイプ量で高速化したCのソースコードを吐き出せます
Nimソースコード ==nimコンパイラ==> Cソースコード ==Cコンパイラ==> バイナリ
なので、nimコンパイラが通った時点でメモリ安全性が担保されませんか?
Nimの実験的特徴 バージョン1.5.1
http://nim-lang.github.io/Nim/manual_experimental.html
第二プログラミング言語として Rust はオススメしません Nim をやるのです
https://wolfbash.hateblo.jp/entry/2017/07/30/193412
Nimは限りなく抑え込まれたタイプ量で高い生産性とPythonのような高い可読性を実現し
ているにもかかわらず、高速なCのソースコードを吐き出せるのでC言語でリモートワーク
されている方は割り振られた仕事が早く終わっても終わってないふりをして怠けることができる
「怠け者とはこうあるべきだ!」と言うとても大事な事を Nim は我々に教えてくれます
Nimと比較してRustはタイプ量が多い事により限りなく低い生産性と
C++のような高い難読性、超巨大なバイナリ生成性能を兼ね備えています
Nimはバージョン1.5.1でRustのボローチェッカーに似た「View types」が実装されれば、
GC無しのView typesで参照の有効性を検証することによってメモリ安全性を保証しつつ
限りなく抑え込まれたタイプ量で高速化したCのソースコードを吐き出せます
Nimソースコード ==nimコンパイラ==> Cソースコード ==Cコンパイラ==> バイナリ
なので、nimコンパイラが通った時点でメモリ安全性が担保されませんか?
Nimの実験的特徴 バージョン1.5.1
http://nim-lang.github.io/Nim/manual_experimental.html
第二プログラミング言語として Rust はオススメしません Nim をやるのです
https://wolfbash.hateblo.jp/entry/2017/07/30/193412
Nimは限りなく抑え込まれたタイプ量で高い生産性とPythonのような高い可読性を実現し
ているにもかかわらず、高速なCのソースコードを吐き出せるのでC言語でリモートワーク
されている方は割り振られた仕事が早く終わっても終わってないふりをして怠けることができる
「怠け者とはこうあるべきだ!」と言うとても大事な事を Nim は我々に教えてくれます
164デフォルトの名無しさん
2021/08/22(日) 18:45:30.76ID:gNvESTNy std::chrono::time_point::time_since_epoch()が返すエポックタイムの原点はいつですか?
もし具体的に規定されていないとしても、
ミリ秒パートが0であることは保証されていますか?
もし具体的に規定されていないとしても、
ミリ秒パートが0であることは保証されていますか?
165デフォルトの名無しさん
2021/08/22(日) 19:20:25.99ID:gNvESTNy ある意味自己解決しますたorz
https://cpprefjp.github.io/reference/chrono/system_clock.html
>C++17 以前の場合、system_clock のエポックがどの時間を指しているかは未規定だが、ほとんどの処理系は UNIX 時間(1970年1月1日0時0分0秒)を指している
>C++20 以降の場合、system_clock のエポックは必ず UNIX 時間(1970年1月1日0時0分0秒)を指す
しかし(特にC++17以前において)ミリ秒パートが0が保証されているのかどうかがはっきりしませんぬ、
https://cpprefjp.github.io/reference/chrono/system_clock.html
>C++17 以前の場合、system_clock のエポックがどの時間を指しているかは未規定だが、ほとんどの処理系は UNIX 時間(1970年1月1日0時0分0秒)を指している
>C++20 以降の場合、system_clock のエポックは必ず UNIX 時間(1970年1月1日0時0分0秒)を指す
しかし(特にC++17以前において)ミリ秒パートが0が保証されているのかどうかがはっきりしませんぬ、
166デフォルトの名無しさん
2021/08/22(日) 19:28:39.82ID:VeL/IzCV 生年月日をUNIX時間で表現できないオッサンはこのスレにどのくらいいるの?
167デフォルトの名無しさん
2021/08/22(日) 21:27:04.43ID:gNvESTNy 生年月日ならミリ秒まで言える必要は無いが
ログの時刻を極力正確に(WindowsのGetLocalTime()と同じ時刻で)記録したいのでつ∀`;)
ログの時刻を極力正確に(WindowsのGetLocalTime()と同じ時刻で)記録したいのでつ∀`;)
168デフォルトの名無しさん
2021/08/23(月) 04:13:32.16ID:F733kpwr 1970年以前生まれの50代以上のオッサン
169デフォルトの名無しさん
2021/08/23(月) 16:50:49.24ID:Rrt4HCug B.C.
A.D.
B.E.
A.D.
B.E.
170デフォルトの名無しさん
2021/08/23(月) 22:05:26.78ID:xWEF4I0D B.E.って何ですか
UCとSEとかRCとかじゃないの
UCとSEとかRCとかじゃないの
171デフォルトの名無しさん
2021/08/23(月) 22:52:48.51ID:xWEF4I0D ていうかsystem_clockはC++17以前からtime_tと相互変換できるのに(system_clock::from_time_t()、system_clock::to_time_t())、
エポックがどの時間を指しているかは未規定とかおかしくね↑?
エポックがどの時間を指しているかは未規定とかおかしくね↑?
172デフォルトの名無しさん
2021/08/23(月) 23:20:43.35ID:AuTnTHJo 別におかしくない
変換時にエポックの差の分ずらせばいいだけだろ
変換時にエポックの差の分ずらせばいいだけだろ
173デフォルトの名無しさん
2021/08/23(月) 23:31:13.03ID:sPTJEjpv そんなことよりなんでtime_tは符号なしなん?
64bit拡張するときに符号ありにしとけば166みたいな煽りを受けずにすんだのに
64bit拡張するときに符号ありにしとけば166みたいな煽りを受けずにすんだのに
174デフォルトの名無しさん
2021/08/24(火) 00:03:00.26ID:24MephMZ 符号なし使うのは総じてセンスないよね
175デフォルトの名無しさん
2021/08/24(火) 07:17:43.25ID:NEyNeI43 符号付き整数はwrap aroundしたときの挙動が処理系依存か何かだったはず……
ハードウェア例外を生じるやつがあるらしい
ハードウェア例外を生じるやつがあるらしい
176デフォルトの名無しさん
2021/08/24(火) 07:52:57.66ID:4Ohx7QuI177デフォルトの名無しさん
2021/08/24(火) 08:21:39.19ID:NErefsYh >>175
オーバーフローしたときにラップアラウンドさせる使い方が数値計算としては特殊だからねぇ。
オーバーフローしたときにラップアラウンドさせる使い方が数値計算としては特殊だからねぇ。
178デフォルトの名無しさん
2021/08/24(火) 15:27:02.85ID:WZMj7UxV >>167
ntp使え
ntp使え
179デフォルトの名無しさん
2021/08/24(火) 17:48:36.53ID:DexxKsi1180デフォルトの名無しさん
2021/08/24(火) 22:08:27.39ID:OPjw/0cg >>160
なるほど!ありがとうございます
なるほど!ありがとうございます
181167
2021/08/25(水) 00:50:22.37ID:MXKFEwSS182デフォルトの名無しさん
2021/08/25(水) 07:34:23.44ID:VHSVWUHA 30年も猶予があったのにな
183デフォルトの名無しさん
2021/08/25(水) 10:43:26.33ID:M5WZn8fZ ヒトラー「2036年、人類と云われる者は居なくなっている」
184デフォルトの名無しさん
2021/08/26(木) 16:49:35.75ID:WPRv8+9f 関東大震災だって100年も猶予があっても何もしない國ですし
185デフォルトの名無しさん
2021/08/26(木) 21:09:02.54ID:xnTAPql6 色々やってるぞ
庶民を助ける政策をやってないだけで
庶民を助ける政策をやってないだけで
186デフォルトの名無しさん
2021/08/27(金) 17:50:19.96ID:BFKMFKNN https://twitter.com/cpp_akira/status/1430779310885859330
最近はC++の発表資料を公開すると「Rustでいいじゃん」というコメントがたくさんつくのか…。
Rustへの言及とか一文字も書いてないのに。
普及活動だと思うけど、さすがに嫌がらせチックに見える。
https://twitter.com/moriyoshit/status/1430795812552863744
C++の件に限らず、旧来からある言語の長所短所を理解せずに、
表面的に新言語を推す発言を見ると、
果たして当人は新しい言語の方も理解できているのだろうか、
という疑念をもってしまう...
https://twitter.com/5chan_nel (5ch newer account)
最近はC++の発表資料を公開すると「Rustでいいじゃん」というコメントがたくさんつくのか…。
Rustへの言及とか一文字も書いてないのに。
普及活動だと思うけど、さすがに嫌がらせチックに見える。
https://twitter.com/moriyoshit/status/1430795812552863744
C++の件に限らず、旧来からある言語の長所短所を理解せずに、
表面的に新言語を推す発言を見ると、
果たして当人は新しい言語の方も理解できているのだろうか、
という疑念をもってしまう...
https://twitter.com/5chan_nel (5ch newer account)
187デフォルトの名無しさん
2021/08/27(金) 19:27:10.45ID:wbifwX7a >>186
Rustはいらんけど、制約を強化してコンパイルエラーを増やしたc++--は欲しいなぁ。
スライシングはすべてコンパイルエラー、ダウンキャストはメンバー関数とフレンド関数のみ使用可能
new deleteはメンバー関数とフレンド関数のみ使用可能(global operator new/deleteは廃止)
といったメモリ周りの制約強化は欲しい。
Rustはいらんけど、制約を強化してコンパイルエラーを増やしたc++--は欲しいなぁ。
スライシングはすべてコンパイルエラー、ダウンキャストはメンバー関数とフレンド関数のみ使用可能
new deleteはメンバー関数とフレンド関数のみ使用可能(global operator new/deleteは廃止)
といったメモリ周りの制約強化は欲しい。
188デフォルトの名無しさん
2021/08/28(土) 14:03:18.97ID:dCOU+NEa Rustを使って欲しいなら、そう言えばいいのに
人のすることを小馬鹿にするような態度で来るから敵と見られるんだよ
コミュ障にも程がある
人のすることを小馬鹿にするような態度で来るから敵と見られるんだよ
コミュ障にも程がある
189デフォルトの名無しさん
2021/08/28(土) 18:35:03.00ID:iJLWqDs6 インテルコンパイラの-fastには-staticが含まれてるけど、なんでスタティックリンクは速いの?
190デフォルトの名無しさん
2021/08/28(土) 18:49:01.71ID:Ovc44+68 ライブラリ使うときのロードの手間がなくなるからね
191はちみつ餃子 ◆8X2XSCHEME
2021/08/28(土) 23:41:54.59ID:V8MBAFoh スタティックリンクにすると最適化の情報が増えるというのもあると思う。
C/C++ では翻訳単位ごとにコンパイルしてからリンクするという工程を踏むから、
コンパイル時には他の翻訳単位の情報を知らず、他の翻訳単位の情報を利用した
最適化が出来なかった。
今では LTO が当たり前になって、リンク時にあらためてコンパイラに戻して最適化
させる仕組みがあるんだけど、バイナリ自体が別物だとその仕組みを使えない。
C/C++ では翻訳単位ごとにコンパイルしてからリンクするという工程を踏むから、
コンパイル時には他の翻訳単位の情報を知らず、他の翻訳単位の情報を利用した
最適化が出来なかった。
今では LTO が当たり前になって、リンク時にあらためてコンパイラに戻して最適化
させる仕組みがあるんだけど、バイナリ自体が別物だとその仕組みを使えない。
192デフォルトの名無しさん
2021/08/29(日) 13:13:16.45ID:h29TClHM std::threadってスタックサイズを指定できないってマジ?
仮想メモリを使えない組み込み用途だとどうすんじゃ……
仮想メモリを使えない組み込み用途だとどうすんじゃ……
193デフォルトの名無しさん
2021/08/29(日) 13:20:14.34ID:kSqJuAzn native_handle()関数で環境に応じたスレッドハンドル(linuxならpthread)を取得できるから、スタックサイズを設定するところだけ環境ごとに用意して切り替えればいいよ
194デフォルトの名無しさん
2021/08/29(日) 13:28:41.66ID:h29TClHM Windowsみたいにスレッドハンドルを生成したときはスタックサイズ指定済のとき、みたいな
組み込み用OSがあったらどうすんじゃ……
組み込み用OSがあったらどうすんじゃ……
195デフォルトの名無しさん
2021/08/29(日) 13:46:08.60ID:h29TClHM とわいえμITRONのcre_tsk()は
>cre_tsk でスタック領域を明示しない場合のタスクのスタックや割込みハンドラ/割込みサー
>ビスルーチンのスタックは、OS が用意する「スタック用メモリ」から割り当てられます。
>スタック用メモリのサイズを定義する STKMSZ の標準値は 0 で、この場合、main 関数が使って
>いる処理系のデフォルトのスタック領域(スタックセクション)を、OS のスタック用メモリとし
>ます。この場合の実際のスタックサイズは、リンカでのセクション設定とスタートアップルー
>チンでの初期スタックポインタ値で決まります。
みたいなことが書いてある
C/C++界隈はみんな頭おかしい……
>cre_tsk でスタック領域を明示しない場合のタスクのスタックや割込みハンドラ/割込みサー
>ビスルーチンのスタックは、OS が用意する「スタック用メモリ」から割り当てられます。
>スタック用メモリのサイズを定義する STKMSZ の標準値は 0 で、この場合、main 関数が使って
>いる処理系のデフォルトのスタック領域(スタックセクション)を、OS のスタック用メモリとし
>ます。この場合の実際のスタックサイズは、リンカでのセクション設定とスタートアップルー
>チンでの初期スタックポインタ値で決まります。
みたいなことが書いてある
C/C++界隈はみんな頭おかしい……
196デフォルトの名無しさん
2021/08/29(日) 13:55:46.65ID:h29TClHM ゴメ勘違いcre_tsk()(IDがOSが自動割り当てのやつはacre_tsk())は
第2引数に与えるT_CTSK構造体でタスクごとにスタックサイズを指定できたわ;;;
なんでstd::threadではできないんじゃ……
第2引数に与えるT_CTSK構造体でタスクごとにスタックサイズを指定できたわ;;;
なんでstd::threadではできないんじゃ……
197デフォルトの名無しさん
2021/08/29(日) 14:18:20.52ID:vSvS+48a コイツ前スレでも連レスしてたムーブ全く理解してないバカだよね?
NGしたいからトリップつけてください
NGしたいからトリップつけてください
198デフォルトの名無しさん
2021/08/29(日) 14:25:04.60ID:x8xWTwL3199デフォルトの名無しさん
2021/08/29(日) 14:30:52.45ID:AWkeWwKB >>196
ほんと組み込み屋は馬鹿だな
ほんと組み込み屋は馬鹿だな
200デフォルトの名無しさん
2021/08/29(日) 16:52:45.64ID:h29TClHM201デフォルトの名無しさん
2021/08/29(日) 16:54:56.72ID:h29TClHM もっとも天才の漏れは答えにたどりついたがな
ムーブコンの実装がコピコンの実装より効率的である保証が無い以上、
置き換え可能なケースであってもコピコンからムーブコンへの機械的置き換えは正当化されない
ムーブコンの実装がコピコンの実装より効率的である保証が無い以上、
置き換え可能なケースであってもコピコンからムーブコンへの機械的置き換えは正当化されない
202デフォルトの名無しさん
2021/08/30(月) 14:34:41.72ID:jKIf8Vzq 天才のインフレ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国「国連安保理の許可なしに日本攻撃可能」 Xで旧敵国条項に言及… ★5 [BFU★]
- 中国「国連安保理の許可なしに日本攻撃可能」 Xで旧敵国条項に言及… ★6 [BFU★]
- 【サッカー】U-17W杯 日本代表、無念のベスト8敗退… チャンスは多く作ったが仕留め切れず オーストリアに0-1で敗戦 [冬月記者★]
- 【千葉】コンビニに尿入りペットボトル並べた疑い、26歳男「むしゃくしゃして」…購入した客が飲もうとしたところ臭いに違和感 [ぐれ★]
- 中国官製報道「日本経済はもう持たない」にネット民ツッコミ「ニュースだけ見てたら日本はもう百回くらい爆発してる」 [1ゲットロボ★]
- 植田日銀総裁 「円安進行が物価高を起こしている」 ★4 [お断り★]
- 現役JKのお茶会スレ( ¨̮ )︎︎𖠚ᐝ157
- 自分、馬鹿なのでおっしゃる意味がわかりません
- WTO世界のコメ🌾価格は記録的な豊作により1年で35%下落(5キロで200円程度)と発表※日本は1年で3倍値上がり [709039863]
- 【ぺこ専🐰】なんG 兎田ぺこら突発配信実況スレ🏡【ホロライブ▶】
- 中国大使館、「高市早苗の正体」を完璧に絵にしてしまう。こら才能あるでぇ! [592058334]
- NHKニュースウオッチ9「日本側は対話にオープンな姿勢で安定した日中関係を築きたい考えなのに中国が意固地で糸口が見いだせない」 [904151406]
