[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 10/30 03:13 / Filesize : 322 KB / Number-of Response : 1026
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C++相談室 part129



1 名前:デフォルトの名無しさん(ワッチョイ dfcf-HvS5) mailto:sage [2017/01/09(月) 14:49:27.56 ID:p96WJVyd0.net]
次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512

C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。

前スレ
C++相談室 part128
echo.2ch.net/test/read.cgi/tech/1480172629/

このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.100【環境依存OK】
echo.2ch.net/test/read.cgi/tech/1478440682/

■長いソースを貼るときはここへ。■
 codepad.org/
 https://ideone.com/

[C++ FAQ]
https://isocpp.org/wiki/faq/
www.bohyoh.com/CandCPP/FAQ/ (日本語)
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured

552 名前:デフォルトの名無しさん (ワンミングク MM3f-QRNW) mailto:sage [2017/03/05(日) 00:17:33.91 ID:n48qZSY3M.net]
>>540
builder patternを使う

553 名前:デフォルトの名無しさん (ワッチョイ 8b7b-ERAc) [2017/03/05(日) 00:27:52.82 ID:qOQ2PN1U0.net]
>>540
複雑ってのがよくわからんのだけど、例えばどんな?
単に引数を求める形に変換する必要があるとかならヘルパ関数作るだけ

554 名前:デフォルトの名無しさん (ワッチョイ 9fc1-OGW1) mailto:sage [2017/03/05(日) 01:30:40.03 ID:gIuIuvFQ0.net]
>>541
まぁこれ

555 名前:デフォルトの名無しさん (ワッチョイ bb02-5QEK) mailto:sage [2017/03/05(日) 09:53:23.05 ID:Ur8kOvvv0.net]
説明不足でした。すみません。
class Car {
. Engine e; //<デフォルトコンストラクタをもたない
};
みたいなクラスでeを初期化するのに
. 適切なトルクの計算;
. 適切な燃費の計算;
. e = Engine(トルク, 燃費);
とかしないといけなかったら、
Car : e(トルク, 燃費) {}みたいに初期化するのは難しいよね?
みなはどうしてるの?

556 名前:デフォルトの名無しさん (ワッチョイ 3b0e-RhaL) mailto:sage [2017/03/05(日) 10:36:02.63 ID:2RIrBifF0.net]
適切なトルクの計算や、適切な燃費の計算なんて処理はそのクラスのコンストラクタ以外じゃ使わないような特殊なものなの?
それはCarが計算すべきものなの?
別の関数でも用意して、Carのコンストラクタにエンジンの初期化情報を渡させるような作り方をするのが普通じゃね。

557 名前:デフォルトの名無しさん (ワッチョイ 1fcc-+LoG) mailto:sage [2017/03/05(日) 10:38:36.22 ID:X9OstEVD0.net]
Engineクラスに別途Initialize()メソッドを持たせるだけ
無理にコンストラクタで全部やろうとする設計がバカっぽい

558 名前:デフォルトの名無しさん (オッペケ Sref-n7ZK) mailto:sage [2017/03/05(日) 10:58:54.48 ID:w6jz+T9vr.net]
>>544が説明不足なんじゃなくて
ビルダーパターンと言う言葉を覚えて
レスも良く読まずに単語レベルで反応したアホがいるだけ

559 名前:デフォルトの名無しさん (ワッチョイ 9fc1-OGW1) mailto:sage [2017/03/05(日) 11:13:35.88 ID:gIuIuvFQ0.net]
Engineにコピーコンストラクタかムーブコンストラクタ作って、CarにEngineを受け取るコンストラクタを作る

Initializeメソッド付けるのは「オブジェクトを作ったら必ずInitializeを呼ぶ」ってルールを守らなきゃ使えないクラスになるから好み分かれると思う

560 名前:デフォルトの名無しさん (オッペケ Sref-n7ZK) mailto:sage [2017/03/05(日) 11:45:46.07 ID:w6jz+T9vr.net]
デフォルトコンストラクターを作ることがはばかられる質問者は
ムーブコンストラクターを作ることができない可能性がある
という発想には至らなかったようだ



561 名前:デフォルトの名無しさん (ワッチョイ 1f59-NqFr) [2017/03/05(日) 11:55:22.78 ID:69Hgyfek0.net]
ラムダ式でやろう
class Car{
t toruku{ 100 };
n nenpi{ 200 };
Engine e{ [](auto&& toruku, auto&& nenpi){ return { toruku * 2, nenpi * 3 }; }( this->toruku, this->nenpi ) };
};

562 名前:デフォルトの名無しさん (ワッチョイ 5b8b-M3Ci) mailto:sage [2017/03/05(日) 11:55:25.99 ID:uSZUgTTE0.net]
>>546
その設計はEngineの宣言(Engiine e;)からe.Initialize()呼び出しまでの間を持たせるために、
Engineに無理矢理デフォルトコンストラクタを付ける設計変更を要す、

仮にInitialize()をeではなくファクトリメソッドとするなら
>>540にてすでに
>unique_ptrに変更する?
としてすでに言及されているパターンと実質同じなのでは…

563 名前:デフォルトの名無しさん (ワッチョイ 5b8b-M3Ci) mailto:sage [2017/03/05(日) 11:58:09.92 ID:uSZUgTTE0.net]
>>548
横だがおk

564 名前:デフォルトの名無しさん (ワッチョイ 9fc1-OGW1) mailto:sage [2017/03/05(日) 12:18:26.47 ID:gIuIuvFQ0.net]
>>549
デフォルトコンストラクタが作れないケースとムーブ

565 名前:(コピー)コンストラクタが作れないケースは全く違うと思うけど、どうしてそんな可能性があるって発想に至ったの? []
[ここ壊れてます]

566 名前:デフォルトの名無しさん (ワンミングク MM3f-QRNW) mailto:sage [2017/03/05(日) 12:23:52.28 ID:h33ckUPTM.net]
俺はいつもコンストラクタは
デフォルトコンストラクタ(必要に応じて)
コピコン、ムブコン
メンバをすべて受け取るコンストラクタ
しか作らんけどなぁ

メンバを作るのが少しでもややこしければstaticなcreateみたいなの作ってそこでメンバ作る

567 名前:デフォルトの名無しさん (ワンミングク MM3f-QRNW) mailto:sage [2017/03/05(日) 12:26:06.75 ID:h33ckUPTM.net]
あと、ポインタで持つのはポリモーフィズムを期待するときだけだわ
C++でnullにしておきたいからポインタにするってなんかへんじゃね?
使うとき毎回nullチェックするポリシーも一緒に維持しないといけなさそう

568 名前:デフォルトの名無しさん (ワッチョイ 1f3c-Y1yA) mailto:sage [2017/03/05(日) 12:49:35.40 ID:f7+gl1ia0.net]
>>553
違うから可能性がない
とでも言うのか?
そのクラスは触れないだろうな
って考えるのが普通だと思うが

569 名前:デフォルトの名無しさん (ワッチョイ 5b8b-M3Ci) mailto:sage [2017/03/05(日) 13:05:22.78 ID:uSZUgTTE0.net]
>>544
>eを初期化するのに
>. 適切なトルクの計算;
>. 適切な燃費の計算;
>. e = Engine(トルク, 燃費);
>とかしないといけなかった
がデフォルトコンストラクタの追加が困難な理由を表してゐる、

次は>>566がコピーコンストラクタやムーブコンストラクタの追加が困難な理由を説明する番なのでは…

570 名前:デフォルトの名無しさん (ワッチョイ 9fc1-OGW1) mailto:sage [2017/03/05(日) 13:18:33.58 ID:gIuIuvFQ0.net]
どこの世界の普通だそれ…
Engineが仕事上触れないなら諦めてポインタで持つしか無いんじゃね
Carの初期化時点(コンストラクタ呼び出し時点)ではEngineは初期化するための情報が無いんだから、コンストラクタの中かInitialize関数かで後から初期化するしか無いでしょ
>>550のラムダ式が使えればそれでも出来そうに見えるけど、initializer_listってこんな使い方できたっけ?



571 名前:デフォルトの名無しさん (ワッチョイ 8b7b-ERAc) [2017/03/05(日) 13:39:08.47 ID:qOQ2PN1U0.net]
class Car{
static double 燃費計算();
static double トルク計算();
Engine e;
public:
Car():e(トルク計算(),燃費計算()){}
};

これだけの話じゃねえの?

572 名前:デフォルトの名無しさん (ワッチョイ 5b8b-M3Ci) mailto:sage [2017/03/05(日) 13:41:57.26 ID:uSZUgTTE0.net]
>>559はCarクラスにエンジンの詳細(燃費計算()とかトルク計算())を含める設計に何の疑問も抱かないのか…

573 名前:デフォルトの名無しさん (ササクッテロリ Spef-OGW1) mailto:sage [2017/03/05(日) 13:44:52.75 ID:rDGU9DZ0p.net]
>>559
Engineクラスを触らない前提ならこれでいいな

574 名前:デフォルトの名無しさん (ワッチョイ 8b7b-ERAc) [2017/03/05(日) 13:44:54.60 ID:qOQ2PN1U0.net]
>>560
例えでしかないんだから細かいところにつっこみ入れてもしょうがないだろ?

575 名前:デフォルトの名無しさん (ワッチョイ 5b8b-M3Ci) mailto:sage [2017/03/05(日) 13:47:42.42 ID:uSZUgTTE0.net]
Carクラスにstaticメソッドでエンジンの詳細を持たせる結果、
>>561が指摘するようにCarクラスのエンジン換装を不可能にしておいて
「細かいところ」とのたまう神経の図太さは
そのうち大成するやつかもわからんね…

576 名前:デフォルトの名無しさん (スププ Sd3f-OGW1) [2017/03/05(日) 14:06:10.31 ID:HN9/KcX+d.net]
CD-R

577 名前:デフォルトの名無しさん (ワッチョイ 1f3c-Y1yA) mailto:sage [2017/03/05(日) 14:16:16.25 ID:f7+gl1ia0.net]
>>557
頭大丈夫?
初期値が与えられていない状態にするって言うディフォルトコンストラクタなんていくらでもあるぞ
そんなのはディフォルトコンストラクタが作れない理由になんてなってない

578 名前:デフォルトの名無しさん (ササクッテロリ Spef-OGW1) mailto:sage [2017/03/05(日) 14:25:52.76 ID:rDGU9DZ0p.net]
設計上の理由とか仕事の分担上の理由とか工数的な理由とか、その時々で選択される結果は違うから色んな案が出るのは良いと思うんだけどさ
全く案出さないでひたすら回答にケチ付けてるだけの奴は何なのよ

579 名前:デフォルトの名無しさん (ワッチョイ ef1d-NqFr) mailto:sage [2017/03/05(日) 16:05:02.59 ID:35hcvBBa0.net]
このスレッドでいいのかどうかわからないのですが、
皆さんのお知恵を拝借させてください。

当方自作PCにてWindows10 Pro 64bit環境を使用しておりますが、
PCゲームでWorld of Warshipsというゲームをやっています。
ところが、先月半ばからCPUに過度の負荷がかかるようになり、
原因をいろいろと調べていたところ、起動中のCPUプロセスを詳細に調べることになり、
Process Explorerというソフトでゲーム起動中のプロセスを詳しく見てみたんですが、
動作中に「MSVCR110.dll」というファイルへのアクセスが集中し、同じプロセスが5つ以上、
それも1つにつきCPU占有率5%以上使う状態なんです。

正常稼働時↓
www.dotup.org/uploda/www.dotup.org1176183.jpg

以上稼働時↓
www.dotup.org/uploda/www.dotup.org1176184.jpg
www.dotup.org/uploda/www.dotup.org1176185.jpg

同じゲームをプレイしているWin7使用中の友人のPCには、
そもそもこの「MSVCR110.dll」というファイル自体が出てきませんでした。
これはOS標準搭載以外のMS製アプリが一つも入ってないからだと考えられ、
尚且つ、名前からしてVisual C++関連のファイルだと思われます。

なぜこれだけ負荷がかかるようになってしまうのか、
どなたかこの状況をご理解頂ける方いらっしゃるでしょうか?
ご意見をお伺いできれば幸いです。
よろしくお願いします。

580 名前:デフォルトの名無しさん (ワッチョイ 9fc1-OGW1) mailto:sage [2017/03/05(日) 16:28:50.51 ID:gIuIuvFQ0.net]
C++ってキーワードでここに来たんだと思うけど、残念ながらスレ違い、ゲームの本スレとかで聞くのが良いんじゃないか
一応エスパーで回答するなら、セキュリティソフトに邪魔されて負荷上がってるってのが考えられるから、一旦セキュリティソフトを止めるなり例外設定するなりして試してみては



581 名前:デフォルトの名無しさん (ワッチョイ ef1d-NqFr) mailto:sage [2017/03/05(日) 18:38:44.74 ID:35hcvBBa0.net]
>>568

スンマセン、ゲーム本スレと質問スレで書き込んだら
「スレ違い。自作板のWindowsスレかC++スレ行け」と言われたとです(´・ω・`)

582 名前:デフォルトの名無しさん (ワッチョイ ab7b-8nUV) mailto:sage [2017/03/05(日) 19:42:29.47 ID:hQyyoOdR0.net]
>>569
ローカルルールくらい読みなさい
ここはプログラムを作る人のための板
プログラムを作る人になりたいのなら、まず本屋に行って入門書かって自習してから出直しなさい

583 名前:デフォルトの名無しさん (ワッチョイ bb22-jbjN) mailto:sage [2017/03/05(日) 20:40:15.08 ID:N295BQKw0.net]
>>567
visual c++を動かすためのランタイムだからそれ自体が原因ではないと思う

584 名前:デフォルトの名無しさん (ワッチョイ 6bf2-Guy/) [2017/03/05(日) 21:59:02.84 ID:89WGHivw0.net]
署名んとこ見る限り自分ところでカスタマイズしたRuntimeDLL使ってるのか?
公式フォーラムで聞くか直接開発に問い合わせた方がいいんじゃね?普通に考えて

585 名前:デフォルトの名無しさん (ワッチョイ dbc9-n7ZK) mailto:sage [2017/03/05(日) 22:58:25.66 ID:9n7ykkeL0.net]
>自分ところでカスタマイズしたRuntimeDLL

普通に考えるとACCSに通報ではないのか

586 名前:デフォルトの名無しさん (ワッチョイ 1f7f-RJLO) mailto:sage [2017/03/06(月) 02:22:12.19 ID:sc7bChPJ0.net]
ttp://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0352r1.pdf
に "An implementation using Clang is being worked on." ってあるけど
どこにおいてあるのん?使いたくて震える

587 名前:デフォルトの名無しさん (ワッチョイ 1f7f-RJLO) mailto:sage [2017/03/06(月) 02:42:26.15 ID:sc7bChPJ0.net]
ttp://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0352r0.pdf
の方に書いてあったのね……スミマセソ

588 名前:デフォルトの名無しさん (スップ Sd3f-cA0b) [2017/03/06(月) 17:42:12.10 ID:/kAc8Ta7d.net]
std::mt19937 r(?);
std::uniform_int_distribution<> d(0, 100);
for(int i=0;i<100;++i){
d(r);
}
としないと正しく分布しないですか?

std::mt19937 r(?);
for(int i=0;i<100;++i){
std::uniform_int_distribution<> d(0, 100);
d(r);
}
これでは駄目ですか?

589 名前:デフォルトの名無しさん (ワッチョイ 5fd4-NqFr) mailto:sage [2017/03/06(月) 19:02:57.23 ID:qCc5lDaQ0.net]
どっちでもいいんじゃね

590 名前:デフォルトの名無しさん (ブーイモ MMaf-5QEK) mailto:sage [2017/03/06(月) 20:41:36.90 ID:l2uOsbFVM.net]
仕様読んでないけど擬似乱数列じゃ毎回同じ値がかえるんじゃないの?



591 名前:デフォルトの名無しさん (ブーイモ MMaf-5QEK) mailto:sage [2017/03/06(月) 20:43:46.97 ID:l2uOsbFVM.net]
おおっと、乱数生成器自体を渡してるのか。失礼しました

592 名前:デフォルトの名無しさん (ワッチョイ 0f24-T7IB) [2017/03/06(月) 21:06:44.06 ID:DwMqYVii0.net]
あふぉ

593 名前:デフォルトの名無しさん (ワッチョイ 5b30-EN75) mailto:sage [2017/03/06(月) 22:21:57.67 ID:CDqSwP280.net]
>>576
distribution自体も値を返すごとに変化する内部状態を持ち
同じパラメータで構築されたものは同じ内部状態から始まるという規格の意味を考えると
一般論としては下の方はダメだろう

594 名前:デフォルトの名無しさん (オッペケ Sref-n7ZK) mailto:sage [2017/03/06(月) 22:35:23.34 ID:AKQMS70er.net]
>同じパラメータで構築されたものは同じ内部状態から始まる

distributionがそんな仕様なら
むしろ後者の方が望ましくね?

595 名前:デフォルトの名無しさん (ワッチョイ 8b7b-ERAc) [2017/03/06(月) 22:46:29.85 ID:k6KUwGnB0.net]
コンストラクタで渡した範囲を使わず引数に渡した範囲を使うオーバーロードもあるし、distributionに使わなかったランダムビット値とかの値を残してたら引数で毎回random_engine渡す意義が薄れてきちゃう気がするよね

596 名前:デフォルトの名無しさん (ワッチョイ cb3c-m4jB) [2017/03/07(火) 15:47:09.58 ID:3Q65RUMW0.net]
typedef int* intPtr;
const intPtr hoge;
としたとき
const int* hogeではなくint* const hogeになるのがピンと来ません

597 名前:デフォルトの名無しさん (ワントンキン MM3f-QRNW) mailto:sage [2017/03/07(火) 16:11:26.13 ID:q3Kp0vdwM.net]
>>584
int*
int const*
は別の型だから

int*
int* const
は同じ型だけどconst性の違いがある

598 名前:デフォルトの名無しさん (ワッチョイ 0f24-T7IB) [2017/03/07(火) 18:02:33.74 ID:O/JMqbZP0.net]
>>584
そのconstはintPtrを修飾するだけで、
intPtrの内容は変更できないからだ

intPtrは「非constのintへのポインタ」となっていて
当たり前だがhogeは非constしか指せないポインタになる

おまえさんが付けたconstは*hogeではなくhoge自身を修飾するということだ

599 名前:デフォルトの名無しさん (ワッチョイ cb3c-m4jB) [2017/03/07(火) 19:43:03.39 ID:3Q65RUMW0.net]
>>585-586
マクロみたいにただキーワードを置き換えるんじゃなくて
あくまでも型の定義ってことか
なんとなくわかったようなわからないようなって感じだが
参考になったありがとう

600 名前:デフォルトの名無しさん (ワッチョイ 6bf2-Guy/) [2017/03/07(火) 20:00:54.12 ID:JY4xO0gD0.net]
std::allocatorなんかでもconst_pointerの定義があるし、別途typedefしてくださいって感じなんだろうね



601 名前:デフォルトの名無しさん (アウアウカー Sa6f-tCEH) mailto:sage [2017/03/07(火) 21:59:10.88 ID:GF7WqcJ3a.net]
>>587
構文上の結合の優先順位を理解すれば、複雑な型宣言の意味も理解できるようになるよ。

602 名前:デフォルトの名無しさん (オッペケ Sref-n7ZK) mailto:sage [2017/03/08(水) 00:23:57.60 ID:bj8U/UPWr.net]
typedefがただのキーワード置換でないことに気づいた>>587に対して
>>589は未だにただのキーワード置換と考えているように思えてならない

603 名前:デフォルトの名無しさん (ワッチョイ 0f24-T7IB) [2017/03/08(水) 09:15:55.94 ID:DNe+L ]
[ここ壊れてます]

604 名前:f9O0.net mailto: 確かにw []
[ここ壊れてます]

605 名前:デフォルトの名無しさん (ブーイモ MMaf-x83U) mailto:sage [2017/03/08(水) 09:58:21.79 ID:pkIkDwj+M.net]
あれ、const int*とconst intPtrって同じにならなかったっけ?

606 名前:デフォルトの名無しさん (ワッチョイ 0f24-T7IB) [2017/03/08(水) 10:24:26.87 ID:DNe+Lf9O0.net]
おまえもしかして intPtr a, b; が int* a, b; になるとでも思ってる?

607 名前:デフォルトの名無しさん (ワッチョイ eb9b-x83U) mailto:sage [2017/03/08(水) 10:35:12.10 ID:qFksyWqq0.net]
それとはまた別の話じゃ?

608 名前:デフォルトの名無しさん (ワッチョイ 1fcc-+LoG) mailto:sage [2017/03/08(水) 10:45:04.43 ID:EeDAfYl90.net]
>>592
ポインタに対してのconstだからint const*

609 名前:デフォルトの名無しさん (ブーイモ MMaf-x83U) mailto:sage [2017/03/08(水) 11:04:02.79 ID:pkIkDwj+M.net]
おっと勘違いして覚えてた
これは恥ずかしい、間違えて使ってたかも

でも間違えてたらコンパイルエラーが出そうなもんだけど
なんで今まで気がつかなかったんだろう…

610 名前:デフォルトの名無しさん (ワッチョイ eb7b-2BvX) mailto:sage [2017/03/08(水) 11:14:36.06 ID:VyuA3yza0.net]
なわけで
int* a, b; じゃなくて int *a,b; だよなぁ
とここ30年w



611 名前:デフォルトの名無しさん (ササクッテロロ Spef-prdN) mailto:sage [2017/03/08(水) 13:43:48.82 ID:SntjmOAop.net]
constは後ろに付けるのが本来なんだよ。
自信が無いなら先頭につけるのをやめれば間違わない。

>>595
int *const
じゃねーの?

612 名前:デフォルトの名無しさん (ワッチョイ 0f24-T7IB) [2017/03/08(水) 14:57:04.07 ID:DNe+Lf9O0.net]
あのなあ。。。
ずっこけた状態からもっとずっこけるのは苦痛を伴うんだぞ

613 名前:デフォルトの名無しさん (ブーイモ MMaf-R7fB) mailto:sage [2017/03/08(水) 17:54:01.46 ID:xABa9dNGM.net]
int const * constでおk

614 名前:デフォルトの名無しさん (ワッチョイ eb7b-2BvX) mailto:sage [2017/03/08(水) 18:00:06.17 ID:VyuA3yza0.net]
* の前につけるか後につけるかですな

615 名前: ◆QZaw55cn4c (ワッチョイ ab85-GPt5) mailto:sage [2017/03/08(水) 18:08:42.38 ID:/EX97NIO0.net]
int * const p
int const *p
int const * const p
のどれかは使うが
const int *p
はやらない、これっていったい上の三つのうちのどれになるの?なんでそうなるの?

616 名前:デフォルトの名無しさん (ドコグロ MM2f-gAk7) mailto:sage [2017/03/08(水) 18:22:24.19 ID:dlE+7VUyM.net]
StackOverflowにあった。
stackoverflow.com/questions/1143262/what-is-the-difference-between-const-int-const-int-const-and-int-const

617 名前:デフォルトの名無しさん (ブーイモ MMaf-5QEK) mailto:sage [2017/03/08(水) 18:43:43.95 ID:zA3nyedyM.net]
>>603
これは分かり易いw

618 名前:デフォルトの名無しさん (ワッチョイ 3b0e-RhaL) mailto:sage [2017/03/08(水) 18:44:03.44 ID:vi7wbAYy0.net]
>>602
3番目は使わんな
参照先変えないならもう参照でいいじゃない

619 名前:デフォルトの名無しさん (ワッチョイ 1fcc-+LoG) mailto:sage [2017/03/08(水) 21:11:05.22 ID:EeDAfYl90.net]
>>598
うむ、少し間違えた

620 名前:デフォルトの名無しさん (ワッチョイ 1fa9-sdpt) mailto:sage [2017/03/08(水) 21:28:15.23 ID:LYwYML6D0.net]
>>602
C の syntax を↓で済ませた結果、各 specifier, qualifier は順不同となった。
declaration:
 declaration-specifiers init-declarator-list(opt);
declaration-specifiers:
 storage-class-specifier declaration-specifiers(opt)
 type-specifier declaration-specifiers(opt)
 type-qualifier declaration-specifiers(opt)



621 名前:デフォルトの名無しさん (ワッチョイ af3c-csvI) mailto:sage [2017/03/09(木) 08:16:39.62 ID:P4eVvEWq0.net]
「cv修飾は左を修飾し、一番左に書いたときだけ例外的に右を修飾する」
という認識で10年以上問題なかった、仕様書でどうなってるかは知らんけど

622 名前:デフォルトの名無しさん (オッペケ Sr57-Yz8R) mailto:sage [2017/03/09(木) 08:46:08.19 ID:nspN5S3gr.net]
そんなはずもなし
unsigned volatile const inline int static long *f();

623 名前:デフォルトの名無しさん (ワッチョイ 2353-pXJL) mailto:sage [2017/03/10(金) 02:51:41.08 ID:DVnkldFi0.net]
>>602
>const int *p
>はやらない、これっていったい上の三つのうちのどれになるの?なんでそうなるの?

マジか const char * なんて毎日数え切れないほど使ってるわ

624 名前:デフォルトの名無しさん (ワッチョイ cff2-j8zu) [2017/03/10(金) 08:56:27.34 ID:B+GguKA+0.net]
const v(^・^)v const

625 名前:デフォルトの名無しさん (ササクッテロル Sp57-f3f6) mailto:sage [2017/03/10(金) 17:04:19.46 ID:Pyfb9YNwp.net]
久々にC弄ったから何となく覗いてみたらconstの話しかしてなくて草

626 名前:デフォルトの名無しさん (ワッチョイ 362b-2hGO) mailto:sage [2017/03/10(金) 18:09:34.58 ID:wy5WfeUq0.net]
const仙人のお出ましだぞ
彼がconstの全てを知ってるらしい

627 名前:デフォルトの名無しさん (オッペケ Sr57-Yz8R) mailto:sage [2017/03/10(金) 18:35:53.93 ID:9izzFXDGr.net]
>>585
>同じ型だけどconst性の違いがある

どこでそんなデタラメを覚えた?

628 名前:デフォルトの名無しさん (ワッチョイ 72cc-hLcU) mailto:sage [2017/03/10(金) 18:47:49.20 ID:OJfHMNpa0.net]
君達、物事はコンスタントに解決することが重要だよ?わかてる?

629 名前:デフォルトの名無しさん (オッペケ Sr57-Yz8R) mailto:sage [2017/03/10(金) 19:03:11.58 ID:9izzFXDGr.net]
>>598
>constは後ろに付けるのが本来なんだよ

ソースは?

630 名前:デフォルトの名無しさん (ワッチョイ f27f-uSLp) mailto:sage [2017/03/10(金) 19:23:12.52 ID:ZjsFj1+i0.net]
>>614
後者では型が修飾されているんじゃなくて変数が const 修飾されている
ということを言いたかったんじゃない?実際

int * a;
int * const b = hoge();
a = b;

はちゃんと通るし。
まあたしかに「同じ型」だと言っていいのかはよくわかんないけど。



631 名前:デフォルトの名無しさん (ドコグロ MMca-TLcY) mailto:sage [2017/03/10(金) 20:18:18.69 ID:HUvVedpnM.net]
>>603のClockwise/Spiral Ruleに異論のある人、居る?

632 名前:デフォルトの名無しさん (ブーイモ MM2b-4Oo7) mailto:sage [2017/03/10(金) 20:38:11.10 ID:K2NxcqGZM.net]
>>618
1つ目の回答のほうが2つ目の回答(スパイラル)より12倍投票数が多いぞ

633 名前:デフォルトの名無しさん (オッペケ Sr57-Yz8R) mailto:sage [2017/03/10(金) 20:56:02.79 ID:9izzFXDGr.net]
>>617
>型が修飾されているんじゃなくて変数が const 修飾されている

などという空想がどこから湧いてきたのか疑問なのだが
ideone.com/dWfpAT

634 名前:デフォルトの名無しさん (オッペケ Sr57-Yz8R) mailto:sage [2017/03/10(金) 20:59:13.64 ID:9izzFXDGr.net]
>>618
まず「clockwise」と言うあたりでオツムが論理的思考に弱いことは明らか

635 名前:デフォルトの名無しさん (ワッチョイ 72c9-qJ3d) mailto:sage [2017/03/10(金) 21:00:42.90 ID:6ypCkPMo0.net]
>>617の理屈だと、
char c;
int i;

これらは同じ型で変数が修飾されてるだけだよ。
実際、

int i;
char c = 3;
i = c;

はちゃんと通るし。
などとも言える。

636 名前:デフォルトの名無しさん (ワッチョイ 723c-ezmg) mailto:sage [2017/03/10(金) 22:22:44.73 ID:PT1UnLZa0.net]
>>620
int const *p
int * const p
の違いもわからんアホは ROM っとけ

637 名前:デフォルトの名無しさん (ワッチョイ 52c0-/Xhi) mailto:sage [2017/03/11(土) 00:12:59.12 ID:XUJAp/M10.net]
ROMはconst

638 名前:デフォルトの名無しさん (ワッチョイ 138b-ldtI) mailto:sage [2017/03/11(土) 06:32:47.43 ID:JvHBeRgs0.net]
ちょっおまwwwwwwww
C++のBNFにtype-qualifierというのはあっても
variable-qualifierとかobject-qualifierとかは無いはず…
>>622のは単に変数のdeclaration
(文脈によっては変数の定義にもなる

639 名前:デフォルトの名無しさん (ワッチョイ d2d1-qBYI) mailto:sage [2017/03/11(土) 06:50:46.51 ID:2/ZkR35y0.net]
ちょっおま
って久しぶりに聞いたわ

640 名前:デフォルトの名無しさん (ワッチョイ 7f4a-/Xhi) mailto:sage [2017/03/11(土) 09:06:46.34 ID:h5T3JHpB0.net]
>>616
二度漬け禁止



641 名前:デフォルトの名無しさん (ワッチョイ f64a-JiRs) mailto:sage [2017/03/12(日) 07:41:49.43 ID:nkYFQTVc0.net]
Visual studio express 2013において、if文以外(変数にデータを代入するとき)に==と書いた時にエラーを返すようにしたいのですが、出来ますか?
(a == 1;と書いた時にコンパイルするとエラーを返すようにするといった感じです)
if文の判定式をコピーした結果、この==を1つにし忘れたため、しばらく困ったのと
現状において、整数への代入で==を使うことが無いので、エラーを出すようにしたいのです

642 名前:デフォルトの名無しさん (ワッチョイ f64a-JiRs) mailto:sage [2017/03/12(日) 08:58:04.75 ID:nkYFQTVc0.net]
すみません、スレ違いでした

643 名前:デフォルトの名無しさん (ワッチョイ 723c-4mgA) mailto:sage [2017/03/12(日) 09:50:45.60 ID:6iMHIBm50.net]
>>628
プロジェクトのプロパティ
>構成プロパティ >C/C++ >詳細設定
特定の警告をエラーとして扱う に 4553 を設定すればいい
(もしくは、コンパイルオプションの /we"4553" を指定)

そうすると
warning C4553: '==': 演算子にプログラム上の作用がありません。'=' を意図しましたか?
のエラーになる。

644 名前:デフォルトの名無しさん (ワッチョイ 138b-ldtI) mailto:sage [2017/03/12(日) 12:13:57.19 ID:OaInj5Km0.net]
「警告レベル」を「Level4 (/W4)」、「警告をエラーとして扱う」を「はい (/WX)」にしたらもっと広範にやってくれてスゲー便利

645 名前:デフォルトの名無しさん (ワッチョイ f64a-JiRs) mailto:sage [2017/03/12(日) 17:42:24.65 ID:nkYFQTVc0.net]
>>630,631
本当に有難う御座いました!!
c++に明るくなく、これに気づかなかったせいで丸三日潰れて困り果てていたのですが、c++系の専門用語が分か

646 名前:轤ネいのと
「c++ ==」といったワードで検索しても記号系のワードが省かれるからか、ヒットせずとても困っていました
[]
[ここ壊れてます]

647 名前:デフォルトの名無しさん (スプッッ Sdb2-K8Mp) mailto:sage [2017/03/13(月) 07:13:56.93 ID:Butu4pJYd.net]
MultiByteToWideCharの1つ目の引数のコード表と二つ目の引数のフラグセットの意味を教えてくれませんか
コード表の意味はなんとなくわかるんだけどそれが使用してたコード表についてなのか、それとも変換先なのかがわからない...

648 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd92-SsNB) mailto:sage [2017/03/13(月) 13:07:11.48 ID:VNPYsRzKd.net]
>>633
WindowsのUnicodeには、UTF-16が使われている。コードページは、UTF-16以外のマルチバイト文字列の符号化の種類を表している。第2引数についてはUnicodeの基本を勉強してから用語を確認せよ(英語のMSDNページを参照)。

649 名前:デフォルトの名無しさん (ワッチョイ f3c9-Yz8R) mailto:sage [2017/03/13(月) 16:29:57.33 ID:Kr7xjXLG0.net]
Unicode 9.0のCore Specification D63ではprecomposedとcompositeが同義と読めるがMSDNは異なる使い方をしているな
combining(結合)と間違えたように思える
これでは>>633は理解不能

650 名前:デフォルトの名無しさん (ワッチョイ f3c9-Yz8R) mailto:sage [2017/03/13(月) 21:12:59.84 ID:Kr7xjXLG0.net]
>>633
WindowsのMultiByteToWideCharは「何らかの文字コード」をwchar_t(UTF-16)文字列に変換するもの
変換元の文字コードが何であるかを指定するのが第一引数
例えば932(シフトJIS)、65001(UTF-8)
変換の動作を指定するのが第二引数
例えばMB_ERR_INVALID_CHARSは少しでも不正なバイトシーケンスがあれば全体をエラーとする



651 名前:デフォルトの名無しさん (ワッチョイ f27f-6H1t) mailto:sage [2017/03/15(水) 02:37:25.64 ID:8rrA/zgU0.net]
>>620
ってどういう意図のレスだったの?理解がまったくできないんだけど

652 名前:デフォルトの名無しさん (スプッッ Sdb2-K8Mp) mailto:sage [2017/03/15(水) 17:59:26.07 ID:wfaQCMr9d.net]
>>634-636
たすかりもうした
おかげでコード上手くかけたので助かりました






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<322KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef