スレを勃てるまでもない低俗なC/C++の質問はここでお願いします。
過去ログ
01 http://pc11.2ch.net/test/read.cgi/tech/1167476845/
02 http://pc11.2ch.net/test/read.cgi/tech/1178503366/
03 http://pc11.2ch.net/test/read.cgi/tech/1187521676/
04 http://pc11.2ch.net/test/read.cgi/tech/1221633708/
05 http://pc11.2ch.net/test/read.cgi/tech/1230516307/
06 http://pc11.2ch.net/test/read.cgi/tech/1231564903/
07 http://pc11.2ch.net/test/read.cgi/tech/1232983248/
08 http://pc12.2ch.net/test/read.cgi/tech/1235921779/
09 http://pc12.2ch.net/test/read.cgi/tech/1240022781/
10 http://pc12.2ch.net/test/read.cgi/tech/1242300936/
11 http://pc12.2ch.net/test/read.cgi/tech/1245059383/
12 http://pc12.2ch.net/test/read.cgi/tech/1248010352/
13 http://pc12.2ch.net/test/read.cgi/tech/1260842197/
14 http://pc12.2ch.net/test/read.cgi/tech/1269273471/
15 http://pc12.2ch.net/test/read.cgi/tech/1273368706/
16 http://hibari.2ch.net/test/read.cgi/tech/1279285647/
17 http://hibari.2ch.net/test/read.cgi/tech/1285115590/
18 http://hibari.2ch.net/test/read.cgi/tech/1291571263/
19 http://hibari.2ch.net/test/read.cgi/tech/1308106024/
20 http://toro.2ch.net/test/read.cgi/tech/1316013463/
21 http://toro.2ch.net/test/read.cgi/tech/1342285511/
22 http://peace.2ch.net/test/read.cgi/tech/1399911167/
23 http://peace.2ch.net/test/read.cgi/tech/1420379468/
24 http://echo.2ch.net/test/read.cgi/tech/1448685034/
探検
スレを勃てるまでもないC/C++の質問はここで 25 [隔離病棟]©2ch.net
2016/08/14(日) 00:04:05.53ID:z6U1tRVC
213デフォルトの名無しさん
2017/09/30(土) 06:58:10.31ID:SQk+Dlf1 >>212
callない変態コアもあるけどなw
callない変態コアもあるけどなw
214デフォルトの名無しさん
2017/09/30(土) 10:25:39.90ID:BYym2Kja C/C++ とあんまり関係ない話題に乗るのは気が引けるけど…
メモリへの読み書きを避けるために
戻り先アドレスをスタックに積まないCPUもあるよね。
PCの値をレジスタにコピーしてジャンプ。
リターン時にはレジスタからPCにコピー。
ARMのサブルーチン呼び出し命令が "BL" だからって変態あつかいするな。
メモリへの読み書きを避けるために
戻り先アドレスをスタックに積まないCPUもあるよね。
PCの値をレジスタにコピーしてジャンプ。
リターン時にはレジスタからPCにコピー。
ARMのサブルーチン呼び出し命令が "BL" だからって変態あつかいするな。
215デフォルトの名無しさん
2017/10/01(日) 06:44:43.98ID:wTXYROVe >>214
>戻り先アドレスをスタックに積まないCPUもあるよね。
RISC CPUだとだいたいそれだな
リンクレジスタというのが用意されててサブルーチンコールの戻り値がリンクレジスタに格納される
スタックに戻り値を積みたい場合は手動でスタックに積む
MIPS、ARM、POWER、SPARCなどみんなこれ
>戻り先アドレスをスタックに積まないCPUもあるよね。
RISC CPUだとだいたいそれだな
リンクレジスタというのが用意されててサブルーチンコールの戻り値がリンクレジスタに格納される
スタックに戻り値を積みたい場合は手動でスタックに積む
MIPS、ARM、POWER、SPARCなどみんなこれ
216214
2017/10/01(日) 07:54:30.40ID:TsPEHv68 214 に補足。またもC/C++と無関係ですまぬ。
投稿時には意識していなかったけど、
BL命令で「さぶ」ルーチンだから辻褄は合ってる、かも。
流石ARMさんは紳士の国イギリスの会社だなぁ。
投稿時には意識していなかったけど、
BL命令で「さぶ」ルーチンだから辻褄は合ってる、かも。
流石ARMさんは紳士の国イギリスの会社だなぁ。
217デフォルトの名無しさん
2017/10/01(日) 09:14:55.87ID:qGSPhC6b >>216
すまんどゆこと?
すまんどゆこと?
218デフォルトの名無しさん
2017/10/01(日) 10:08:25.18ID:9UECfosW うん。まったくわからん。興味ないけど
219デフォルトの名無しさん
2017/10/02(月) 19:28:33.83ID:ur7JCHdr おそらく、しゃぶるーちん って事でしょ
220デフォルトの名無しさん
2017/10/02(月) 19:30:14.39ID:oqL7c7am おおさぶっ!
221デフォルトの名無しさん
2017/10/04(水) 12:08:31.97ID:QGS2LkxJ デバックの為自分の昔のコードを読むと
難しくて理解するのに時間がかかったりして
己の衰えを自覚するよな
難しくて理解するのに時間がかかったりして
己の衰えを自覚するよな
222デフォルトの名無しさん
2017/10/04(水) 12:47:05.65ID:oXiXRVKi 数年前の自分は他人みたいなもんだしな
223デフォルトの名無しさん
2017/10/04(水) 17:28:18.58ID:N0mfbhbs コーディングスタイルが変わっちゃってたり、
当時は精通していたアルゴリズムを使わないでいるうちに忘れたり、
別の場所で散々書いた注釈だからと省略した場所を直すはめになったり。
当時は精通していたアルゴリズムを使わないでいるうちに忘れたり、
別の場所で散々書いた注釈だからと省略した場所を直すはめになったり。
224デフォルトの名無しさん
2017/10/05(木) 15:02:15.28ID:RyRWuj5i ソース中にコメントとか入れないの?
225デフォルトの名無しさん
2017/10/05(木) 15:26:29.53ID:v1JdYXKS 数年前のコメントは見ても理解できないからなw
226デフォルトの名無しさん
2017/10/06(金) 16:53:07.29ID:UJYLIi2n それは国語からやり直した方がいいのでは…
227デフォルトの名無しさん
2017/10/06(金) 17:36:15.61ID:fbkgiuQU じゃ昔のコード読めなくなったら、プログラミングの勉強からやり直しだなw
228デフォルトの名無しさん
2017/10/06(金) 17:47:23.98ID:5EA0jlqJ 当たり前だろ。
229デフォルトの名無しさん
2017/10/25(水) 12:32:07.75ID:RJdooZ2I C++11なしで以下のプログラムがコンパイルできて2が出力されるようにしたいです。
どうかけばよいのでしょうか。
https://wandbox.org/permlink/NK5dYKZtrEBXN012
どうかけばよいのでしょうか。
https://wandbox.org/permlink/NK5dYKZtrEBXN012
230デフォルトの名無しさん
2017/10/25(水) 13:35:04.89ID:juMZY67C231デフォルトの名無しさん
2017/10/25(水) 13:37:35.53ID:RJdooZ2I >>230
超ありがとうございます!(5時間悩んだ)
超ありがとうございます!(5時間悩んだ)
232デフォルトの名無しさん
2017/10/25(水) 13:42:13.44ID:U6sw7DMu233デフォルトの名無しさん
2017/10/25(水) 13:53:33.16ID:RJdooZ2I >>232
ありがとうございます!
boost::lambda::varの方はVCコンパイラでもビルドできました。
余談ですが、operator[]の代わりにstd::map<>::atを使えないか試してみたのですが
こちらは無理そうでした。
ありがとうございます!
boost::lambda::varの方はVCコンパイラでもビルドできました。
余談ですが、operator[]の代わりにstd::map<>::atを使えないか試してみたのですが
こちらは無理そうでした。
234デフォルトの名無しさん
2017/10/25(水) 21:59:33.61ID:U6sw7DMu > 余談ですが、operator[]の代わりにstd::map<>::atを使えないか試してみたのですが
> こちらは無理そうでした。
・そもそもmap::atがあるのはc++11以降
・しかもmap::atはキーが存在しないと例外を投げるから今回みたいな[]の代わりには使えない
・それでやるとしてもboost::lambdaではbindを使わないとできない
> こちらは無理そうでした。
・そもそもmap::atがあるのはc++11以降
・しかもmap::atはキーが存在しないと例外を投げるから今回みたいな[]の代わりには使えない
・それでやるとしてもboost::lambdaではbindを使わないとできない
235デフォルトの名無しさん
2017/10/25(水) 23:22:00.79ID:RJdooZ2I >>234
回答ありがとうございます。
ひそかに.atが使えないか調べていて
一日中やっても駄目だったので諦めたところでした。
自分の環境はVS2012でC++11が部分的に実装されている状況だったため
.atがないことに気づきませんでした。すみません。
bindを使う方法はboost::bindやboost::lambda::bind、boost::phoenix::bind
と、一通りやってみたのですが自分にはどうやってもコンパイル通りませんでした。
回答ありがとうございます。
ひそかに.atが使えないか調べていて
一日中やっても駄目だったので諦めたところでした。
自分の環境はVS2012でC++11が部分的に実装されている状況だったため
.atがないことに気づきませんでした。すみません。
bindを使う方法はboost::bindやboost::lambda::bind、boost::phoenix::bind
と、一通りやってみたのですが自分にはどうやってもコンパイル通りませんでした。
236デフォルトの名無しさん
2017/10/25(水) 23:56:46.90ID:U6sw7DMu237デフォルトの名無しさん
2017/10/26(木) 00:46:41.57ID:CxNeOOyi238デフォルトの名無しさん
2017/10/27(金) 04:44:05.29ID:dgw8O7sr 組み込み系ってC++よりもCを使うことが多いと思うが、C++を使うと問題ある?
ROM 256Kbyte、Ram 8K位の場合だと、何か注意することある?
ROM 256Kbyte、Ram 8K位の場合だと、何か注意することある?
239デフォルトの名無しさん
2017/10/27(金) 07:05:11.65ID:kl+AecdR C使うことなんてないわ
240デフォルトの名無しさん
2017/10/28(土) 00:18:19.01ID:VLfN62TL C すらためらうレベル
241デフォルトの名無しさん
2017/10/28(土) 08:50:31.24ID:5mHtwzGb 20年以上前はためらったが今はアセンブラなんてやってられんな
昔はハードに合わせて開発したが、今は開発に合わせてハード選べばいい
昔はハードに合わせて開発したが、今は開発に合わせてハード選べばいい
242デフォルトの名無しさん
2017/10/28(土) 12:37:02.52ID:siUcDApP つかC言語と言っても
直接アセンブラ・ニーモニックを埋め込める
インライン機能が用意されてる処理系あるし
直接アセンブラ・ニーモニックを埋め込める
インライン機能が用意されてる処理系あるし
243デフォルトの名無しさん
2017/10/28(土) 16:13:43.77ID:5T1YNIdw 普通C++だとRAMペースだろ。だから組み込みでRAMが8kとかでは使えないだろな。
244デフォルトの名無しさん
2017/11/20(月) 17:48:28.20ID:HOO1fHXA >>242
未だに半角カナ使う奴いたんだ
未だに半角カナ使う奴いたんだ
245デフォルトの名無しさん
2017/11/20(月) 23:16:04.54ID:ste5Kj49 そりゃISO-2022-JPならともかく、Shift_JISやUnicodeでは正当な文字ですからね。
246デフォルトの名無しさん
2017/11/21(火) 06:40:04.61ID:VCAIytbF 変換時の文字幅にまるで無頓着な人が増えた、という話を聞くね。
環境が全面的にプロポーショナルフォントになったことも関係あるかと。
コピーしてペーストして一部書き換え、て手順のせいで
単語中で「半角」「全角」が混在したり、それに気づかなかったり。
環境が全面的にプロポーショナルフォントになったことも関係あるかと。
コピーしてペーストして一部書き換え、て手順のせいで
単語中で「半角」「全角」が混在したり、それに気づかなかったり。
247デフォルトの名無しさん
2017/11/21(火) 07:02:38.37ID:f5CXuOxE 半角カナに敏感なのって40代、50代以上だよね
未だに2chやってる奴いたんだ
未だに2chやってる奴いたんだ
248デフォルトの名無しさん
2017/11/21(火) 07:59:10.55ID:CMMMtcpC 1月11日
みたいに一桁は全角2桁は半角ってのもあるな
みたいに一桁は全角2桁は半角ってのもあるな
249デフォルトの名無しさん
2017/11/30(木) 13:01:31.93ID:D3zqdlF5 OpenMPで#pragma omp sectionsの役目って何なんでしょうか?
#pragma omp parallelで並列領域を
#pragma omp sectionでスレッド処理(スレッド割当て)単位を
指定することは理解できました。
しかし#pragma omp sectionsが必要となる理由がわかりません。
なぜ必要なんでしょうか?
※
#pragma omp parallel sectionsって書けるみたいですが
まぁこれは本質ではないですよね?
#include <stdio.h>
int main(void)
{
#pragma omp parallel
{
#pragma omp sections // ←コンパイラに何を指示してる?
{
#pragma omp section
printf("Hello 1\n");
#pragma omp section
printf("Hello 2\n");
#pragma omp section
{
printf("Hello 3a\n");
printf("Hello 3b\n");
}
}
}
return 0;
}
#pragma omp parallelで並列領域を
#pragma omp sectionでスレッド処理(スレッド割当て)単位を
指定することは理解できました。
しかし#pragma omp sectionsが必要となる理由がわかりません。
なぜ必要なんでしょうか?
※
#pragma omp parallel sectionsって書けるみたいですが
まぁこれは本質ではないですよね?
#include <stdio.h>
int main(void)
{
#pragma omp parallel
{
#pragma omp sections // ←コンパイラに何を指示してる?
{
#pragma omp section
printf("Hello 1\n");
#pragma omp section
printf("Hello 2\n");
#pragma omp section
{
printf("Hello 3a\n");
printf("Hello 3b\n");
}
}
}
return 0;
}
250デフォルトの名無しさん
2017/11/30(木) 13:38:08.08ID:/IB/XhDr251デフォルトの名無しさん
2018/01/18(木) 22:17:06.28ID:fk/Xo3MV https://github.com/espressif/esp-idf/blob/master/examples/bluetooth/ble_spp_server/main/ble_spp_server_demo.c
の 169 行目からの記述ってどうなっているのか理解したいのですが、
どなたかヒントもらえないでしょうか?
「[SPP_IDX_SVC] = ...」 となっているのが分かりません。
の 169 行目からの記述ってどうなっているのか理解したいのですが、
どなたかヒントもらえないでしょうか?
「[SPP_IDX_SVC] = ...」 となっているのが分かりません。
252デフォルトの名無しさん
2018/01/18(木) 22:58:14.15ID:7tNMQ3qD >>251
C99 の「指示付きの初期化指定子」かな?
C99 の「指示付きの初期化指定子」かな?
253デフォルトの名無しさん
2018/01/18(木) 23:17:40.59ID:fk/Xo3MV >>252
ありがとうございます。理解できました。
ありがとうございます。理解できました。
254デフォルトの名無しさん
2018/01/19(金) 10:36:40.61ID:dM64lXT0 シングルトンにするのと、全部クラス変数、クラスメソッドで実装するのと
目的はあまり違わないような気がするんですけど、あえてシングルトンにする意味があれば
教えて頂けないでしょうか?
目的はあまり違わないような気がするんですけど、あえてシングルトンにする意味があれば
教えて頂けないでしょうか?
255デフォルトの名無しさん
2018/01/25(木) 15:00:52.20ID:uboI0CmN 質問の意味がわからないが、シングルトンというのはインスタンスを一つしか持たない
ということ。クラス変数のようにインスタンスがいくつも作れると誤って2つインスタンス
を作ってしまう可能性がある。そうすると本来とは違う変数にアクセスしてしまう恐れが
ある。これをさけるんが目的。
ということ。クラス変数のようにインスタンスがいくつも作れると誤って2つインスタンス
を作ってしまう可能性がある。そうすると本来とは違う変数にアクセスしてしまう恐れが
ある。これをさけるんが目的。
256デフォルトの名無しさん
2018/01/25(木) 15:45:13.06ID:O5EWej8a257デフォルトの名無しさん
2018/01/25(木) 16:16:27.35ID:6NNXd/EM 微妙に違うけど例えば自分の体重管理アプリを作るとする。「自分」は一人しかいないから、体重を格納する変数だかクラスは1つあればいい
家族の体重管理アプリなら、「家族」は複数だから体重の格納も複数になる
こうしたときに自分アプリはシングルトン設計、家族アプリはシングルトンでない設計と「呼んでるだけ」。元々みんなやってたことに専門用語っぽくネーミングしただけだよw
家族の体重管理アプリなら、「家族」は複数だから体重の格納も複数になる
こうしたときに自分アプリはシングルトン設計、家族アプリはシングルトンでない設計と「呼んでるだけ」。元々みんなやってたことに専門用語っぽくネーミングしただけだよw
258デフォルトの名無しさん
2018/01/25(木) 16:36:48.08ID:O5EWej8a >>257
それ、クラスがシングルトンじゃなくて、データが個人用(単一データ)か複数人用(配列/ディクショナリ)かって話だから、シングルトンとは違うような...
それ、クラスがシングルトンじゃなくて、データが個人用(単一データ)か複数人用(配列/ディクショナリ)かって話だから、シングルトンとは違うような...
259デフォルトの名無しさん
2018/01/25(木) 21:57:47.77ID:8MUKcewe 抽象メソッドにできるというのが一番の利点じゃないかな。
260デフォルトの名無しさん
2018/01/25(木) 22:18:47.51ID:9MCrLTCo 組み込み環境に C++ のコードを移植しようとしているんだけど、質問ってここでしていいのかな。
RAM の容量が厳しいので、 Flash にデータを持つように改造したいと思っている。
で、これは、C++ 的には定数でデータを持つだけで実現できるらしい。幸い組み込み環境ではリードオンリーでよい。
普段 PC 環境なら計算量の多いコンストラクタを経て初期化しているあるクラスのインスタンス群を、
PC 環境上で初期化して各フィールドの値をダンプしておいて、
組み込み環境では各フィールドが const になるようにクラスを改造したうえで
何かの方法でコンストラクタをスキップしてやりたい。これでRAMも計算量も減らせたらいい。
思いついた方法は、シリアライザというかコードジェネレーターを用意してソースコード上に定数群をたくさん定義して、
MyType i { cDataA, cDataB, ... }, j { cDataO, cDataP, ... }; のような記述ができるようにする、という感じのもの。
ほかによく使われている方法はある? あるいは、アドレスのキャストか何かでインスタンスの初期化を完了できる黒魔法っぽい方法もあったりする?
RAM の容量が厳しいので、 Flash にデータを持つように改造したいと思っている。
で、これは、C++ 的には定数でデータを持つだけで実現できるらしい。幸い組み込み環境ではリードオンリーでよい。
普段 PC 環境なら計算量の多いコンストラクタを経て初期化しているあるクラスのインスタンス群を、
PC 環境上で初期化して各フィールドの値をダンプしておいて、
組み込み環境では各フィールドが const になるようにクラスを改造したうえで
何かの方法でコンストラクタをスキップしてやりたい。これでRAMも計算量も減らせたらいい。
思いついた方法は、シリアライザというかコードジェネレーターを用意してソースコード上に定数群をたくさん定義して、
MyType i { cDataA, cDataB, ... }, j { cDataO, cDataP, ... }; のような記述ができるようにする、という感じのもの。
ほかによく使われている方法はある? あるいは、アドレスのキャストか何かでインスタンスの初期化を完了できる黒魔法っぽい方法もあったりする?
261デフォルトの名無しさん
2018/01/25(木) 22:22:11.16ID:9MCrLTCo って隔離スレなのか。まあ過去レス見た限りでは答えてくれているようなので… よろしくお願いします。
262片山博文MZ ◆T6xkBnTXz7B0
2018/01/25(木) 22:42:32.30ID:4TKaBAL2 static char buf[sizeof(MyData)] = { ... };
MyData& data = reinterpret_cast<MyData&>(buf);
MyData& data = reinterpret_cast<MyData&>(buf);
263片山博文MZ ◆T6xkBnTXz7B0
2018/01/25(木) 22:43:32.46ID:4TKaBAL2 static char buf[sizeof(MyData)] = { ... };
MyData& data = *reinterpret_cast<MyData*>(buf);
MyData& data = *reinterpret_cast<MyData*>(buf);
264デフォルトの名無しさん
2018/01/25(木) 23:23:09.67ID:9MCrLTCo ありがとう
{ ... } の部分をプログラムからうまく生成する方法はなにかあるだろうか?
{ ... } の部分をプログラムからうまく生成する方法はなにかあるだろうか?
265デフォルトの名無しさん
2018/01/25(木) 23:28:29.97ID:9MCrLTCo キャストで済んでいるのはとてもよさそうだけど、
PC 環境でのメモリ上での表現と組み込み環境でのメモリ上の表現は完全に一致するのだろうか。
アライメントというものがあるんだったような
PC 環境でのメモリ上での表現と組み込み環境でのメモリ上の表現は完全に一致するのだろうか。
アライメントというものがあるんだったような
266片山博文MZ ◆T6xkBnTXz7B0
2018/01/25(木) 23:29:12.87ID:4TKaBAL2 unsigned char *pb = reinterpret_cast<unsigned char *>(&data);
for (size_t i = 0; i < len; ++i)
printf("%02X, ", pb[i]);
for (size_t i = 0; i < len; ++i)
printf("%02X, ", pb[i]);
267片山博文MZ ◆T6xkBnTXz7B0
2018/01/25(木) 23:32:26.13ID:4TKaBAL2 char *pch = reinterpret_cast<char*>(&data);
for (size_t i = 0; i < len; ++i)
printf("%02X, ", (*pch & 0xFF));
for (size_t i = 0; i < len; ++i)
printf("%02X, ", (*pch & 0xFF));
268片山博文MZ ◆T6xkBnTXz7B0
2018/01/25(木) 23:33:19.76ID:4TKaBAL2 pch[i] & 0xFF
269デフォルトの名無しさん
2018/01/25(木) 23:46:29.85ID:9MCrLTCo まそうですよね。再びありがとう。
アライメントについては各環境で実験して (offsetof(MyData, ...) が一致するか) いけそうなら試してみる。
エンディアンとアライメント(バイト境界)が一致してればきっと大丈夫だよね
アライメントについては各環境で実験して (offsetof(MyData, ...) が一致するか) いけそうなら試してみる。
エンディアンとアライメント(バイト境界)が一致してればきっと大丈夫だよね
270デフォルトの名無しさん
2018/01/25(木) 23:59:52.47ID:9MCrLTCo 助かる、これでとんかつ定食でも食べてくれ っ [ぺいぱる]
271デフォルトの名無しさん
2018/01/27(土) 10:10:18.54ID:EckHRazm floatを実数Xで初期化する際にfloatではその数を正確に表現できない場合、少し大きいか小さいかでXに近い値になると思います
そういう正確には表せない場合に、どうすれば初期化される値がXを下回らない最小の値となるようにできますか?
たとえば√3(1.7320508075688...)で初期化しようと float x=1.7320508075688f; と書くと
xの値が1.732050776となり√3より小さくなってしまうので、そういうのを避けたいです
そういう正確には表せない場合に、どうすれば初期化される値がXを下回らない最小の値となるようにできますか?
たとえば√3(1.7320508075688...)で初期化しようと float x=1.7320508075688f; と書くと
xの値が1.732050776となり√3より小さくなってしまうので、そういうのを避けたいです
272デフォルトの名無しさん
2018/01/27(土) 10:43:57.22ID:BU9rpSw9 精度上げたいならdouble使えば?
273デフォルトの名無しさん
2018/01/27(土) 11:40:33.40ID:2gTl4aTp >>271
C/C++の標準機能では無理な気がする
というか、無理関数や超越関数でそういう丸め方が出来るアルゴリズムってあるのかな?
高精度で求めてから丸めるしかないような気がするが
運が悪いとそれでも下回らない最小にはならない
C/C++の標準機能では無理な気がする
というか、無理関数や超越関数でそういう丸め方が出来るアルゴリズムってあるのかな?
高精度で求めてから丸めるしかないような気がするが
運が悪いとそれでも下回らない最小にはならない
274デフォルトの名無しさん
2018/01/27(土) 11:42:00.24ID:2gTl4aTp 定数何個かなら事前に計算していれておけば良いけど
275デフォルトの名無しさん
2018/01/27(土) 11:52:04.54ID:BU9rpSw9 そういう意味ではPython最強だな
276デフォルトの名無しさん
2018/01/27(土) 11:53:27.06ID:EckHRazm 言葉足らずでしたが、標準やその他ライブラリの数学関数の結果として求めたいのではなく
数値リテラルとして初期化する場合に限ってもらっても結構です
閾値として使うのに、切り上げか切り下げかわかっていないと間違った結果が出て後で困ることになります
たとえば単純に閾値未満と以上のデータを別の用紙に印刷するプログラムを以下のように書いた場合
double result = calculation();
double threshold = √3
if (result < threshold) fail_list.add(result); else pass_list.add(result);`
print_to_paper(fail_list);
print_to_paper(pass_list);
計算精度に限界がある以上(閾値付近での)比較での細かい誤差は気にするなという人もいるでしょうが
それ以上に実際に紙面に載る値が要件に反する事態になってしまうと後々困ったことになるのです...
>>274
次善の策でそのことも考えますが、要件が変わった場合などに脆さが残りませんか?
数値リテラルとして初期化する場合に限ってもらっても結構です
閾値として使うのに、切り上げか切り下げかわかっていないと間違った結果が出て後で困ることになります
たとえば単純に閾値未満と以上のデータを別の用紙に印刷するプログラムを以下のように書いた場合
double result = calculation();
double threshold = √3
if (result < threshold) fail_list.add(result); else pass_list.add(result);`
print_to_paper(fail_list);
print_to_paper(pass_list);
計算精度に限界がある以上(閾値付近での)比較での細かい誤差は気にするなという人もいるでしょうが
それ以上に実際に紙面に載る値が要件に反する事態になってしまうと後々困ったことになるのです...
>>274
次善の策でそのことも考えますが、要件が変わった場合などに脆さが残りませんか?
277デフォルトの名無しさん
2018/01/27(土) 12:07:53.57ID:BU9rpSw9 閾値も比較対象も同じ精度なら不都合は起きない気がするけど
不都合が起きるとすると、計算過程での誤差が許容範囲内かどうかってことじゃないの?
どっちにしても無理数はどっが切らないといけないわけだし、扱える有効桁数の範囲で計算するしかない
ちなみに、
float x=1.7320508075688f;
は、代入の時点でfloatの有効桁数を超えてるから表示した時の結果と異なるのは当たり前
doubleだと有効桁数が15〜16桁程度ある。それでも不足なら、long doubleを使うとか、decimal型
を扱う外部ライブラリを使うとか
不都合が起きるとすると、計算過程での誤差が許容範囲内かどうかってことじゃないの?
どっちにしても無理数はどっが切らないといけないわけだし、扱える有効桁数の範囲で計算するしかない
ちなみに、
float x=1.7320508075688f;
は、代入の時点でfloatの有効桁数を超えてるから表示した時の結果と異なるのは当たり前
doubleだと有効桁数が15〜16桁程度ある。それでも不足なら、long doubleを使うとか、decimal型
を扱う外部ライブラリを使うとか
278デフォルトの名無しさん
2018/01/27(土) 12:23:14.67ID:x9sgfrz+ (v-1ULP) <= X < v となるvを選びたいということかね?
その方法は知らんが、常に (v-1ULP) <= X < v か (v-1ULP) < X <= v のどちらかなわけだから
別に問題ないんでは?X≒vを上に組み入れるか下に組み入れるか決めりゃいいだけで。
その方法は知らんが、常に (v-1ULP) <= X < v か (v-1ULP) < X <= v のどちらかなわけだから
別に問題ないんでは?X≒vを上に組み入れるか下に組み入れるか決めりゃいいだけで。
279デフォルトの名無しさん
2018/01/27(土) 14:20:38.41ID:EckHRazm 説明のために>>276のプログラムをfloatに戻したものを考えると
(result < 1.732050776f)という比較ではresultが1.732050776fだった場合に
1.732050776は√3未満であるのに合格リストの方に載ってしまうということです
計算上の誤差があるとかdoubleの有効桁数が多いとかでなく
プログラム内の数値の取り扱いに関係なく、実際の紙の上では間違いが起こってほしくないということです
うまく説明できてるかどうかわかりませんが、実行時どの程度誤差を許容できるかは問題ではないんです
結果を見せた時に、どうしてこの値がこっちのリストに載っているわけ? 直しておいてくれる?
と言われれば、どうせ境界値付近の値なんてどちらのリストに載っていようと計算誤差もあるしいずれにしても正確とは言えないんですよ
では通じないんです...
≒をどちらに組み込むかを決めておくというのも、結局は事前に求めておく>>274の手法と同じ手間がかかりませんか
要件の数値(実数)が変われば、切り上げか切り下げのどちらであるかも変わってしまいますから
どちらになっているかを確かめなくてはいけないですよね
(result < 1.732050776f)という比較ではresultが1.732050776fだった場合に
1.732050776は√3未満であるのに合格リストの方に載ってしまうということです
計算上の誤差があるとかdoubleの有効桁数が多いとかでなく
プログラム内の数値の取り扱いに関係なく、実際の紙の上では間違いが起こってほしくないということです
うまく説明できてるかどうかわかりませんが、実行時どの程度誤差を許容できるかは問題ではないんです
結果を見せた時に、どうしてこの値がこっちのリストに載っているわけ? 直しておいてくれる?
と言われれば、どうせ境界値付近の値なんてどちらのリストに載っていようと計算誤差もあるしいずれにしても正確とは言えないんですよ
では通じないんです...
≒をどちらに組み込むかを決めておくというのも、結局は事前に求めておく>>274の手法と同じ手間がかかりませんか
要件の数値(実数)が変われば、切り上げか切り下げのどちらであるかも変わってしまいますから
どちらになっているかを確かめなくてはいけないですよね
280デフォルトの名無しさん
2018/01/27(土) 14:34:58.54ID:BU9rpSw9 そもそも、 1.732050776f と言う書き方が矛盾してでしょ
末尾にfをつけてるから、floatに変換してるわけだけど、1.732050776 はfloatの有効桁数を超えた表現だからこの比較自体がおかしい
1.732050776 と比較したかったらdoubleで計算すればいいし、もっと大きな有効桁数を求めるなら、long doubleなり、decimal型を扱えるライブラリでも使えばいい
末尾にfをつけてるから、floatに変換してるわけだけど、1.732050776 はfloatの有効桁数を超えた表現だからこの比較自体がおかしい
1.732050776 と比較したかったらdoubleで計算すればいいし、もっと大きな有効桁数を求めるなら、long doubleなり、decimal型を扱えるライブラリでも使えばいい
281デフォルトの名無しさん
2018/01/27(土) 14:55:39.92ID:EckHRazm 1.732050776と比較したいのではなく√3です(√3という数も説明の便宜上です念のため)
ですからdouble型でも√3が表現できないのは変わらない以上は
floatをdoubleにしても問題の起こりやすさが減るだけで起こることに変わりないと思います
doubleを使うなら1.7320508075688...よりも多くの桁数を書くことになるというだけです(20桁以上?)...
私の場合有効桁数そのものが問題なのではなく、切り上げか切り下げを指定したいということです
あるいはどちらが行われているかがわかればそれで問題ありません(と思います)
加えるとほかの工程に渡す必要があるためdecimal等をサポートするライブラリの使用は非常に厳しいです
ですからdouble型でも√3が表現できないのは変わらない以上は
floatをdoubleにしても問題の起こりやすさが減るだけで起こることに変わりないと思います
doubleを使うなら1.7320508075688...よりも多くの桁数を書くことになるというだけです(20桁以上?)...
私の場合有効桁数そのものが問題なのではなく、切り上げか切り下げを指定したいということです
あるいはどちらが行われているかがわかればそれで問題ありません(と思います)
加えるとほかの工程に渡す必要があるためdecimal等をサポートするライブラリの使用は非常に厳しいです
282片山博文MZ ◆T6xkBnTXz7B0
2018/01/27(土) 15:09:28.15ID:TUhH5TnV 小さかったら、FLT_MIN / 2を繰り返し足せばいいんとちゃう?
283デフォルトの名無しさん
2018/01/27(土) 15:16:35.83ID:x9sgfrz+ >私の場合有効桁数そのものが問題なのではなく、切り上げか切り下げを指定したいということです
それならその√3を求める関数の仕様に当たるべきでは。
標準の数学関数だと、丸め方式以前に1ULPの誤差も保証されているとは限らない。
それならその√3を求める関数の仕様に当たるべきでは。
標準の数学関数だと、丸め方式以前に1ULPの誤差も保証されているとは限らない。
284デフォルトの名無しさん
2018/01/27(土) 15:18:36.43ID:BU9rpSw9 >>281
√3との比較対象となる計算結果も、floatなりdoubleなりを使う計算過程で桁落ちは発生するでしょ? そっちは問題ないの?
閾値となる√3の桁落ちだけが問題?
なんにしろ、√3みたいな無理数を扱う場合は、有効桁数何桁、少数点以下何桁まで考慮するという前提がないと、それを扱う型の精度も決められないし、それがデータ設計者の役目だと思うけど
√3との比較対象となる計算結果も、floatなりdoubleなりを使う計算過程で桁落ちは発生するでしょ? そっちは問題ないの?
閾値となる√3の桁落ちだけが問題?
なんにしろ、√3みたいな無理数を扱う場合は、有効桁数何桁、少数点以下何桁まで考慮するという前提がないと、それを扱う型の精度も決められないし、それがデータ設計者の役目だと思うけど
285片山博文MZ ◆T6xkBnTXz7B0
2018/01/27(土) 15:21:29.73ID:TUhH5TnV ルート3に相当する数値を2乗して、3以上になればいいんだろ?
286デフォルトの名無しさん
2018/01/27(土) 15:28:05.15ID:BU9rpSw9 >>285
√3と言うのは例として上げただけで平方根とは限らないみたいだよ
√3と言うのは例として上げただけで平方根とは限らないみたいだよ
287片山博文MZ ◆T6xkBnTXz7B0
2018/01/27(土) 15:56:37.17ID:TUhH5TnV 逆算して、不等式を満たすかチェックすれば?
288デフォルトの名無しさん
2018/01/27(土) 16:35:32.82ID:2gTl4aTp289デフォルトの名無しさん
2018/01/27(土) 16:37:26.51ID:2gTl4aTp >>287
数学や数値計算の素人はだまってなさい
数学や数値計算の素人はだまってなさい
290デフォルトの名無しさん
2018/01/27(土) 16:54:03.59ID:EckHRazm >>288
元データは文字列で、最大で有効数字8桁くらいの10進数の小数点数です
それを単にstrtofで読みこんで、計算過程もずっとfloatです
ですけど読み込み時の誤差も含めて計算誤差は特に問題にしなくてもかまいません
それこそ計算誤差があるから仕方ないで押し通すこともできると思います
ですが、計算結果を2つのグループに分ける際に、実数の閾値に対して忠実でなければならないということです
>>284
閾値も計算の精度も32ビットのfloatで問題ないです
なので閾値となるfloat値を事前計算すれば、とりあえずは済みます
(ですが事後の変更に備えて、安全な方策がないものかと思い始めたわけです)
>>283
閾値は実行時に関数を呼び出して計算する必要はありません
単に計算機で求めた桁の多い数字を使って意図通りにfloatを初期化できれば問題は解決です
元データは文字列で、最大で有効数字8桁くらいの10進数の小数点数です
それを単にstrtofで読みこんで、計算過程もずっとfloatです
ですけど読み込み時の誤差も含めて計算誤差は特に問題にしなくてもかまいません
それこそ計算誤差があるから仕方ないで押し通すこともできると思います
ですが、計算結果を2つのグループに分ける際に、実数の閾値に対して忠実でなければならないということです
>>284
閾値も計算の精度も32ビットのfloatで問題ないです
なので閾値となるfloat値を事前計算すれば、とりあえずは済みます
(ですが事後の変更に備えて、安全な方策がないものかと思い始めたわけです)
>>283
閾値は実行時に関数を呼び出して計算する必要はありません
単に計算機で求めた桁の多い数字を使って意図通りにfloatを初期化できれば問題は解決です
291デフォルトの名無しさん
2018/01/27(土) 17:02:29.66ID:BU9rpSw9292デフォルトの名無しさん
2018/01/27(土) 17:16:55.11ID:RR6n96sQ >>289
無理数を定数値とする方法は無いから片山の意見は一理ある
無理数を定数値とする方法は無いから片山の意見は一理ある
293デフォルトの名無しさん
2018/01/27(土) 17:29:56.29ID:RraDQJG1 使ってる環境のfloatのビット表現を確認して、それで誤差なく表現できる閾値以下の最大の数値を求めて、それを定数として閾値にすればいいんでないの?
294デフォルトの名無しさん
2018/01/27(土) 17:33:27.63ID:2gTl4aTp 元の10進数の文字列に対して、
これを下回らない最小のfloatの値
これを上回らない最大のfloatの値
を求めれば良いの?
仕様をはっきりして
これを下回らない最小のfloatの値
これを上回らない最大のfloatの値
を求めれば良いの?
仕様をはっきりして
295デフォルトの名無しさん
2018/01/27(土) 17:45:09.91ID:2gTl4aTp floatの値と10進数文字列の大小比較が出来れば良い?
296デフォルトの名無しさん
2018/01/27(土) 17:48:38.55ID:2gTl4aTp √3やsin(1+√2)などの数式が示す値とfloatの大小比較?
297デフォルトの名無しさん
2018/01/27(土) 18:07:06.21ID:2gTl4aTp 数式って言うと誤解を与えるのかな?
10進数表記可能な数値
数学的に定義可能な実数
それ以外
閾値はどれ?
10進数表記可能な数値
数学的に定義可能な実数
それ以外
閾値はどれ?
298デフォルトの名無しさん
2018/01/27(土) 18:28:25.65ID:EckHRazm299デフォルトの名無しさん
2018/01/27(土) 19:52:43.68ID:BU9rpSw9 >>298
floatの有効桁数は7桁だから
float x=1.7320508075688;
とするんじゃなくて、
float x = 1.732051;
とするしかないでしょ
それが嫌なら、もっと精度の高いdoubleを使うようにして
double x = 1.7320508075688;
として、これを閾値とすればいい
そして、そのことを予め顧客に確認しておけばいい
扱うデータの桁数を予め決めておくことは設計時の重要事項でしょ
何も問題は無いと思うけど、何を悩んでるのか分からない。
もし無理数を無理数のまま無制限の精度で扱いたいなら、もうそういうライブラリを使うしかない
あるのか知らんけど
floatの有効桁数は7桁だから
float x=1.7320508075688;
とするんじゃなくて、
float x = 1.732051;
とするしかないでしょ
それが嫌なら、もっと精度の高いdoubleを使うようにして
double x = 1.7320508075688;
として、これを閾値とすればいい
そして、そのことを予め顧客に確認しておけばいい
扱うデータの桁数を予め決めておくことは設計時の重要事項でしょ
何も問題は無いと思うけど、何を悩んでるのか分からない。
もし無理数を無理数のまま無制限の精度で扱いたいなら、もうそういうライブラリを使うしかない
あるのか知らんけど
300デフォルトの名無しさん
2018/01/27(土) 20:13:29.55ID:EckHRazm >>299
スレを後から読んだ人に混乱を広げないために念のために書いておきますが、無理数を無理数として扱う必要はありません
ついでに、計算の精度を高めたいわけでもありません
あらかじめ閾値になるfloat値を求めておけば済むというのはわかりますその通りです
早い段階で気づいていました
ですがそれだけだと変更に弱いですよね
実際に書き換えるのが三か月後の自分か赤の他人になるのかはわかりませんが
だれかの手作業で閾値のfloat値を再計算するより信頼性のある方法があれば、ということで質問を始めました
ただ5レス目しないうちから簡単には済まないだろうなとも思っていました
スレを後から読んだ人に混乱を広げないために念のために書いておきますが、無理数を無理数として扱う必要はありません
ついでに、計算の精度を高めたいわけでもありません
あらかじめ閾値になるfloat値を求めておけば済むというのはわかりますその通りです
早い段階で気づいていました
ですがそれだけだと変更に弱いですよね
実際に書き換えるのが三か月後の自分か赤の他人になるのかはわかりませんが
だれかの手作業で閾値のfloat値を再計算するより信頼性のある方法があれば、ということで質問を始めました
ただ5レス目しないうちから簡単には済まないだろうなとも思っていました
301デフォルトの名無しさん
2018/01/27(土) 20:14:24.46ID:tkKoYj6x だなー
float基準なんだからdoubleでもっときゃいい。これがdoubleでーってなってたら悩むがw
float基準なんだからdoubleでもっときゃいい。これがdoubleでーってなってたら悩むがw
302デフォルトの名無しさん
2018/01/27(土) 20:42:46.77ID:EckHRazm doubleで持つ考えもわかります
ただfloatの丸め方がわかれば(あるいは制御できれば)問題は解決(>>301が悩むdoubleが必要な時にも拡張できる方法)だと思うのですが...
その方法が簡単でないということが分かったことは収穫...?でした
ただfloatの丸め方がわかれば(あるいは制御できれば)問題は解決(>>301が悩むdoubleが必要な時にも拡張できる方法)だと思うのですが...
その方法が簡単でないということが分かったことは収穫...?でした
303デフォルトの名無しさん
2018/01/27(土) 20:56:05.82ID:tkKoYj6x floatの丸め方が分かったら、それを求めるために(floatが32ビット型だとしたら最低でも)33ビットで計算しないといけなくなるわけでしょ?
つまりは33ビット型を新たに作ることになるわけで・・・だったら最初からある64ビット型を使たほうがってw
つまりは33ビット型を新たに作ることになるわけで・・・だったら最初からある64ビット型を使たほうがってw
304デフォルトの名無しさん
2018/01/27(土) 21:11:10.44ID:EckHRazm 実行時の精度ではなく、コンパイラがソースコード中の数値文字列をどう機械語(float型)に翻訳するかということではないですか?
ソースコード上では20桁もある数値文字列を実際にコンパイラが適切な32ビット型に変換しているので
33ビット型とかいう変な方を導入するまでもないと思うのですが
実行時に実数がどうまとめられたかを知りたいわけじゃないんです
初期化式の右辺に来る数値リテラルをコンパイラ内部で何ビットで処理しようが関係ありませんよね?
実行時にfloatやdouble値の実体を持つ閾値が、切り下げられたか切り上げられたかを判断するのであれば
33ビットの浮動小数点数型が必要になるでしょうけども...
ソースコード上では20桁もある数値文字列を実際にコンパイラが適切な32ビット型に変換しているので
33ビット型とかいう変な方を導入するまでもないと思うのですが
実行時に実数がどうまとめられたかを知りたいわけじゃないんです
初期化式の右辺に来る数値リテラルをコンパイラ内部で何ビットで処理しようが関係ありませんよね?
実行時にfloatやdouble値の実体を持つ閾値が、切り下げられたか切り上げられたかを判断するのであれば
33ビットの浮動小数点数型が必要になるでしょうけども...
305デフォルトの名無しさん
2018/01/27(土) 21:11:56.87ID:BU9rpSw9 >>302
floatの丸め方が知りたかったの?
round、floor, ceil とかあるじゃん
例えば、double型の小数部第6位で切り捨ててfloat型へ代入したければ、ありがちなやり方としては
double d = 1.7320508075688;
float f = floor(d * 100000.0) / 100000.0;
んな感じで
floatの丸め方が知りたかったの?
round、floor, ceil とかあるじゃん
例えば、double型の小数部第6位で切り捨ててfloat型へ代入したければ、ありがちなやり方としては
double d = 1.7320508075688;
float f = floor(d * 100000.0) / 100000.0;
んな感じで
306デフォルトの名無しさん
2018/01/27(土) 22:03:45.49ID:EckHRazm 実行時の変数の丸め方ではありませんよ
丸めという言葉はよくなかったかもしれませんすみませんでした
今はfloatの初期化式を書いた時にコンパイラがどう振舞うかということの意味です
それと前に10進数表記可能な数と書いたのは、単にソースコード上で
そう書き表すことのできる(√とかsinとかその他を使わない)数という意味で
10進数の数のある桁で四捨五入するという意味ではありませんでした
丸めという言葉もULPに対するものとして言ってるつもりでした
>>278で出てるのでこちらから出しませんでしたが言葉足らずでした重ねてすみまんせん
元々は1.7777777fupとか1.7777777fdownとか(桁数や表記法はともかく)
お手軽に意図通りの値に初期化できないものかと考えて質問しました
そうすれば、実数から浮動小数点数への翻訳方法(コンパイラによる切り上げ切り下げ)にかかわらず、
ソースコード上に記述されている通りの、数学的な大小関係を損なわないプログラムが書けると考えたからでした
次にいつここへ来るかわからないので今日の私の質問はこれで終わりにします
返答してくれた人たちは本当にありがとうございました
丸めという言葉はよくなかったかもしれませんすみませんでした
今はfloatの初期化式を書いた時にコンパイラがどう振舞うかということの意味です
それと前に10進数表記可能な数と書いたのは、単にソースコード上で
そう書き表すことのできる(√とかsinとかその他を使わない)数という意味で
10進数の数のある桁で四捨五入するという意味ではありませんでした
丸めという言葉もULPに対するものとして言ってるつもりでした
>>278で出てるのでこちらから出しませんでしたが言葉足らずでした重ねてすみまんせん
元々は1.7777777fupとか1.7777777fdownとか(桁数や表記法はともかく)
お手軽に意図通りの値に初期化できないものかと考えて質問しました
そうすれば、実数から浮動小数点数への翻訳方法(コンパイラによる切り上げ切り下げ)にかかわらず、
ソースコード上に記述されている通りの、数学的な大小関係を損なわないプログラムが書けると考えたからでした
次にいつここへ来るかわからないので今日の私の質問はこれで終わりにします
返答してくれた人たちは本当にありがとうございました
307デフォルトの名無しさん
2018/01/28(日) 01:49:55.74ID:x3ZlVnQ6 2進数の小数リテラルの記述が出来るようになるんじゃなかった?
なんで今まで出来なかったのかが不思議だけど
それで満足なのか?
小数のリテラルの、コンパイル時の文字列から値への変換は
普通はその文字列が表す値に一番近い値になる
丸め方を自分で決めたければ、文字列から数値に変換するconstexpr関数を作れば良い
なんで今まで出来なかったのかが不思議だけど
それで満足なのか?
小数のリテラルの、コンパイル時の文字列から値への変換は
普通はその文字列が表す値に一番近い値になる
丸め方を自分で決めたければ、文字列から数値に変換するconstexpr関数を作れば良い
308デフォルトの名無しさん
2018/01/28(日) 10:42:15.33ID:YQxX9lfa 2進で書いたってなんの解決にもならんよwww
リテラルのみだとしても結局はdouble分の計算が必要でしょ。計算するのがコンパイル前でも構わなくなるってだけ
リテラルのみだとしても結局はdouble分の計算が必要でしょ。計算するのがコンパイル前でも構わなくなるってだけ
309デフォルトの名無しさん
2018/01/28(日) 11:03:46.96ID:Y4YkWHjI 二進できっちり仮数部23bitで書けばいいだろう
それなら1ULP未満切り捨てになる
それなら1ULP未満切り捨てになる
310デフォルトの名無しさん
2018/01/28(日) 11:14:12.99ID:YQxX9lfa やりたいことは、その切り捨てがあるなら切り上げたいってことでしょ
だから切り捨てがあるかないかを事前に計算する必要ある
だから切り捨てがあるかないかを事前に計算する必要ある
311デフォルトの名無しさん
2018/01/28(日) 11:31:33.17ID:Y4YkWHjI312デフォルトの名無しさん
2018/01/28(日) 11:51:46.98ID:YQxX9lfa > floatを実数Xで初期化する際にfloatではその数を正確に表現できない場合、少し大きいか小さいかでXに近い値になると思います
> そういう正確には表せない場合に、どうすれば初期化される値がXを下回らない最小の値となるようにできますか?
これを読んだらそうなる。特定したらこれが解決するでしょ。その解決のために計算が必要になる
> そういう正確には表せない場合に、どうすれば初期化される値がXを下回らない最小の値となるようにできますか?
これを読んだらそうなる。特定したらこれが解決するでしょ。その解決のために計算が必要になる
313デフォルトの名無しさん
2018/01/28(日) 12:11:57.99ID:Y4YkWHjI そこしか読まないからそうなる
その後のレスでどちらでもよいと補足しているだろう
その後のレスでどちらでもよいと補足しているだろう
レスを投稿する
ニュース
- 中国側が首相答弁の撤回要求、日本側拒否 [夜のけいちゃん★]
- 債券・円・株「トリプル安」に…長期金利1.755%まで上昇、円は対ユーロで史上最安値 [蚤の市★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★5 [ぐれ★]
- 映画「鬼滅の刃」の興行収入急減、日本行き航空券大量キャンセル…中国メディア報道 [蚤の市★]
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 「タワマン天国」に飛びつく若者…SNSに転がる「成功体験」に続けるのか 湾岸エリアの業者が語った現実 [蚤の市★]
- 【正論】玉木雄一郎「高市さんの答弁は米軍が攻撃を受けた場合を前提としており、撤回するのは難しい」特定野党を完全論破 [519511584]
- タイで中国人観光客が激減でもタイ人は大喜び、タイの人はネトウヨだった [605029151]
- フランス「G7に習近平主席を呼びたい」ドイツ「良い考えだ」 高市さん...? [237216734]
- 麻生太郎氏、高市政権と距離を置きはじめる(´・ω・`) [399259198]
- 自閉症が「んなっしょい」と連呼するお🏡
- 【悲報】中国営業に熱心な日本人タレントたち、中国のイベントが続々と中止に… まだ予定中のアイドルとか歌手とかたくさんいるけど [452836546]
