スレを勃てるまでもない低俗な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
2016/08/17(水) 13:13:38.39ID:rz4OYI8a
関数にstaticをつける必要がある場合その関数を仮想関数みたいに使うにはどうすればいいかな?
例えばSetTimerで指定する関数を派生クラス毎の機能にしたい
基底クラスでstatic付きの関数を定義して
その中でpublicな仮想関数を呼ぶとかがスマートなんかな?
例えばSetTimerで指定する関数を派生クラス毎の機能にしたい
基底クラスでstatic付きの関数を定義して
その中でpublicな仮想関数を呼ぶとかがスマートなんかな?
2016/08/17(水) 22:18:06.51ID:KqRj7kcI
基本部分の知識不足か説明不足で要領をえないな
> 関数にstaticをつける必要がある場合その関数を仮想関数みたいに使うにはどうすればいいかな?
そんなことをやろうとしなくても
派生クラス毎にstaticな関数を用意してSetTimerを呼び出すときにそれを登録すればいいだけでは
> 関数にstaticをつける必要がある場合その関数を仮想関数みたいに使うにはどうすればいいかな?
そんなことをやろうとしなくても
派生クラス毎にstaticな関数を用意してSetTimerを呼び出すときにそれを登録すればいいだけでは
2016/08/18(木) 08:40:43.37ID:nfE+KhhQ
>>3
別のstatic関数にthisポインタを保持させておいて
1回目のTimerでその関数を呼んでTimer内のstatic変数に保存したら
publicなら呼べると思ったけど
そうするのがいいんかなありがとう
別のstatic関数にthisポインタを保持させておいて
1回目のTimerでその関数を呼んでTimer内のstatic変数に保存したら
publicなら呼べると思ったけど
そうするのがいいんかなありがとう
2016/08/18(木) 17:06:15.70ID:9gCEAov3
いや言っている意味がよくわからんがこういう感じのじゃダメなの?
やりたいことがわからんからコールバック呼ばれたらKillTimerしちゃってるけど…
それともTimerProcAやTimerProcBでclass A や class B のメンバにアクセスしたいという感じ?
class A
{
private:
static void TimerProcA(HANDLE hwnd, UINT uMsg, UINT idEvent, DWORD dwTime){ KillTimer(NULL,idEvent); }
public:
A(){}
~A(){}
virtual void TimerCall(){ SetTimer(NULL,0,2000,(TIMERPROC)TimerProcA); }
};
class B : public A
private:
static void TimerProcB(HANDLE hwnd, UINT uMsg, UINT idEvent, DWORD dwTime){ KillTimer(NULL,idEvent); }
public:
A(){}
~A(){}
virtual void TimerCall(){ SetTimer(NULL,0,4000,(TIMERPROC)TimerProcB); }
};
やりたいことがわからんからコールバック呼ばれたらKillTimerしちゃってるけど…
それともTimerProcAやTimerProcBでclass A や class B のメンバにアクセスしたいという感じ?
class A
{
private:
static void TimerProcA(HANDLE hwnd, UINT uMsg, UINT idEvent, DWORD dwTime){ KillTimer(NULL,idEvent); }
public:
A(){}
~A(){}
virtual void TimerCall(){ SetTimer(NULL,0,2000,(TIMERPROC)TimerProcA); }
};
class B : public A
private:
static void TimerProcB(HANDLE hwnd, UINT uMsg, UINT idEvent, DWORD dwTime){ KillTimer(NULL,idEvent); }
public:
A(){}
~A(){}
virtual void TimerCall(){ SetTimer(NULL,0,4000,(TIMERPROC)TimerProcB); }
};
2016/08/18(木) 17:26:00.93ID:nfE+KhhQ
そうそうアクセスしたいという感じ
別のstatic関数ってのはこんな感じでTimerProcからメンバにアクセスするためにクラスポインタを保持させてて
static void *func(void *p) {
static void *q;
if(p != NULL) {
q = p;
}
return q;
}
使う時はこんな感じ
TimerProc() {
static ClassA *classpointer;
if(classpointer == NULL) {
classpointer = func(NULL);
}
// 以下classpointerを使った処理を仮想関数にできればと思った
}
けど基底クラスのTimerProcでは派生クラスの型がわからんし無理だと気付いたごめん
別のstatic関数ってのはこんな感じでTimerProcからメンバにアクセスするためにクラスポインタを保持させてて
static void *func(void *p) {
static void *q;
if(p != NULL) {
q = p;
}
return q;
}
使う時はこんな感じ
TimerProc() {
static ClassA *classpointer;
if(classpointer == NULL) {
classpointer = func(NULL);
}
// 以下classpointerを使った処理を仮想関数にできればと思った
}
けど基底クラスのTimerProcでは派生クラスの型がわからんし無理だと気付いたごめん
2016/08/18(木) 17:28:17.52ID:9gCEAov3
あちゃー
クラスBのコンストラクタとデストラクタは脳内で変換しておいてください
それならstd::mapとか使って…
要点だけなのでエラー処理とかは無しだけど
std::map<UINT, void*> mp;
class A
{
public:
A(){}
~A(){}
static void TimerProc(HANDLE hwnd, UINT uMsg, UINT idEvent, DWORD dwTime)
{
KillTimer(NULL,idEvent); A *a=(A*) mp[idEvent]; mp.erase(idEvent); a->TimerCallbackEvent();
}
void TimerCall(){ UINT TimerId = SetTimer(NULL,0,2000,(TIMERPROC)TimerProc); mp[TimerId] = this; }
virtual void TimerCallbackEvent(){ MessageBox(NULL,"Timer A","TEST",MB_OK); }
};
class B : public A
{
public:
B(){}
~B(){}
virtual void TimerCallbackEvent(){ MessageBox(NULL,"Timer B","TEST",MB_OK); }
};
クラスBのコンストラクタとデストラクタは脳内で変換しておいてください
それならstd::mapとか使って…
要点だけなのでエラー処理とかは無しだけど
std::map<UINT, void*> mp;
class A
{
public:
A(){}
~A(){}
static void TimerProc(HANDLE hwnd, UINT uMsg, UINT idEvent, DWORD dwTime)
{
KillTimer(NULL,idEvent); A *a=(A*) mp[idEvent]; mp.erase(idEvent); a->TimerCallbackEvent();
}
void TimerCall(){ UINT TimerId = SetTimer(NULL,0,2000,(TIMERPROC)TimerProc); mp[TimerId] = this; }
virtual void TimerCallbackEvent(){ MessageBox(NULL,"Timer A","TEST",MB_OK); }
};
class B : public A
{
public:
B(){}
~B(){}
virtual void TimerCallbackEvent(){ MessageBox(NULL,"Timer B","TEST",MB_OK); }
};
2016/08/18(木) 17:37:35.78ID:9gCEAov3
別にstd::mapである必要はないし独自のリストを作っても良い
TimerProc() と TimerCall() は基底クラスだけ書く
TimerCallbackEvent()は仮想関数で 派生クラス毎の機能 はここに書く
流れとしてはそれぞれのクラスでTimerCall() を呼び出すとタイマIDとインスタンスをセットで登録
時間経過でTimerProc()が呼ばれるけどその際に登録したタイマIDからインスタンスをゲット
あとはインスタンスの仮想関数 TimerCallbackEvent() を呼び出す
TimerProc() と TimerCall() は基底クラスだけ書く
TimerCallbackEvent()は仮想関数で 派生クラス毎の機能 はここに書く
流れとしてはそれぞれのクラスでTimerCall() を呼び出すとタイマIDとインスタンスをセットで登録
時間経過でTimerProc()が呼ばれるけどその際に登録したタイマIDからインスタンスをゲット
あとはインスタンスの仮想関数 TimerCallbackEvent() を呼び出す
2016/08/18(木) 18:02:11.11ID:9gCEAov3
あと横着なやり方だと
SetTimerにウインドウハンドル指定すれば第二引数の UINT idTimer を有効に出来る
この idTimer にクラスのインスタンスを指定
コールバック関数 TimerProc では 第三引数の UINT idEvent, をクラスの型にキャストしてインスタンスを取得
class A
{
public:
A(){}
~A(){}
static void TimerProc(HANDLE hwnd, UINT uMsg, UINT idEvent, DWORD dwTime) {
KillTimer(hwnd, idEvent); A *a=(A*) idEvent; a->TimerCallbackEvent();
}
void TimerCall(HWND hWnd){ SetTimer(hWnd,(UINT)this,2000,(TIMERPROC)TimerProc); }
virtual void TimerCallbackEvent(){ MessageBox(NULL,"Timer A","TEST",MB_OK); }
};
class B : public A
{
public:
B() : A(){}
~B(){}
virtual void TimerCallbackEvent(){ MessageBox(NULL,"Timer B","TEST",MB_OK); }
};
SetTimerにウインドウハンドル指定すれば第二引数の UINT idTimer を有効に出来る
この idTimer にクラスのインスタンスを指定
コールバック関数 TimerProc では 第三引数の UINT idEvent, をクラスの型にキャストしてインスタンスを取得
class A
{
public:
A(){}
~A(){}
static void TimerProc(HANDLE hwnd, UINT uMsg, UINT idEvent, DWORD dwTime) {
KillTimer(hwnd, idEvent); A *a=(A*) idEvent; a->TimerCallbackEvent();
}
void TimerCall(HWND hWnd){ SetTimer(hWnd,(UINT)this,2000,(TIMERPROC)TimerProc); }
virtual void TimerCallbackEvent(){ MessageBox(NULL,"Timer A","TEST",MB_OK); }
};
class B : public A
{
public:
B() : A(){}
~B(){}
virtual void TimerCallbackEvent(){ MessageBox(NULL,"Timer B","TEST",MB_OK); }
};
2016/08/18(木) 19:33:04.64ID:nfE+KhhQ
2016/08/31(水) 13:39:09.46ID:HrKErv9D
苦C12-2の戻り値になんでcount付くの?
2016/09/01(木) 12:44:39.61ID:Cb20qd0C
Class A { int a }
Class B { int a }
Class C : A, B { } // A Bを継承
この状態だとCからaにアクセスする場合は
thisじゃどっちのaだよってなるから
A::a, B::aってやる必要があるけど
Class C { A a; B b; } // A Bを宣言
これと違う部分は
名前が衝突するかしないかだけ?
Class B { int a }
Class C : A, B { } // A Bを継承
この状態だとCからaにアクセスする場合は
thisじゃどっちのaだよってなるから
A::a, B::aってやる必要があるけど
Class C { A a; B b; } // A Bを宣言
これと違う部分は
名前が衝突するかしないかだけ?
2016/09/01(木) 14:07:11.55ID:h0ZxBZjb
コンパイルが通る文法でやり直し
2016/09/01(木) 18:20:52.36ID:9l469SL1
>>12
コンストラクタやデストラクタのタイミングから考えれば両者は別物
例えばCの初期化時、CのメンバがAやBにアクセスする場合
前者は問題なくCのメンバは初期化されるが
後者は宣言の位置によって未初期化データにアクセスする危険がある
前者はCをAとしてみることが出来るし、CをBとしてみることも出来る
でも後者においてCはCでしかない
例えばAを必要とする関数とBを必要とする関数がある場合、
前者はそのままCを引数に渡せるが後者は適宜メンバを指定しないといけない
もっともオーバーロードされた関数だとCをAかBにキャストしてやんないと曖昧だと怒られる
もちろん適切に宣言されていることは前提
コンストラクタやデストラクタのタイミングから考えれば両者は別物
例えばCの初期化時、CのメンバがAやBにアクセスする場合
前者は問題なくCのメンバは初期化されるが
後者は宣言の位置によって未初期化データにアクセスする危険がある
前者はCをAとしてみることが出来るし、CをBとしてみることも出来る
でも後者においてCはCでしかない
例えばAを必要とする関数とBを必要とする関数がある場合、
前者はそのままCを引数に渡せるが後者は適宜メンバを指定しないといけない
もっともオーバーロードされた関数だとCをAかBにキャストしてやんないと曖昧だと怒られる
もちろん適切に宣言されていることは前提
2016/09/01(木) 18:26:02.24ID:9l469SL1
2016/09/01(木) 18:51:52.00ID:Cb20qd0C
>>15
詳しくありがとう
詳しくありがとう
2016/09/06(火) 13:37:22.26ID:71dTDxcx
int型aに自然数を入力するとする
√aに最も近い分数を表示する(ただし分子分母はそれぞれ5桁以内)
例えば√2の場合は30547/21600
ってプログラム作りたいなと思ったんですけどなかなか上手くいかないです
何かアドバイスありませんか??
√aに最も近い分数を表示する(ただし分子分母はそれぞれ5桁以内)
例えば√2の場合は30547/21600
ってプログラム作りたいなと思ったんですけどなかなか上手くいかないです
何かアドバイスありませんか??
2016/09/06(火) 14:06:14.75ID:7STKxdhD
君がすでに試したことをアドバイスして、もうやりました、と返されるのはばかばしいだろ
本気でアドバイスが欲しければ君がこれまでにやったが満足出来なかったこと
やろうとしたけどうまくできなかったこと、とかをできるだけ多く伝えてからにするんだな
本気でアドバイスが欲しければ君がこれまでにやったが満足出来なかったこと
やろうとしたけどうまくできなかったこと、とかをできるだけ多く伝えてからにするんだな
2016/09/06(火) 21:30:24.59ID:Phz+5l1v
分母を1から99999まで回して√2に掛け小数点を切り上げた時と切り捨てた時で最も誤差が小さくかつ1から99999の範囲にある値を分子にする
2016/09/07(水) 09:32:39.46ID:mdJXQRTa
sqrt(2)は、66922/47321じゃない?
2016/09/07(水) 13:34:29.16ID:r09HpaM4
sqrt(n)の結果を分数に変換すれば良いならググれば出てくると思うが。
割と簡単だぞ。
割と簡単だぞ。
2016/09/07(水) 14:15:36.07ID:M2bjXbVq
2016/09/07(水) 19:10:24.68ID:9ei6Qh2k
>>17 の問題は、平方根の近似値を求めることと
桁数制限のある分子・分母による分数で小数の近似値を作ること、
この2つに分解できるのかな。それとも一体なんだろうか。
ちょいと調べたところ「ディオファントス近似」とかいう
数学のキーワードが出てきたから、C/C++のプログラムというより
アルゴリズムの問題なのかもしれないよ。
桁数制限のある分子・分母による分数で小数の近似値を作ること、
この2つに分解できるのかな。それとも一体なんだろうか。
ちょいと調べたところ「ディオファントス近似」とかいう
数学のキーワードが出てきたから、C/C++のプログラムというより
アルゴリズムの問題なのかもしれないよ。
2016/11/17(木) 19:27:03.23ID:/ZwpQAJu
http://www.boost.org/doc/libs/1_53_0/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html
CUDAの
__host__ __device__
value_type operator()( value_type x) const
{
みたいな書き方で
__host__ __device__
というのはCUDAに限定された書き方で普通のC++では返り値の方の前に
他のもの置けませんよね?
CUDAの
__host__ __device__
value_type operator()( value_type x) const
{
みたいな書き方で
__host__ __device__
というのはCUDAに限定された書き方で普通のC++では返り値の方の前に
他のもの置けませんよね?
2016/11/17(木) 19:31:08.07ID:cH0vE1/X
staticとか置けるよ
2016/11/17(木) 20:52:01.53ID:klz7wxCT
cdeclとかstdcallとか置かない?
2016/11/17(木) 20:52:40.98ID:dEDc58kY
環境に応じて空白に置換されることもあるマクロとか普通に置けるし
C++11以降なら普通にattributeを置ける
C++11以降なら普通にattributeを置ける
2016/11/18(金) 09:34:37.20ID:HWQGR5IS
>>26
void __stdcall func();だわ
void __stdcall func();だわ
2016/12/25(日) 17:25:21.30ID:+uAMo6Z3
c++11 の std::accumulate() を使って CRC32 を計算するプログラムを書いているんだけど、
イテレータの型が不明だから template<> を使わざるおえずヘッダーにしか書けないんだよな。
それは仕方がないとして、参照しているテーブルをヘッダーファイルに
static const uint32_t __CRC32_TABLE__[256] {/* データは省略 */};
って書いてもコンパイル単位で毎回生成されるようなことにはならないのか心配。
自分で調べてみようと思って objdump を使って見てみたんだけどよくわからんかった。
extern で宣言して別ファイルでテーブルの実態を定義してもいいけど、
シンボルを公開したくないんだよね。
イテレータの型が不明だから template<> を使わざるおえずヘッダーにしか書けないんだよな。
それは仕方がないとして、参照しているテーブルをヘッダーファイルに
static const uint32_t __CRC32_TABLE__[256] {/* データは省略 */};
って書いてもコンパイル単位で毎回生成されるようなことにはならないのか心配。
自分で調べてみようと思って objdump を使って見てみたんだけどよくわからんかった。
extern で宣言して別ファイルでテーブルの実態を定義してもいいけど、
シンボルを公開したくないんだよね。
2016/12/25(日) 23:20:51.61ID:jDrU+LCU
staticなグローバル変数なら翻訳単位ごとに毎回定義(生成)されるのが基本だろ
2016/12/29(木) 11:13:46.10ID:ddtQH8Am
ヘッダーファイルに定義するなら公開しているようなものじゃないかと思うんだけど。
テーブルアドレスを取得する関数を定義して実体を見せないとかじゃだめなんかな?
テーブルアドレスを取得する関数を定義して実体を見せないとかじゃだめなんかな?
2016/12/31(土) 01:03:30.96ID:WURbgydp
ヘッダファイルなんて作らずに main.cpp で他の .cpp ファイルをインクルードしてしまえばいい
フリーダムさが一つの売りな言語だからな
という話ではなくて?
フリーダムさが一つの売りな言語だからな
という話ではなくて?
2016/12/31(土) 05:29:57.12ID:M5j1RyE5
externをヘッダに書かなければ大丈夫
34デフォルトの名無しさん
2016/12/31(土) 13:06:08.73ID:bmD+g+A2 >>29
今更だけど、何か勘違いしているか、ちょっと間違った使い方をしている気がする。
今更だけど、何か勘違いしているか、ちょっと間違った使い方をしている気がする。
2016/12/31(土) 14:05:48.22ID:dE1JGkqW
>>32
それってデバッグするとき最悪なことにならない?
それってデバッグするとき最悪なことにならない?
2016/12/31(土) 19:25:36.12ID:GpynYecu
関数のオーバロードってどう思います?
linusさんはC++批判の一つにこれを上げていました。
linusさんはC++批判の一つにこれを上げていました。
2016/12/31(土) 20:17:07.01ID:Kmz/fYBF
オーバーロードがあると、デフォルト引数がある関数で、間違いが起こりやすい
Haxe では、型推論しやすいように、オーバーロードが無い
Haxe では、型推論しやすいように、オーバーロードが無い
2016/12/31(土) 20:27:01.42ID:GpynYecu
やっぱあえて用意しない言語も少なくないんですかね
C++のような用意されている言語でも意図的に使わない人もいるのかな
ところで自分は関数のオーバロードが大好きなのですがwww
C++をオーバロード関数のあるCもとい better C として使うことも少なくないのですがwwww
C言語にもできないかなぁwwww
C++のような用意されている言語でも意図的に使わない人もいるのかな
ところで自分は関数のオーバロードが大好きなのですがwww
C++をオーバロード関数のあるCもとい better C として使うことも少なくないのですがwwww
C言語にもできないかなぁwwww
2016/12/31(土) 21:17:05.19ID:WasXuFJU
オーバーロードはいいものだ
だが引数の暗黙の型変換はデフォルト禁止すべきだ
だが引数の暗黙の型変換はデフォルト禁止すべきだ
2017/01/01(日) 00:04:27.70ID:/LG195GI
ソースコードを読む側から見るとオーバロードは欠点でしかない
書く側から見ると稀に便利だけど無い方がいい
書く側から見ると稀に便利だけど無い方がいい
2017/01/01(日) 01:06:03.25ID:y/0zTBoG
暗黙の型変換、デフォルト引数、さらに演算子のオーバーロードなどが
ごっちゃになった本当のヤバさを知らない人には好かれる機能かもね。
ごっちゃになった本当のヤバさを知らない人には好かれる機能かもね。
2017/01/01(日) 01:47:02.01ID:3VCNztM8
普通は逆だな
ヤバさを知らない人はやらかして痛い目を見る
知ってる人は使い所に気をつけて恩恵のみ得られる
ヤバさを知らない人はやらかして痛い目を見る
知ってる人は使い所に気をつけて恩恵のみ得られる
2017/01/01(日) 07:30:16.72ID:/Xch0vce
確かにヤバさを知ってから使えばあれはいいものだな
2017/01/01(日) 10:17:30.27ID:iNYIlr5k
ことしもよろしくな
2017/01/01(日) 11:21:50.54ID:J8wVTYjO
ふぐみたいなものかな
毒のやばさを知らない人は食って死ぬし
毒のやばさを知っている人はうまく料理しておいしい思いをする
毒のやばさを知らない人は食って死ぬし
毒のやばさを知っている人はうまく料理しておいしい思いをする
2017/01/01(日) 11:25:10.13ID:h0NhlmdK
料理人はさばくだけで、食った奴が死ぬ。
2017/01/01(日) 12:11:27.00ID:1eFWlFaz
>>35
オールマクロで書かれたソースよりはマシですよ
オールマクロで書かれたソースよりはマシですよ
2017/01/01(日) 13:07:41.65ID:6FLztjP6
目くそ鼻くそ
2017/01/03(火) 18:18:14.49ID:YaTOHTL4
なるほど自分だけはうまく使えてると思い込んでしまうわけだ。
2017/01/03(火) 19:02:34.22ID:IwVR3NZn
痛い目を見ないで使えているならうまく使えていると言えるんじゃないの
オールマグロは美味しい
オールマグロは美味しい
2017/01/08(日) 04:05:56.53ID:+qBxgbmJ
デフォルト引数とオーバーロードのどちらを取るかといわれると
かなり悩むが、個人的にはオーバーロードかなぁ
オーバーロードがないとメタプログラミングも困難になるし
演算子のオーバーロードは行列やベクトルに対しては非常に有用だしな
デフォルト引数は、関数に構造体を渡すようなものであれば
構造体自体に初期値を設定できるから
無くても別に困らないかなぁ
大体からして、引数が10個以上になるとかはナンセンスだし
そういう場合は大抵構造体で渡すからねぇ
かなり悩むが、個人的にはオーバーロードかなぁ
オーバーロードがないとメタプログラミングも困難になるし
演算子のオーバーロードは行列やベクトルに対しては非常に有用だしな
デフォルト引数は、関数に構造体を渡すようなものであれば
構造体自体に初期値を設定できるから
無くても別に困らないかなぁ
大体からして、引数が10個以上になるとかはナンセンスだし
そういう場合は大抵構造体で渡すからねぇ
2017/01/08(日) 10:04:57.89ID:HWfbhIhn
関数のオーバーロードがcに備わっていればへんなプレフィックスをつけなくても名前衝突の可能性は減らせるのに。。
2017/01/09(月) 17:38:25.57ID:s0WlKSpH
>>52
関数のオーバーロードはマングリングの絡みがあって,アセンブラとリンクしがちなCにとっては鬼門なんだと思うんです
関数のオーバーロードはマングリングの絡みがあって,アセンブラとリンクしがちなCにとっては鬼門なんだと思うんです
54デフォルトの名無しさん
2017/01/13(金) 23:29:25.67ID:YsOZ3W7e int l = 2;
printf(" P2=(%1.3f, %1.3f)\n", l, P[2][0], P[2][1]);
→P2=(0.000, 0.000)←正解
printf(" P%d=(%1.3f, %1.3f)\n", l, P[l][0], P[l][1]);
→P2=(1.000, -1.000)
こんなことってありますか?
printf(" P2=(%1.3f, %1.3f)\n", l, P[2][0], P[2][1]);
→P2=(0.000, 0.000)←正解
printf(" P%d=(%1.3f, %1.3f)\n", l, P[l][0], P[l][1]);
→P2=(1.000, -1.000)
こんなことってありますか?
2017/01/13(金) 23:44:30.08ID:uIUQJPv6
2017/01/13(金) 23:54:16.22ID:YsOZ3W7e
すみません, ソースコードコピペじゃなかったので書き間違えましたが、正しくは
printf(" P2=(%1.3f, %1.3f)\n", P[2][0], P[2][1]);
です。
すみません解決しました。宣言でP[3][2] と書くべきところをP[2][2]と書いていました。
お騒がせしました。
printf(" P2=(%1.3f, %1.3f)\n", P[2][0], P[2][1]);
です。
すみません解決しました。宣言でP[3][2] と書くべきところをP[2][2]と書いていました。
お騒がせしました。
2017/01/20(金) 09:36:49.73ID:Nvso2zBq
>>52
関数オーバーロードの存在理由は名前を変えたくても変えられない関数のため
関数オーバーロードの存在理由は名前を変えたくても変えられない関数のため
2017/01/21(土) 12:37:42.57ID:SM6hxokj
gdbでデバッグをするとき、
main.cppファイル以外にtest.cppファイルをインクルードして
コンパイルしています。
このとき、test.cpp内の変数の中身を見るためにブレークポイントを
設定したいのですが、具体的にどのように行えばよいのでしょうか?
main.cppファイル以外にtest.cppファイルをインクルードして
コンパイルしています。
このとき、test.cpp内の変数の中身を見るためにブレークポイントを
設定したいのですが、具体的にどのように行えばよいのでしょうか?
2017/01/22(日) 06:49:21.49ID:hpHPcjfX
>>58 俺もgdbに詳しいわけじゃないけど…。
関数内のローカル変数を見られるのは、当然その関数の実行中だけ。
(gdb) break test
(gdb) run
... 関数test()開始時に停止
(gdb) print var
... 関数test()内のローカル変数varが表示される
C++特有の問題として、ファイル内のスタティック変数も
そのファイルの関数を実行してる間しか正しく見られないみたい。
Cで使えた 'file.c'::var (ソースファイル名で修飾した変数名)は
C++のプログラムだとgdbが文法エラーと言ってくる。
関数内のローカル変数を見られるのは、当然その関数の実行中だけ。
(gdb) break test
(gdb) run
... 関数test()開始時に停止
(gdb) print var
... 関数test()内のローカル変数varが表示される
C++特有の問題として、ファイル内のスタティック変数も
そのファイルの関数を実行してる間しか正しく見られないみたい。
Cで使えた 'file.c'::var (ソースファイル名で修飾した変数名)は
C++のプログラムだとgdbが文法エラーと言ってくる。
2017/02/01(水) 22:19:47.26ID:FDjJl8e/
すいません。
教えてください。
mainの最後まで実行してもプログラムが終了しません。
mainの最後にcout<<"END"<<endl;を入れていてENDが出力されているので
mainの最後に到達していることは確実です。
mainの中ではifstreamを使って6万行のファイルをgetlineでダンプしています。
ifstreamが悪さをしているのでしょうか?
教えてください。
mainの最後まで実行してもプログラムが終了しません。
mainの最後にcout<<"END"<<endl;を入れていてENDが出力されているので
mainの最後に到達していることは確実です。
mainの中ではifstreamを使って6万行のファイルをgetlineでダンプしています。
ifstreamが悪さをしているのでしょうか?
2017/02/01(水) 22:33:53.13ID:V+KME3Sb
悪さというか 一度出力をバッファリングしておいて
END表示の後に ifstreamのデストラクタ経由でトリガーされた処理で
実際の出力を行う ということはあり得ます
その場合 直ぐには終了してくれないように見えると思います
外してたらごめんなさいですが このケースじゃないかなと
END表示の後に ifstreamのデストラクタ経由でトリガーされた処理で
実際の出力を行う ということはあり得ます
その場合 直ぐには終了してくれないように見えると思います
外してたらごめんなさいですが このケースじゃないかなと
2017/02/01(水) 22:54:30.09ID:FDjJl8e/
つまりプログラムが終了するまでじっと待てばいいということでしょうか?
5分くらい待ちましたが終了する気配がありませんでした。
5分くらい待ちましたが終了する気配がありませんでした。
2017/02/01(水) 23:13:45.79ID:V+KME3Sb
もし>>61の場合に当て嵌るなら
ifstreamをスコープの内側にいれてデストラクタをEND出力の前に
呼ぶことは出来るはずです
int main(int argc, char* argv[]) {
{ // このスコープを追加することで
ifstream ifs(...);
...
} // デストラクタが確実に呼ばれていることを保証
cout << "END" << endl;
}
(↑コンパイル通してないので過信しないでください)
この場合だと、ENDが出力されずにプログラムも終了しない事が観察できるかと思います
しかし、(処理の内容が解らないので断定できませんが)
6万行なら5分で終わらないってこともなさそうな気もしますね……
"getline"でダンプということは読み込んでから出力ですよね
んー 大雑把に考えられるのはデバッグビルドで
重いデバッグ用のコードが追加されてるとかでしょうか
……なんとなくこれは外してる気がします すいません
実際のコードと環境を見てみないとなんともってとこです
ifstreamをスコープの内側にいれてデストラクタをEND出力の前に
呼ぶことは出来るはずです
int main(int argc, char* argv[]) {
{ // このスコープを追加することで
ifstream ifs(...);
...
} // デストラクタが確実に呼ばれていることを保証
cout << "END" << endl;
}
(↑コンパイル通してないので過信しないでください)
この場合だと、ENDが出力されずにプログラムも終了しない事が観察できるかと思います
しかし、(処理の内容が解らないので断定できませんが)
6万行なら5分で終わらないってこともなさそうな気もしますね……
"getline"でダンプということは読み込んでから出力ですよね
んー 大雑把に考えられるのはデバッグビルドで
重いデバッグ用のコードが追加されてるとかでしょうか
……なんとなくこれは外してる気がします すいません
実際のコードと環境を見てみないとなんともってとこです
64sage
2017/02/01(水) 23:43:55.55ID:FDjJl8e/ 再現コードです。
end,end2,end3すべて出力されてから固まってしまいます。
何かわかることありますでしょうか?
#include<fstream>
#include<iostream>
using namespace std;
int main(int argc,char **argv)
{
{
ifstream f("list.txt");
if(!f.fail())
{
int i=0;
char l[1024];
while(f)
{
l[0]='\0';
f.getline(l,1000);
cout<<i<<" "<<l<<endl;
i++;
}
cout<<"end"<<endl;
}
cout<<"end2"<<endl;
}
cout<<"end3"<<endl;
}
end,end2,end3すべて出力されてから固まってしまいます。
何かわかることありますでしょうか?
#include<fstream>
#include<iostream>
using namespace std;
int main(int argc,char **argv)
{
{
ifstream f("list.txt");
if(!f.fail())
{
int i=0;
char l[1024];
while(f)
{
l[0]='\0';
f.getline(l,1000);
cout<<i<<" "<<l<<endl;
i++;
}
cout<<"end"<<endl;
}
cout<<"end2"<<endl;
}
cout<<"end3"<<endl;
}
2017/02/02(木) 00:06:13.31ID:XVpKeu5E
list.txtの内容は意図どおり表示されてますかね?
こちらの環境(Linux gcc4.9.4, clang3.9.0)だと70000行のデータで
得に問題なく出力、終了しました
こちらの環境(Linux gcc4.9.4, clang3.9.0)だと70000行のデータで
得に問題なく出力、終了しました
2017/02/02(木) 00:10:41.68ID:uXhy1oZf
意図通り出力されてます。
環境の問題ですか、うーん厄介ですね。
cygwinとx86_64-w64-mingw32-g++.exeというコンパイラでやってます。
とりあえず、コードに問題はないということで、ありがとうございます。
環境の問題ですか、うーん厄介ですね。
cygwinとx86_64-w64-mingw32-g++.exeというコンパイラでやってます。
とりあえず、コードに問題はないということで、ありがとうございます。
2017/02/02(木) 00:24:50.02ID:XVpKeu5E
ああ mingwですね 昔よく使ってました
プログラムは終了してても コンソールが残っちゃうってやつはよくありました
なら"-mconsole"(だったと思う) flagをg++に与えて見てください
その辺のフラグで解消できるものだったような気がします
"-mwindows"ってのもあったので逆だったかもしれないんですが…(曖昧
プログラムは終了してても コンソールが残っちゃうってやつはよくありました
なら"-mconsole"(だったと思う) flagをg++に与えて見てください
その辺のフラグで解消できるものだったような気がします
"-mwindows"ってのもあったので逆だったかもしれないんですが…(曖昧
6860
2017/02/02(木) 00:31:49.82ID:uXhy1oZf cygwinじゃなくてコマンドプロンプトでやったら終了しましたw
謎すぎw
とりあえず、解決?ということでありがとうございました。
謎すぎw
とりあえず、解決?ということでありがとうございました。
2017/02/02(木) 00:32:54.78ID:XVpKeu5E
ありゃw 了解です お疲れ様ー
2017/02/02(木) 20:06:20.90ID:twb4E7Xn
数独を解くプログラムについてなんですが縦、横の検索はできても3x3で区切られたブロック内を列挙する方法がわかりません
どうやって3x3で区切られたブロックを列挙すればいいでしょうか?
どうやって3x3で区切られたブロックを列挙すればいいでしょうか?
2017/02/02(木) 20:35:41.21ID:uXhy1oZf
for文2重にすればええんちゃう?
2017/02/02(木) 21:30:56.78ID:uZGYbIMg
素直に2*2の4重ループだろ
外側の縦横2重ループでまず探索するブロックを決めて
内側の縦横2重ループでブロック内の全マスを列挙する
外側の縦横2重ループでまず探索するブロックを決めて
内側の縦横2重ループでブロック内の全マスを列挙する
2017/02/03(金) 00:04:44.30ID:ITjsij3m
列挙対象の座標のリストを作るとかもいいかもね。
それなら縦横ブロックを統一的に扱える。
それなら縦横ブロックを統一的に扱える。
2017/02/03(金) 08:10:45.56ID:ptvBupX8
俺なら(x, y)座標を格納する構造体を作って、
それを9つ集めた配列、を9つ集めた配列、でやるかな。
3x3のブロックに0-8の添字をつける感じで。
ブロック番号(0-2)を3倍してブロック内座標(0-2)を足す、で
盤面全体での座標値(0-8)を得られる、X軸とY軸についてそれぞれ算出、
というやり方もあるが、この文面で分かりにくいと感じたら
コードを書いても分かりにくい方法かと。
それを9つ集めた配列、を9つ集めた配列、でやるかな。
3x3のブロックに0-8の添字をつける感じで。
ブロック番号(0-2)を3倍してブロック内座標(0-2)を足す、で
盤面全体での座標値(0-8)を得られる、X軸とY軸についてそれぞれ算出、
というやり方もあるが、この文面で分かりにくいと感じたら
コードを書いても分かりにくい方法かと。
75片山博文MZ ◆T6xkBnTXz7B0
2017/02/03(金) 08:24:14.76ID:6yKPOmXk f: (x, y) |-> (x * 9 + y).
g: (n) |-> (n / 9, n % 9)
という2つの1対1写像があるから、それを使えばint a[9][9];でもint b[9 * 9];でも同じ結果が得られる。
g: (n) |-> (n / 9, n % 9)
という2つの1対1写像があるから、それを使えばint a[9][9];でもint b[9 * 9];でも同じ結果が得られる。
2017/02/04(土) 01:09:26.83ID:2qbguusO
書いたぞ。
#include<iostream>
#include<vector>
using namespace std;
class Point{
public:
int x,y;
Point(int a,int b){x=a;y=b;}};
ostream &operator<<(ostream &o,Point p){o<<"("<<p.x<<","<<p.y<<")";return o;}
vector<vector<Point> > point_list;
init_list(){
vector<Point> l;
for(int x=0;x<9;++x){
for(int y=0;y<9;++y)l.push_back(Point(x,y));
point_list.push_back(l);l.clear();}
for(int y=0;y<9;++y){
for(int x=0;x<9;++x)l.push_back(Point(x,y));
point_list.push_back(l);l.clear();}
for(int X=0;X<9;X+=3){for(int Y=0;Y<9;Y+=3){
for(int x=0;x<3;++x){for(int y=0;y<3;++y){
l.push_back(Point(X+x,Y+y));}}
point_list.push_back(l);l.clear();}}}
int main(){
init_list();
for(int i=0;i<point_list.size();++i){for(int j=0;j<point_list[i].size();++j){
cout<<point_list[i][j]<<" ";}
cout<<endl;}
}
#include<iostream>
#include<vector>
using namespace std;
class Point{
public:
int x,y;
Point(int a,int b){x=a;y=b;}};
ostream &operator<<(ostream &o,Point p){o<<"("<<p.x<<","<<p.y<<")";return o;}
vector<vector<Point> > point_list;
init_list(){
vector<Point> l;
for(int x=0;x<9;++x){
for(int y=0;y<9;++y)l.push_back(Point(x,y));
point_list.push_back(l);l.clear();}
for(int y=0;y<9;++y){
for(int x=0;x<9;++x)l.push_back(Point(x,y));
point_list.push_back(l);l.clear();}
for(int X=0;X<9;X+=3){for(int Y=0;Y<9;Y+=3){
for(int x=0;x<3;++x){for(int y=0;y<3;++y){
l.push_back(Point(X+x,Y+y));}}
point_list.push_back(l);l.clear();}}}
int main(){
init_list();
for(int i=0;i<point_list.size();++i){for(int j=0;j<point_list[i].size();++j){
cout<<point_list[i][j]<<" ";}
cout<<endl;}
}
2017/02/04(土) 01:13:42.21ID:2qbguusO
そういや数独ってNP完全なんだっけ?
単純な消去法以外アルゴリズム思いつかんが。
単純な消去法以外アルゴリズム思いつかんが。
2017/02/21(火) 13:16:05.38ID:PhJVPA+A
#include <stdio.h>
#include <string.h>
int main(void)
{
char *p, str[32];
scanf("%s", str);
while ((p = strpbrk(str, "ab")) != NULL) *p = 'c';
printf("%s\n", str);
return 0;
}
"ab"の文字列を"c"に置換したいんだけどaもbも一文字ずつ置換えられて"cc"ってなってしまう
どうすりゃいいんですかね…
#include <string.h>
int main(void)
{
char *p, str[32];
scanf("%s", str);
while ((p = strpbrk(str, "ab")) != NULL) *p = 'c';
printf("%s\n", str);
return 0;
}
"ab"の文字列を"c"に置換したいんだけどaもbも一文字ずつ置換えられて"cc"ってなってしまう
どうすりゃいいんですかね…
2017/02/21(火) 15:20:35.77ID:7lKrpDmc
strpbrk() は「第2引数の文字列に含まれる文字のどれか」への
ポインタを返すから strpbrk(str, "ab") だと返るのは
文字'a'の位置か文字'b'の位置だよ。
"ab"という部分文字列の位置が欲しいなら strstr(str, "ab") を使うべき。
加えて "ab" を "c" に置換したい場合、置換後の字数が減るのだから、
'a' を 'c' に上書きした後、strの'b'より後ろを1byteずつ詰めなきゃならない。
もっと一般的な文字列置換関数を作るとなると、かなり面倒だわね。
ポインタを返すから strpbrk(str, "ab") だと返るのは
文字'a'の位置か文字'b'の位置だよ。
"ab"という部分文字列の位置が欲しいなら strstr(str, "ab") を使うべき。
加えて "ab" を "c" に置換したい場合、置換後の字数が減るのだから、
'a' を 'c' に上書きした後、strの'b'より後ろを1byteずつ詰めなきゃならない。
もっと一般的な文字列置換関数を作るとなると、かなり面倒だわね。
2017/02/21(火) 15:30:30.87ID:2UxBH0C2
if(strcmp(str, "ab") == 0); strcpy(str, "c");
これじゃあかんの?
これじゃあかんの?
2017/02/21(火) 15:32:19.27ID:2UxBH0C2
0ab0→0c0って事なら忘れて
82デフォルトの名無しさん
2017/03/19(日) 06:58:05.16ID:o9adXXiq C言語ではないんですが、以下の事について教えて頂けないでしょうか?
"algo": "Lyra2REv2",
"threads": 0,
"cpu-priority": 0,
"cpu-affinity": -1,
"benchmark": false,
"debug": false,
"protocol": false,
"quiet": false
cpuminer-multi-windows の設定をしているのですが
"threads""cpu-priority""cpu-affinity"が何をさしているのか
よくわかりません。
私は8コア16スレッドのCPUを二個搭載しているPCを使っているのですが
CPUをフルに活用できるように設定したいのです。
ご助力頂けると幸いです。よろしくお願いします。
"algo": "Lyra2REv2",
"threads": 0,
"cpu-priority": 0,
"cpu-affinity": -1,
"benchmark": false,
"debug": false,
"protocol": false,
"quiet": false
cpuminer-multi-windows の設定をしているのですが
"threads""cpu-priority""cpu-affinity"が何をさしているのか
よくわかりません。
私は8コア16スレッドのCPUを二個搭載しているPCを使っているのですが
CPUをフルに活用できるように設定したいのです。
ご助力頂けると幸いです。よろしくお願いします。
2017/03/19(日) 07:18:53.13ID:bkt1N2YW
Cのことじゃないなら何のことなのかぐらい書けよ
モナコインか発掘か?だったらそのスレで聞けよ。シネ
モナコインか発掘か?だったらそのスレで聞けよ。シネ
2017/03/19(日) 14:10:20.03ID:oNRFZCzo
俺は煽り・叩きをしない人間だが、今回ばかりは83への同情を禁じ得ない
2017/03/19(日) 14:43:20.30ID:o9adXXiq
返事ありがとうございます
まず、何の言語かわからなかったのと
モナコインの質問板がなかったの、ここに書き込みました
向こうのどっか適当なところに書き込みします
お騒がせしました
まず、何の言語かわからなかったのと
モナコインの質問板がなかったの、ここに書き込みました
向こうのどっか適当なところに書き込みします
お騒がせしました
2017/03/19(日) 15:18:21.74ID:cwNaGN41
何の言語かわからなくても質問できるスレだってあるのににに
2017/04/13(木) 08:52:14.43ID:G0/b3aDb
class Parent{
int i;
};
class Child : Parent{
char ch;
};
Parent *ptr = new Child();
delete ptr;
こういうことをした時にメモリを確保するときはChildの変数chの分まで多くメモリを確保してると思うのですが
解放するときにちゃんとchの部分も解放されますか?
delete (Child*)ptr;
みたいにしないとダメですか?
int i;
};
class Child : Parent{
char ch;
};
Parent *ptr = new Child();
delete ptr;
こういうことをした時にメモリを確保するときはChildの変数chの分まで多くメモリを確保してると思うのですが
解放するときにちゃんとchの部分も解放されますか?
delete (Child*)ptr;
みたいにしないとダメですか?
2017/04/13(木) 09:47:58.57ID:xWAyKptX
>>87
デストラクタがvirtualなら必要ないけどこの場合違うからキャストが必要かな
デストラクタがvirtualなら必要ないけどこの場合違うからキャストが必要かな
2017/04/13(木) 09:54:46.51ID:knppr/uB
>解放するときにちゃんとchの部分も解放されますか?
されない
>delete (Child*)ptr;
>みたいにしないとダメですか?
それでも解放はできるけど、それじゃ継承の利点であるポリモーフィズムが台無しになるので
デストラクタを仮想関数にするのが常套手段
class Parent{
int i;
public:
virtual ~Parent(){}
};
class Child : public Parent{
char ch;
};
されない
>delete (Child*)ptr;
>みたいにしないとダメですか?
それでも解放はできるけど、それじゃ継承の利点であるポリモーフィズムが台無しになるので
デストラクタを仮想関数にするのが常套手段
class Parent{
int i;
public:
virtual ~Parent(){}
};
class Child : public Parent{
char ch;
};
2017/04/13(木) 11:21:16.25ID:Wi4DC5Bh
2017/04/13(木) 11:54:43.94ID:G0/b3aDb
どっちを信じたら良いんですか!?
2017/04/13(木) 12:59:56.01ID:knppr/uB
基底クラスのデストラクタはvirtualにしておけ
>>91も間違いでは無いが、chの型が変わっただけで前提が崩れる話だよ
>>91も間違いでは無いが、chの型が変わっただけで前提が崩れる話だよ
2017/04/13(木) 13:07:52.52ID:grSNqbAR
誰かが答えた後にでてきて何の説明もなくただ前の否定や異なる結論だけを言うやつは
(結果的に正しいことだったとしても)無視すればええんや
(結果的に正しいことだったとしても)無視すればええんや
2017/04/13(木) 21:32:13.97ID:r2gjPspU
確かに
96デフォルトの名無しさん
2017/04/13(木) 21:49:16.84ID:Qxk7VllX せやな
2017/05/06(土) 11:45:32.33ID:3nLTZXlU
深い階層を表すのに適したデータ構造というかクラスはなんですか?
unordered_mapを使ってキー/値のペアで作ったツリー構造があるんですが、
最適化をオフにすると500くらいの深さでもスタックオーバーフローが起きてしまいます。
Visual Studioを使っているのでReleaseビルャhのC++ライブラリとDebugのものは組み合わせられないし、
かといって常に最適化オンだとデバッグが不便です。
何かいい方法はありませんか?お願いします
unordered_mapを使ってキー/値のペアで作ったツリー構造があるんですが、
最適化をオフにすると500くらいの深さでもスタックオーバーフローが起きてしまいます。
Visual Studioを使っているのでReleaseビルャhのC++ライブラリとDebugのものは組み合わせられないし、
かといって常に最適化オンだとデバッグが不便です。
何かいい方法はありませんか?お願いします
2017/05/06(土) 13:56:44.08ID:f2NDPPRD
それだけじゃ何がしたいかさっぱり分からんけど
Compositeパターンでぐぐって出てくる奴とか参考にならんかね
Compositeパターンでぐぐって出てくる奴とか参考にならんかね
2017/05/06(土) 14:11:14.45ID:yLSgVzXR
スタックオーバーフロー?データ構造の問題じゃないと思われ
問題再現できるコードを上げるでもしないと誰も答えられないよ
問題再現できるコードを上げるでもしないと誰も答えられないよ
100デフォルトの名無しさん
2017/05/06(土) 15:30:45.88ID:DLhZv41T >>97
一般的には木構造で問題ない
ただ自分で実装する時に単純にノードの処理関数を子ノードに対して再帰的に呼び出す実装にしていると
階層が深くなったときはコールスタック不足でスタックオーバーフローになるので
ループで処理するとかの実装にしておく必要がある
一般的には木構造で問題ない
ただ自分で実装する時に単純にノードの処理関数を子ノードに対して再帰的に呼び出す実装にしていると
階層が深くなったときはコールスタック不足でスタックオーバーフローになるので
ループで処理するとかの実装にしておく必要がある
木構造のループですか‥やってできないことはないだろうけれどもめんどくさいね goto の連発だね
レスを投稿する
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 [ぐれ★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★2 [BFU★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★3 [BFU★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 [Hitzeschleier★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 中国高官と話す外務省局長の表情、やばい ★2 [175344491]
- 偏差値35大臣「すぐに経済的威圧するところへの依存はリスク」 [834922174]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- 【朗報】高市、中国からの日本行き空路49万件キャンセルを達成🤩オーバーツーリズム対策の手腕が光る [359965264]
- 日本政府「高市総理の発言は問題ないと伝え、中国総領事のSNS投稿は問題があると中国に伝えました😊」 [931948549]
- 小野田経済安保相「すぐに経済的威圧するところへの依存はリスク」😲 [861717324]
