[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2ch.scのread.cgiへ]
Update time : 02/19 06:26 / Filesize : 129 KB / Number-of Response : 496
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

【初心者歓迎】C/C++室 Ver.97【環境依存OK】



1 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 07:10:18.03 ID:47QFVOwL.net]
エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。

◆ソースのインデントについて
半角空白やTABでのインデントはスレに貼ると無くなります。
そのため、アップローダーに上げるのも手ですが直接貼る場合は、
全角空白か に置換すると見栄えだけはよくなります。

【アップローダー】(質問が長い時はココ使うと便利)
codepad.org/ (コンパイルもできるし出力結果も得られる[]privateをチェック)
ideone.com/ (時間帯によってはcodepadが重い事があるのでここも利用)

前スレ
【初心者歓迎】C/C++室 Ver.96【環境依存OK】
peace.2ch.net/test/read.cgi/tech/1433514467/

243 名前:デフォルトの名無しさん mailto:sage [2016/01/01(金) 14:33:27.43 ID:yq6n8seg.net]
データ部分を二次元コレクションに格納
ヘッダ部分をヘッダ名->インデックスのディクショナリに格納
おしまい

244 名前:デフォルトの名無しさん mailto:sage [2016/01/01(金) 21:33:51.36 ID:7oU3J/K5.net]
>>242
それだと、列が増えたりする度に定義ソースを書き換えるような…

>>243
すみません、二次元コレクション調べたのですがイミフでした。
にわかなもので、すみません。


const しているのを変数にして、
一番最初に列の名前の場所を動的に拾い、
構造体に放り込んでみます。

みなさん、ありがとうございました。

245 名前:デフォルトの名無しさん mailto:sage [2016/01/01(金) 22:01:13.16 ID:NO+H6ZMg.net]
>>244
> それだと、列が増えたりする度に定義ソースを書き換えるような…

当然「動的」に作るってこと

>>243
> ヘッダ部分をヘッダ名->インデックスのディクショナリに格納

と同じことを言っている

246 名前:デフォルトの名無しさん mailto:sage [2016/01/01(金) 22:22:51.52 ID:dF7ELeO+.net]
.NetのDataTableをパクったクラスを作る
ファイルからデータを読み込んで上記クラスのインスタンスに格納する
以上

247 名前:デフォルトの名無しさん mailto:sage [2016/01/01(金) 23:36:34.95 ID:9DJLBWi4.net]
>>241
>一応できているのですが、もっと良い方法はないでしょうか

いえそれが最善です
>>242-246のたわごとは無視して下さい

248 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 18:39:57.59 ID:nW8KZWOh.net]
#include <iostream>

class A {
public:
A(){}
~A(){}
int i:1;
};

int main(int argc, char const* argv[])
{
A a;
std::cout << a.i ;//0

return 0;
}

UE4のソース見ていると、
メンバ変数末尾に:がついたコードがあるんですが一対何なんでしょう

なぜコンパイルエラーにならないのか?

UEヘッダーツールで後々セッティングするための記述なんでしょうか?
よろしくお願いします

249 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 18:42:48.44 ID:5/Tw741l.net]
ビットフィールド知らんのか

250 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 18:49:51.57 ID:BIgpFdUh.net]
>UE4のソース見ていると

自分が知っているものを他人も知っている前提で物申すな低能

251 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 18:51:55.62 ID:nW8KZWOh.net]
ありがとうございます
使ったことなかったので知りませんでした

どこかで聞いたことぐらいはあったかも知りませんが、
いまいちぐぐり方が難しいので助かりました
C++ デフォルト メンバ変数 : とか結構見当違いな方向でぐぐってました

ありがとうございました



252 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 19:03:02.99 ID:9k2o+ba6.net]
ビットフィールドってなんだっけ?と数秒w
思えば一回も使った事ないです。

253 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 20:09:45.36 ID:Ko89Gf9x.net]
>>250
レスにソース書いてあるのに何を言ってるんだよ

254 名前:デフォルトの名無しさん mailto:sage [2016/01/05(火) 18:38:18.23 ID:zgQ43Iu9.net]
答え:SQLiteを使う

255 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 20:37:47.38 ID:gc7pwQgr.net]
int func(Form^ form);

この^記号ってどういう意味?

256 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 20:39:12.47 ID:yJqiucPC.net]
>>255
それは別の言語だからVisual C++ C++/CLI関連のスレで訊け

257 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 20:41:04.59 ID:h+RBpIK2.net]
| が bit毎or で & が bit毎のand であるように、
^ は bit毎の xor

258 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 20:48:43.06 ID:/U+i+vMx.net]
>>255-257
いや 2項演算子じゃないぞ
C++/CLI のハンドル型とかいうポインタ(*)の変形らしい

259 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 20:51:12.19 ID:h+RBpIK2.net]
あー 関数宣言記述での話だったか
頭の int が見えてなかった
ありがとね >>258

260 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 20:59:30.22 ID:2h/9GNmm.net]
>>257-259はQの自演

261 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 21:03:02.67 ID:h+RBpIK2.net]
俺 Qz 認定かー なけるorz



262 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 23:39:42.16 ID:WIwHnmZz.net]
別の言語だったんかい

263 名前:デフォルトの名無しさん mailto:sage [2016/01/11(月) 13:29:58.86 ID:VxUMtYXU.net]
#define template_key_value <K, V>

template template_key_value
class MapA {};

template template_key_value
class MapB {};

これと同じことをより安全に実現する方法って有りますか?

264 名前:デフォルトの名無しさん mailto:sage [2016/01/11(月) 13:41:04.34 ID:IUrb95R1.net]
>>263
何も危険なことなんて無いような?

そのままじゃコンパイル通らないけど、そこが問題でも無いだろうし。
クラス定義が空だからテンプレートにする意味が無さそうだけど、そういう話でもないだろうし。
何がしたいのかよくわかんない。

265 名前:デフォルトの名無しさん mailto:sage [2016/01/11(月) 15:45:01.43 ID:NVJocn8Z.net]
CPPを使う意味が分からない

266 名前:デフォルトの名無しさん mailto:sage [2016/01/11(月) 22:00:19.19 ID:E66NlO7o.net]
>>265
visual studio使えば自動的にc++やん

267 名前:デフォルトの名無しさん mailto:sage [2016/01/12(火) 00:23:03.57 ID:fG9YW/Cm.net]
>>266
…??

268 名前:デフォルトの名無しさん mailto:sage [2016/01/12(火) 00:34:18.71 ID:wtMUPjLq.net]
>>267
VisualStudio使ったこと無いの?
昔から.cppを使う慣習があって、VisualStudio含むいくつかの開発環境ではそれに従うと使いやすくなってるんだよ

269 名前:デフォルトの名無しさん mailto:sage [2016/01/12(火) 00:36:04.73 ID:wtMUPjLq.net]
ああもしかしたら>>265はCPP=Cプリプロセッサの意味か
そうなら紛らわしい書き方すんな

270 名前:デフォルトの名無しさん mailto:sage [2016/01/12(火) 09:32:08.92 ID:gKzzuNPX.net]
約一名がアホな誤解しただけで、紛らわしくはないだろ

271 名前:デフォルトの名無しさん mailto:sage [2016/01/12(火) 11:00:20.32 ID:vQw7MuFL.net]
>>264
すみません書き方間違ってました。
#define template_key_value <typename K, typename V>
template template_key_value class MapA {};
template template_key_value class MapB {};
テンプレートが長く複雑になる場合にわざわざ直書きすると、可読性が悪くなるので別名を付けたいと考えています。
ただC++の世界ではマクロが嫌われているようなので、どうしても以下の様な聞き方を強制されてしまうのです。
template <typename K, typename V> class MapA {};
template <typename K, typename V> class MapB {};



272 名前:デフォルトの名無しさん mailto:sage [2016/01/12(火) 11:16:41.18 ID:zdBaNW7Z.net]
>>271
「嫌われている」から排除を強制と思うのはおかしい。
実際にマクロを使って何が問題なのか、よく考えて判断したほうが自由になれるよ。
使い終わったら #undef してもいいんだぜ。
少なくとも書き込まれた例だけではマクロを使うほどの話とは思わないけど、実際はもっとあるんだろうな。
違いを無視できる話かどうか知らんけど、ひとつのクラステンプレート内にクラスを定義する形でいくらか
マシにできるかもしれない。

273 名前:デフォルトの名無しさん mailto:sage [2016/01/12(火) 12:44:56.38 ID:jL8tZsFO.net]
template <typename K, typename V> class MapA {};
typedef MapA<string, int> MAP_A_1;
typedef MapA<string, string> MAP_A_2;
とかじゃダメなの?

274 名前:デフォルトの名無しさん mailto:sage [2016/01/12(火) 17:49:46.69 ID:rnRes0fv.net]
>>263
言うほど短くならないような。
templateが冗長だから頭のtemplateもマクロに含めたら?

275 名前:デフォルトの名無しさん mailto:sage [2016/01/12(火) 18:50:45.22 ID:ezb8i33T.net]
#define T template
#define L long
#define typename TN

276 名前:デフォルトの名無しさん [2016/01/12(火) 23:47:38.33 ID:9sPejAjF.net]
>>275
(アカン)

277 名前:デフォルトの名無しさん mailto:sage [2016/01/13(水) 13:25:11.31 ID:36fPT7nK.net]
こう書けるのが一番理想だな

template <typename K, typename V> class Map {};
class MapA : Map<K, V> {};
class MapB : Map<K, V> {};

278 名前:デフォルトの名無しさん [2016/01/13(水) 20:41:54.84 ID:kNuNR485.net]
fscanfでcsvファイルからデータを読み出したいのですが、
fscanfの返り値がおかしく、EOFとならずに処理が終了しません。

データの列要素は15なので、返り値も15となるはずなのですが、
「1」と表示されてしまいます。

行は2千万行近くありますが、その値を過ぎても終了しません。

csvファイルのデータ容量は1.42GBあります。
助言宜しくお願いします。

問題だと思われるループとfscanfの部分を記載します。

while(ret=fscanf(fp,

279 名前:デフォルトの名無しさん [2016/01/13(水) 20:44:10.04 ID:kNuNR485.net]
while(ret=fscanf(fp,"%lf,%lf,%lf,%lf,%lf,%lf,%lf,%lf,%lf,%lf,%lf,%lf,%lf,%lf,%lf",&a,&b,&c,
&d[0][0],&d[0][1],&d[1][0],&d[1][1],&d[2][0],&d[2][1],
&e[0][0],&e[0][1],&e[1][0],&e[1][1])!=EOF){

    処理等

}

280 名前:デフォルトの名無しさん mailto:sage [2016/01/13(水) 20:46:51.56 ID:Lg0tGVPB.net]
>>278
fopen(); 付近はどうなってるのか

281 名前:デフォルトの名無しさん [2016/01/13(水) 20:49:56.90 ID:kNuNR485.net]
>>280
すいません書き忘れてました。

FILE *fp

fp=fopen("example.csv","r");

if(fp==NULL){
printf("no file\n");
exit(0);
}



282 名前:デフォルトの名無しさん mailto:sage [2016/01/13(水) 20:50:31.77 ID:Lg0tGVPB.net]
>>279
ああなるほど、fopen関係なさそう。

> while( (ret = fscanf(fp,"…",)) != EOF){
みたいにカッコで明示すべきでは。

というか、それコンパイル通ってるの?

283 名前:デフォルトの名無しさん mailto:sage [2016/01/13(水) 20:50:57.42 ID:XHmQOsbK.net]
とりあえず
while ((ret = fscanf()) != EOF) な
ret = fscanf() != EOF だと fscanf() != EOF の論理演算の結果が ret に入る

csvファイルなら fgets() で行を切り出して sscanf() したほうがよさそう

なお、厳密にやり始めると一文字ずつパースするはめになるだろう

284 名前:デフォルトの名無しさん mailto:sage [2016/01/13(水) 20:52:18.55 ID:Lg0tGVPB.net]
>>282は間違い。コンパイル通るか

285 名前:デフォルトの名無しさん [2016/01/13(水) 20:58:57.11 ID:kNuNR485.net]
retの部分は解決できました。ありがとうございます。
今確認してみたところ、最終行を迎えたあと、fscanfの返り値は0となっていました。

286 名前:デフォルトの名無しさん [2016/01/13(水) 21:02:30.81 ID:kNuNR485.net]
最終行を迎えてもEOFである-1が返ってこない理由としては、どのような理由が考えられるでしょか?

287 名前:デフォルトの名無しさん [2016/01/13(水) 21:09:44.61 ID:kNuNR485.net]
その場しのぎですが、
while((ret=fscanf())!=0)とすることで解決しました。
エクセルファイルの作成方法が間違っていたのかもしれません。
そちらを確認したいと思います。

ありがとうございました。

288 名前:デフォルトの名無しさん mailto:sage [2016/01/13(水) 21:10:13.23 ID:Lg0tGVPB.net]
ret がunsigned とか

289 名前:デフォルトの名無しさん mailto:sage [2016/01/13(水) 21:11:30.82 ID:Lg0tGVPB.net]
ああ>>288は無視して。先程から薬が切れて不安定だな俺は。
>>283だけ見て。

290 名前:デフォルトの名無しさん mailto:sage [2016/01/14(木) 00:45:24.54 ID:guxsAoup.net]
>>285-287
fscanf() の戻り値の仕様見直せ。

291 名前:デフォルトの名無しさん mailto:sage [2016/01/14(木) 07:40:34.39 ID:dQ9Y6guQ.net]
>>1
RPGツクール2000 , RPGツクールMV https://tkool.jp/mv/ ( JavaScript 採用 )

WOLF RPGエディター www.silversecond.com/WolfRPGEditor/

デュエル・マスターズ Android版 ,i-OS版、公式 dm.takaratomy.co.jp/extra/dmapp/entrygate_ds/
デュエル・マスターズ対戦CGI ex
https://web.archive.org/web/20150809154946/www53.atwiki.jp/dmsuishinparty/pages/314.html

デュエル・マスターズ(デュエマ)DM ONLINE 1.8a  /  VanGuard ONLINE 1.5a
https://web.archive.org/web/20150809160254/uhyohyohyo.sak ura.ne.jp/hsp.html

ヴァンガード専用ネット対戦ツール【 VanGuard Online 】
https://web.archive.org/web/20150809155032/kiimaa.jugem.jp/?eid=61

「カードファイト!!ヴァンガード」のネット対戦ができる公式オンラインゲーム「Cardfight!! Online」 2015年冬スタート
https://web.archive.org/web/20150809153724/supersolenoid.blog63.fc2.com/blog-entry-6886.html

遊戯王 Automatic Dueling System
https://web.archive.org/web/20150809164855/www3.atwiki.jp/ads-wiki/pages/20.html

遊戯王 デュエル・オンライン
https://web.archive.org/web/20150809171527/www31.atwiki.jp/vipdo/pages/15.html
https://web.archive.org/web/20140628005202/do.yugioh-portal.net/

ウィクロス( WIXOSS ) WEBXOSS webxoss.com/about_en.html webxoss.com/DeckEditor/

BG(ボードゲーム)Engine https://web.archive.org/web/20151209080842/https://bgengine.net/
https://web.archive.org/web/20151209172205/14owl.hateblo.jp/entry/2015/12/09/011234

アプレンティス  マジック:ザ・ギャザリング(MtG)オンライン化 homepage1.nifty.com/Q_Q/ap.html
https://web.archive.org/web/20151202202725/homepage1.nifty.com/Q_Q/ap.html



292 名前:デフォルトの名無しさん [2016/01/14(木) 07:41:31.92 ID:dQ9Y6guQ.net]
【 オンラインTCGエディター 】   >>1,>>291

デュエル・マスターズ的な非電源TCGの 《 オンライン化ツクール系ソフト 》 制作の企画。

例えば、ガチンコ・ジャッジを直ぐにでも導入できる機能を持っておりながら、
当面それを扱わず単純化させておいて、事後的に導入拡張する際に当該システムを
ブロック構造の組み合わせで後付け挿入できるように予めシステム化してあるソフト(エディター)。
既存の非電源TCGを劣らずに再現できるならば大概のニーズに応えられる筈。
デュエマ、ヴァンガ、ウィクロス、ポケカ、デジモン、ゼクス、モンコレ、旧ガンダム・ウォー、ライブオン、ディメンション・ゼロ、シャーマン・キング、カードヒーローなど
のシステムを完全再現できるように設計するけど、他に此のTCGの此のシステムは再現希望とか有ったら書け。
マジック:ザ・ギャザリングの全システムを完全に再現するのは無理だから、此れだけは必用だ!って部分のみリクエストしろ。
個vs個、多数乱戦、チームvsチーム、個vsチームを実現し、P2P通信対戦プラグイン有り。

設計思想は 《 RPGツクール 》 が良いかな?  他に、優れたエディター有ったら挙げてみろ。

個人や企業などのベンダーが提示する開発費(見積もり)で折り合えば、発注する。

エディター群から基本コンセプトを絞り込む(もちろんオリジナルで優れた新ネタが有れば導入する)。

遊戯王OCGに関しては、タッグフォース、ADS、デュエルオンラインを発注先ベンダーに研究させる。
バトスピ、ヴァンガ、デュエマなど発売済みゲームソフトが存在してるTCGはベンダーに研究させる。

各社TCGを再現するテストプレイ ⇒ 更に改良や修正 + コード記述の仕様書(設計書)を作成。

機能制限した下位版を制作しても原則として発売せず + 上位版デュエリ−グ用でサーバー稼動。

下位版を仮に発売した場合の改造および商用利用には、別途で当社との契約が必要。

さ〜て、インド人ベンダーと日本人の翻訳担当SEを見つけよっと!ww
wc2014.2ch.net/test/read.cgi/entrance2/1451262577/-16

293 名前:デフォルトの名無しさん [2016/01/15(金) 06:36:40.59 ID:KIFGsBEO.net]
>ガチンコ・ジャッジ
これ何?
いかにもDQNあがりのヴァカ企画が付けそうな名前だけど

294 名前:デフォルトの名無しさん [2016/01/15(金) 07:38:29.68 ID:POz82VxF.net]
>>293
ここまで宣伝テンプレ

295 名前:デフォルトの名無しさん mailto:sage [2016/01/20(水) 04:13:40.21 ID:CT14PSG+.net]
初心者ではないのですが、わからんので教えてください。
$ cat text.txt
aa\nbb
$
となってます。
これを

42 fin.open("test.txt",ios::in);
49 while(fin && getline(fin, buf))
50 cout<<buf<<endl;

な感じで表示すると、
aa\nbb
って表示されます。
どうして
aa
bb
ってならないのでしょうか。何か勘違いしてますか。

296 名前:デフォルトの名無しさん mailto:sage [2016/01/20(水) 04:31:24.49 ID:CT14PSG+.net]
すみません。アホな事書きました。忘れてください。ペコペコ

297 名前:デフォルトの名無しさん [2016/01/23(土) 13:01:50.67 ID:W4+KYwy5.net]
ftellの引数は何故const FILE*じゃないのですか

298 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 14:01:00.59 ID:47kTF92K.net]
C に const はあったっけ?

299 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 14:37:50.67 ID:xYcOlVg1.net]
有るに決まってるだろ
しかしftellが作られた当時は無かったかもな、詳しく知らんが

それにftellがファイルに何も書き込まなかったとしても
FILE構造体を何も書き換えないとは限らないしな
排他処理で何か書き換える実装もあり得る
ftellの実装はコンパイラ毎、環境毎に違うし
ベンダーが自分たちで用意するわけだから
いろんな環境に対応しなければならないC言語としては
安易にconstにできないな

300 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 16:09:29.81 ID:EPxA/CX7.net]
ポインタは伝播するしね。
void で引っ張ればどうにでも化ける。
fstream知ってからは怖いって感じはする。

301 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 16:19:37.61 ID:ruaa+Fti.net]
>>277
class Map<typename K, typename V> {};
そもそもこれが書けないC++仕様の怠慢が問題。



302 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 22:07:23.87 ID:YzHFCyx5.net]
cpp-lang.sevendays-study.com/problemex5.html
このサイトの5-2の問題、数字を漢数字に変換する問題をやってるのですが(面倒なので1〜3のみとする)
#include<iostream>
#include<string>
#include<map>
using namespace std;
int main() {
string a;
map<string, string> m;
int i;
string names[] = { "1","2","3" };
m[names[0]] = "一";
m[names[1]] = "ニ";
m[names[2]] = "三";
cout << "入力してください:"<<endl;
cin >> a;
string::iterator it = a.begin();
for (it = a.begin(); it < a.end();it++){
cout << m[*it] ;
}
//else { cout << "存在しません"; }
return 0;
}

このコードのcout<<m[*it];の部分でエラーが出てしまいます
自分の考えではiterator itを入力されたaの1文字目から最後の文字まで動かし、そのitが指す値をmapで変換しています
なぜダメなのでしょうか?

303 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 22:13:15.13 ID:xc9KTHaP.net]
map<string, string>なのに*itは文字だから

304 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 22:53:37.80 ID:YzHFCyx5.net]
map<char,string>にしたらうまくいきました。
ありがとうございます。
続いてまた質問なのですが、以下のコードで1から10の乱数を10回発生させてsetにその乱数をいれてるのですが、毎回10個の乱数が同じになってしまいます
何が悪いのでしょうか?(実行すると、coutの結果として22222222222、5555555555のようになります)
#include<stdio.h>
#include <stdlib.h>
#include<time.h>
#include<iostream>
#include<set>
using namespace std;
int main() {
int a;
set<int> number;
for (int i = 0; i < 10; i++) {
srand((unsigned) time(NULL));
a= rand() % 10 + 1;
cout << a ;
number.insert(a);
}

305 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 22:54:32.40 ID:Ipz3ttx/.net]
>>299
つい最近までLinuxではftellするとファイル位置がリセットされるバグがありました
つまり書き込まれてます

306 名前:304 mailto:sage [2016/01/23(土) 22:56:59.97 ID:YzHFCyx5.net]
すみません
srandの部分をコメントアウトしたら解決しました

307 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 23:04:49.75 ID:2kp06Cdr.net]
>>306
srandはプログラム中1回でいい

308 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 00:56:19.17 ID:fkWZRTEw.net]
>>306
今度は「毎回同じ乱数の並びになります」とか言わないのか?

>>307
日本語が不自由な馬鹿は引っ込め

309 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 01:30:42.36 ID:0rZjknv2.net]
randは非推奨

310 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 01:39:13.09 ID:WyN3o1JX.net]
>>308
>>307が理解できないお前が不自由なんだろw

311 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 05:48:23.27 ID:S0J2srO3.net]
>>307>>308 (の前半部)もそれぞれ正しいでしょう。
>>309 の関連で rand() % 10 で0〜9の乱数を出すのも疑義あり。

ところで >>304 の症状の報告も完全ではないね。
何度もやってるうちには 4444222222 みたいな、
前半と後半で値が違うっていうパターンも生じるはず。
現代の機械だとかなり稀なタイミングだろうけど。



312 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 08:51:16.26 ID:fkWZRTEw.net]
>>310
お前はいつも日本語が不自由だな
ここは「1回でよい」じゃなく「毎回呼んではだめ」なことを教えてやらんといかんのだ
ついでに消してしまって0回になってしまったのに「1回でよい」は日本語がおかしい

313 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 09:19:44.06 ID:OknlX178.net]
お前らそのうち
stdlib.h使うな、setはおかしい
とか文句言いそうだな

314 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 09:33:13.94 ID:bw3MWu8t.net]
>>305
そう言うバグがもっと早く見つかったじゃね?

315 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 10:07:36.64 ID:fkWZRTEw.net]
FILEをconstにできるか否かについての
「ファイル位置を保持する変数を誤って書き換えてしまった事実からFILEの内容を書き換える何らかの必要性が有ったのだろう」
という意見に対し
「FILE全体がconstになっていればファイル位置の変数の書き換えをコンパイルエラーに出来たはず」
という思考はちょっとずれている

316 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 10:49:11.35 ID:Aj6v4F1z.net]
windowsのCやC++でディレクトリごと消したいので、
system関数で 
rm -r "*"
など実行すると出来ると思うのですが、パスを間違えると全部消してしまいそうで
怖いのですがどうすればよいでしょうか?

317 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 10:54:20.90 ID:bw3MWu8t.net]
>>315
> 「ファイル位置を保持する変数を誤って書き換えてしまった事実からFILEの内容を書き換える何らかの必要性が有ったのだろう」
> という意見に対し
はあ?
恥の上塗りでもしに来たのか? w

318 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 10:57:22.78 ID:ETeqPEGX.net]
>>316
気をつけろ

319 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 12:20:43.25 ID:Aj6v4F1z.net]
>>318
それ以外に良い対策はありますか?

320 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 12:32:46.58 ID:lehWL+vO.net]
ケースバイケースだろうなあ
リソースなら予め登録されたファイルパス以下にあるファイル名以外消せないようにチェックするとか

321 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/01/24(日) 12:40:56.45 ID:30PPh5ie.net]
フルパスを要求するとか?



322 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 12:50:28.16 ID:LHp2Xjej.net]
あるいは予めchmod -w又はchown root:rootしておくとか。

323 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 17:42:47.61 ID:cIbjxOLA.net]
|何らかの事情で明示的にファイルをクローズしたければ、close関数を使用します。
|ofs.close();
|C言語に慣れていると、open と close が対応付いていないことに違和感を感じるかも知れませんが、 |
|C++ の世界では、自動的に行われるのならば、余計な手を出さずに任せてしまうべきです。

fstream の場合、close()しない方がいんですかねぇ

324 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 18:09:23.58 ID:7qZdBJlK.net]
>>323
エラーを無視して良いのであればデストラクタ任せで良いけど
そうでなければ自分でcloseする

325 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 19:46:16.98 ID:sP2ua92H.net]
>>316
パスを明示して毎回ユーザに承認を求める

現実的には、そのアプリ専用の作業ディレクトリを作りそこだけを消す
何らかの間接指定で可変ならば、親ディレクトリへの相対パスがあればはじく

ちなみに通常ディレクトリごとに適切に権限設定されてれば万一の時の被害も少ない

326 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 20:36:40.08 ID:WyN3o1JX.net]
>>312
いつもってお前は俺をどれと同一人物視してるんだw
都合が悪いレスは全て同一人物とか頭おかしいだろw

元々ループ内で呼んでたからの突っ込みなんだが
お前はそれすら理解できなかったようだな

327 名前:デフォルトの名無しさん [2016/01/24(日) 20:56:23.40 ID:BROMbZ7/.net]
「この変数はこれまで変更可能だったが、ただ今よりブロック終了までconstとする」って場合どうしますか? 但し、もう一つconst版のオブジェクトを宣言したくはありません。

なぜこんな事をしたいかというと、元々constで初期化で宣言したかったのに、
@初期化のためには資源の調達が必要であり
A初期化が済み次第すぐさま資源の解放をしたい
この場合、

SomeObj o;
{
  資源確保;
  o = 資源による処理;
}// ここで資源は解放される。
以降、oを用いた処理。

となるでしょう。そうなると、最初のoの宣言は、当然直後に代入があるので、constにできません。しかし事実上の初期化が済んだら、もうoはconstにしたいのです。

328 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 21:03:56.70 ID:50ZcCt7z.net]
>>327
「以降」の処理を const& を受け取る関数に移して、そこに渡す。
あるいは初期化済みの SomeObj を返す関数を作る。
しかし資源の確保となると根本的には SomeObj の責務(コンストラクタの処理など)に移したいところ。

329 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 21:18:25.81 ID:fkWZRTEw.net]
>>327
>>328の対処が取れないときは
ideone.com/pekqNE

330 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 22:13:23.33 ID:0dMHn0ua.net]
>>327
F#?

331 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 22:19:03.60 ID:WyN3o1JX.net]
G♭



332 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 22:20:15.90 ID:eLuVQ3YF.net]
勝手にC++の前提で話してんじゃねーよ
スレタイ読み直せ低能ども

333 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 22:21:45.85 ID:WyN3o1JX.net]
>>332
ブーメラン

334 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 23:03:43.91 ID:cIbjxOLA.net]
>>324
もう使用しないとわかった時点でフォーカス外れる前に自分でcloseした方がお作法ですよね。
なかなかC脳から抜けられない。

335 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 23:21:22.85 ID:B3HWqMca.net]
closeで例外が出てデストラクタ呼ばれたり
デストラクタでのクローズが失敗したらどうなるの?

336 名前:327 [2016/01/25(月) 02:02:52.33 ID:8FNbwGHh.net]
分かった、ブロックをそのままλ式にしてしまうのですね!

const auto o { [&...]()->SomeObj
 {
  資源確保;
  資源から必要な情報をまとめる;
  return SomeObj {情報};
 }()// ここで資源は解放される。
};
以降、oを用いた処理。

337 名前:プログラム初めてやってます mailto:sage [2016/01/27(水) 19:48:26.87 ID:GcWX3DUV.net]
2ちゃんねる初めてなので、書き方間違ってたらごめんなさい。

負の値の整数値をscanfで読み込んで、
絶対値を求めるプログラムを書きたいのですが

今の所わかってる知識としてはprintfでの簡単な計算と、簡単なif文のみです
課題としては、printf、putsとif文
今までに習った関数を用いてやれと言う事だと思うんですが
どう考えてもわからなかったため、どうか質問させてください

338 名前:デフォルトの名無しさん [2016/01/27(水) 19:58:02.06 ID:0xRCKJUw.net]
scanfなんて危険で難しい関数を何故初心者に使わせたがるのか

339 名前:デフォルトの名無しさん [2016/01/27(水) 20:04:03.17 ID:Fmvz75rf.net]
Cは危険な関数から入る傾向あるよね

340 名前:デフォルトの名無しさん mailto:sage [2016/01/27(水) 20:10:22.92 ID:j65DqSaH.net]
>>338
それ以上に簡単な入力手段がないからだろ

341 名前:デフォルトの名無しさん mailto:sage [2016/01/27(水) 20:12:44.23 ID:1VQKsEBj.net]
fgetc() じゃきっついか



342 名前:デフォルトの名無しさん mailto:sage [2016/01/27(水) 20:24:33.23 ID:ghSXEhkj.net]
>>337
https://ideone.com/Kn3dfH

343 名前:デフォルトの名無しさん mailto:sage [2016/01/27(水) 20:43:01.06 ID:H/VHXeqj.net]
危険な関数と言えば printf() もかなり危険だよね。
printf("hello, world\n"); なら大丈夫だけど、
printf("all 50%discount today\n"); だともう怪しい。

>>339 の言う通りだわ。

344 名前:デフォルトの名無しさん [2016/01/27(水) 21:34:21.69 ID:tY0EzgE5.net]
Cは低レベルを担当する言語なので扱いは高レベルな者が担当する。なので危険で良い。効率こそ正義
問題はそんなものを初学者に学ばせること。初学者がそんな重要な部分の開発をするわけがないのだから

345 名前:デフォルトの名無しさん mailto:sage [2016/01/27(水) 23:06:55.48 ID:eULyfEEH.net]
Cより覚えることが少なくてシンプルで他の言語の基礎になっていて
学んだことの応用が効いて実用性のある言語が他にあるか?
初心者が学ぶのに妥当だと思うが

346 名前:デフォルトの名無しさん mailto:sage [2016/01/27(水) 23:09:52.37 ID:3jiwec3B.net]
むしろCこそ初心者に無駄が大杉

347 名前:デフォルトの名無しさん mailto:sage [2016/01/27(水) 23:23:38.65 ID:13Hm1XjY.net]
C言語を覚えるのはCPUを覚えるのと大差無いから基本であるが難しい。
一人では全く何もできないコンピュータに1から仕事を教える物でもある。

だが、ラクしてjavaやperlに走る人とは付き合いにくい。

348 名前:デフォルトの名無しさん mailto:sage [2016/01/27(水) 23:29:27.89 ID:4Ckw423u.net]
覚えることの多寡はやりたい目標で決まるから何とも言えん
電卓として使う程度ならどの言語だって大して変わらんし

349 名前:デフォルトの名無しさん mailto:sage [2016/01/27(水) 23:37:38.39 ID:1VQKsEBj.net]
入出力がちょっと気を使うけど、
学習の重点となっているところが、入力後から出力前に集約できてれば良いんだが…

350 名前:デフォルトの名無しさん mailto:sage [2016/01/27(水) 23:38:02.86 ID:LZEmbO/H.net]
派手なGUIゲームを作るならCは遠回りだろうけど
大学の講座とかで教えるならCを超える言語あるかな?
Javaとか?

351 名前:デフォルトの名無しさん mailto:sage [2016/01/27(水) 23:44:41.36 ID:4Ckw423u.net]
それも講義の内容次第としか
工学系で高級なアセンブリとして使うならC



352 名前:デフォルトの名無しさん mailto:sage [2016/01/27(水) 23:50:57.65 ID:eULyfEEH.net]
実際問題JAVAとかC#は最初に教えるにしては覚えることが膨大すぎると思うよ
ボクシングとかアンボクシングとかどうやって教えればよいのか頭が痛いだろう
C++なんかもってのほかだしさ

>CPUを覚えるのと大差無いから基本であるが難しい

CPUに詳しくなって悪いことは無いよね、どんな言語にも応用が利くし
Cはいろんな言語のベースになっているからCを覚えると他の言語に展開しやすい
言語仕様も必要最小限でかつ、ぎりぎり実用可能なレベルで玩具というわけでもない

これがRubyとかなら、matzの実装について詳しくなる必要があるわけだが
こんなものを学んだところで有り難くない

353 名前:デフォルトの名無しさん mailto:sage [2016/01/28(木) 05:14:25.23 ID:a6m1UVUK.net]
CPUというか、アセンブリ言語を少し知ってると
ポインタの理解あたりが容易になるのは間違いないね。

ただし、特定のCPUに詳しくなりすぎると
慣用表現から外れた独特な書き方を始める弊害もあったり。

・C慣用
for (i = 0; i < 10; i++)
・C++慣用
for (i = 0; i != 10; ++i)
・あるCPUのアセンブラ経験者
for (i = 10; i != 0; --i)

どのループも10回の繰り返しのはずだが、
今となっては3番目は本当に10回か自信がないわ。

354 名前:デフォルトの名無しさん [2016/01/28(木) 05:52:39.11 ID:OteWNMPZ.net]
・C++慣用
for (i {0}; i < 10; ++i)

355 名前:デフォルトの名無しさん mailto:sage [2016/01/28(木) 06:04:06.09 ID:xn/xn1Lr.net]
>>354
出直してこい

356 名前:デフォルトの名無しさん [2016/01/28(木) 06:35:33.04 ID:OteWNMPZ.net]
ひぇっ!

357 名前:デフォルトの名無しさん mailto:sage [2016/01/28(木) 06:51:25.56 ID:87VXcHuk.net]
>>352
> ボクシングとかアンボクシングとかどうやって教えればよいのか頭が痛いだろう
そんな特殊な機能は必要になった時に教えればいいだけだろ
バカなのか?

358 名前:プログラム初めてやってます mailto:sage [2016/01/28(木) 07:10:42.59 ID:v1B3KP04.net]
342>>
342さんありがとうございました!
書き込んでから自分でも考えてみていて、
こんな感じになってました

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

/* 読み込んだ整数値の符号を判定 */

int main(void){

int a;

printf("整数を入力してください:");
scanf("%d", &a);

if (a < 0)
a = -a;
printf("絶対値は%dです");

return 0;
}

342さんのコーディングすごいですね!
参考になりました ありがとうございました!

359 名前:プログラム初めてやってます mailto:sage [2016/01/28(木) 07:11:49.38 ID:v1B3KP04.net]
余計なコメントはいってました・・・ 無視でお願いします・・・;

360 名前:デフォルトの名無しさん mailto:sage [2016/01/28(木) 12:31:44.00 ID:a9w0Gglx.net]
そもそもプログラミングの基礎は人に習う物じゃない
参考書なりネットなりで一人で勉強するもんだ
基礎から教えて貰わなきゃ理解出来ない時点でプログラマーに向いてない

361 名前:デフォルトの名無しさん mailto:sage [2016/01/28(木) 12:36:59.20 ID:mW8CPdak.net]
そうか?別に教わってもいいと思うが
でも応用効かないのは向いてないと思う



362 名前:デフォルトの名無しさん mailto:sage [2016/01/28(木) 12:43:58.60 ID:U7RHxiIq.net]
生涯でただ一つの言語しか覚えられないという宗教的理由があるならC一択
そうでないならCからとか論外

363 名前:デフォルトの名無しさん mailto:sage [2016/01/28(木) 12:51:39.77 ID:a9w0Gglx.net]
書き方が悪かった
一人で考えても分からない所を聞くのは別にいいと思うが、
授業とかで教えて貰うまで参考書があるのに手も付けない奴は向いてないと言いたかった

364 名前:デフォルトの名無しさん mailto:sage [2016/01/28(木) 13:04:08.57 ID:mW8CPdak.net]
あまり勤勉なやつも向いてない気がするが
仕事にするんじゃなきゃ関係ないか

365 名前:デフォルトの名無しさん [2016/01/28(木) 15:21:07.00 ID:hWNVXd5g.net]
数学やプログラミングはいかに楽してそれを済ませるかがテーマな所ありますよね
面倒くさがりでズボラな人が怠惰を求めて勤勉に行き着く過程が王道では
だから教育としてはいかにそれが面倒くさいか、いかにそれをやらずに済ませるかを強調していく

366 名前:デフォルトの名無しさん mailto:sage [2016/01/28(木) 16:30:44.07 ID:CWsUf0Ic.net]
初心者歓迎なんでね。

367 名前:デフォルトの名無しさん mailto:sage [2016/01/28(木) 22:38:32.61 ID:to2yFDLL.net]
Cから教えるのが論外とか言っている人は
他のどの言語から教えたほうが良いと思っているのか書くべきだよね

368 名前:デフォルトの名無しさん mailto:sage [2016/01/29(金) 03:01:29.22 ID:bzmjGvNe.net]
>>363
向いていないというか興味が無いんだと思う
必須授業とかで無理やりやらされてる感じ

>>365
一度作ってしまえば後は利用して効率が上がるからなw
ずっと面倒か作る間だけ面倒で後楽かを選ぶだけで

>>367
ただ批判するだけじゃ誰でもできるからな

369 名前:デフォルトの名無しさん mailto:sage [2016/01/29(金) 09:02:47.15 ID:x/sxD8ME.net]
(Lispの)Schemeを頭のいい人に教えるのには10分と掛からないってジョエルは言ってる。
Cは頭が良くても10分じゃ覚えきらん。仕様書からしてSchemeの10倍近く分厚いからな。2時間は掛かるんじゃねぇか?

370 名前:デフォルトの名無しさん mailto:sage [2016/01/29(金) 09:49:39.15 ID:qombZsi/.net]
>>369
仕様書の厚さに比例するっていう観点は公平だと思うよ

371 名前:デフォルトの名無しさん mailto:sage [2016/01/29(金) 10:14:08.59 ID:x/sxD8ME.net]
ふむ。

仕様書が分厚いからCを教えるのが論外だとするのなら、
手続き型系の言語で教えるのに適した言語はPASCALかLuaあたりになると思う。

Lua良いよLua。PASCALもね。



372 名前:デフォルトの名無しさん mailto:sage [2016/01/29(金) 13:26:54.55 ID:cTI0Jdzp.net]
Cは概念だと思うけどね。ポインタと構造体を脳内でイメージできるようになったらおkかと。
後はリファレンスさえあれば、一生忘れる事はないと思うけどなぁ。

C++はもう底なしでw でもそれが楽しいのですが。

373 名前:デフォルトの名無しさん mailto:sage [2016/01/29(金) 15:52:03.82 ID:9SCZR58b.net]
目的に最も近いと思われる言語を教えるのが初学者への配慮であって
入門に最も適した言語なんてのは幻想だと思う

374 名前:デフォルトの名無しさん mailto:sage [2016/01/29(金) 17:58:02.16 ID:cTI0Jdzp.net]
今は専門学校ではjavaなのかな

375 名前:デフォルトの名無しさん mailto:sage [2016/01/29(金) 18:08:01.54 ID:BAJfHtoc.net]
うちの専門学校では1年目はC、2年目にJavaだったよ

376 名前:デフォルトの名無しさん mailto:sage [2016/01/29(金) 18:47:15.34 ID:i41mJkcJ.net]
うちは1年目はPASCAL、2年目にCをやり、3年目にSchemeとPrologを触り、4年目はCで研究したよ。
専門じゃなくて国立だけど。

377 名前:デフォルトの名無しさん mailto:sage [2016/01/29(金) 19:53:42.72 ID:XYL4UGBK.net]
俺も一年目はPascalだったが
Pascal教えられていたときは激しくモチベが下がった
2年目にCになって無茶苦茶うれしかったよ

だって、Pascalは現場で使われてない言語だったから
何処でも使われてない言語を覚える苦痛と言ったらね
breakが有るくせにreturnが無いあたりも最悪だった
returnが無いから、どうにもこうにも関数の最後までいかないと
関数を抜けれないんだよ!
当然フラグだらけになるし、マジ鬼畜言語だと思った

その点Cは未だに世界中で使われている言語なわけで
だったら覚えてみようってなるし、モチベが上がるってものよ

378 名前:デフォルトの名無しさん mailto:sage [2016/01/29(金) 20:07:57.52 ID:cTI0Jdzp.net]
ふむふむ Pascalはセミコロンの位置で頭が禿げるw
Delphiとか評判良かったんだけどねぇ。

379 名前:デフォルトの名無しさん mailto:sage [2016/01/29(金) 20:57:35.02 ID:6a9kiPQ9.net]
>>378
式文とdo-while文にセミコロンを含むか、
各文の間は必ずセミコロンで区切るかの差であって、
どちらも一貫してるよ

380 名前:デフォルトの名無しさん [2016/01/29(金) 21:36:27.47 ID:KHfAKsC3.net]
ここは血迷ってAWKから入門させよう。ついでに正規表現も学ばせよう

381 名前:デフォルトの名無しさん mailto:sage [2016/01/29(金) 21:56:42.92 ID:XYL4UGBK.net]
一貫してても使いにくかったら意味ねーんだわ



382 名前:デフォルトの名無しさん mailto:sage [2016/01/29(金) 22:13:16.22 ID:V57FZVNV.net]
じゃあ苦情の上がっていないJavaScript最強ってことだな

383 名前:デフォルトの名無しさん mailto:sage [2016/01/30(土) 03:16:59.92 ID:d4C/IYFO.net]
マルチコアが当たり前になってGPGPUの手段が広がって低レベルが回帰の予感

384 名前:デフォルトの名無しさん mailto:sage [2016/01/30(土) 12:04:09.34 ID:qiIX3neU.net]
そこでllvm-irですよ

385 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/01/31(日) 18:52:32.63 ID:KGvneECt.net]
Cの文字列はヌル文字があるとそこで終わりだけど、
C++のstd::stringは長さを記録しているから、ヌル文字が
途中に来ても大丈夫!

ということはstd::stringはバイナリデータも扱えるんだ! 大発見だね!

386 名前:デフォルトの名無しさん mailto:sage [2016/01/31(日) 18:56:36.30 ID:umKDphm1.net]
どうした急に

387 名前:デフォルトの名無しさん mailto:sage [2016/01/31(日) 21:04:07.72 ID:kn/5LVuq.net]
今更すぎるな
単にC++11以前は連続した領域に確保されることが保証されてなかったからバイナリデータ置き場として使われてなかっただけ

388 名前:デフォルトの名無しさん mailto:sage [2016/01/31(日) 21:13:17.94 ID:JH58iwLT.net]
>>385の知識が残念なのは言うまでもないとして
話を理解できない>>387はもっと哀れ

389 名前:デフォルトの名無しさん mailto:sage [2016/01/31(日) 23:23:19.06 ID:0VTupv6x.net]
自分の知識を総動員してドヤ顔してるんだからそっとしておいてやれ

390 名前:デフォルトの名無しさん mailto:sage [2016/02/01(月) 00:16:08.05 ID:Jc+yiccs.net]
そう指摘されても何を理解できてないのか理解できてないからもっと哀れだわ
ハハッ

391 名前:デフォルトの名無しさん [2016/02/01(月) 01:45:26.45 ID:k88EDqNX.net]
ここは初心者にフレンドリーでハートウォーミングなインターネットですね



392 名前:デフォルトの名無しさん mailto:sage [2016/02/01(月) 04:58:19.06 ID:wHu9vKIt.net]
>>390
>>386

393 名前:デフォルトの名無しさん mailto:sage [2016/02/01(月) 17:08:19.81 ID:Ev74Df4F.net]
>>392のように日本語の文脈も読みとれない知能障害も
生きてて辛いだろうな

394 名前:デフォルトの名無しさん mailto:sage [2016/02/01(月) 19:06:25.95 ID:aUqGS129.net]
アホが文脈読めとか笑える
スゲーいいこと書いたつもりなんだろうなぁ w

395 名前:デフォルトの名無しさん mailto:sage [2016/02/01(月) 21:07:47.33 ID:cp5cboQs.net]
最近の2chは過疎も納得の糞さだな。

396 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 11:36:29.11 ID:NTv/QStd.net]
>>387
まじ?
連続性保証されてると思ってたわ。
vectorは03で規格化されてたよね?
stringはされてなかったのか。
ま、いっか。

397 名前:デフォルトの名無しさん [2016/02/02(火) 22:25:20.39 ID:+WV++cRd.net]
助けてください
実数を2つ入力させて大小比較させるプログラム

codepad.org/JYV0bpuL

398 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 22:29:57.47 ID:7f7wf/mW.net]
elseの後にifが無いな

399 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 22:34:55.10 ID:7f7wf/mW.net]
あれ?
同じ環境で、同じ入力文字列から読み取った二つの浮動小数点数型数が厳密に一致するって仕様で決まってたっけ?

つまり、入力として
0.1 0.1
って入れた時に、scanf("%lf%lf", &a, &b);なりなんなりした後のa == bの値って処理系依存だっけ?

400 名前:デフォルトの名無しさん [2016/02/02(火) 22:58:44.04 ID:+WV++cRd.net]
>>398
通りました。ありがとうございます。
けど、最後のはifがなくてはならないのでしょうか。
ストラウストラップ自身のテキストに、最後はelseとなっているのですが。

401 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 23:00:44.47 ID:7f7wf/mW.net]
>>400
ストラなんちゃらってのは知らんけど
(a == b)が付くなら文法上ifが必要。
ifを省くなら括弧も省け。



402 名前:デフォルトの名無しさん [2016/02/02(火) 23:05:17.62 ID:+WV++cRd.net]
>>399
実際のところ、
「2つの数字の差が1.0/10000000未満である場合に、どちらが大きくてどちらが小さいかを
書き出した後、the numbers are almost equalと書き出すようにプログラムを変更する」
という問題で、これより前にint型をdoubleに変更しろという問題もあって、
a == b はここでは必要ないかもしれないです。

403 名前:デフォルトの名無しさん [2016/02/02(火) 23:07:14.24 ID:+WV++cRd.net]
>>401
あ。たしかに最後は条件式書いてないです。ありがとうございます!

>>ストラ
C++の設計者です。

404 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 23:11:00.17 ID:7f7wf/mW.net]
>>403
誰かと思ったらB. Stroustrupさんか。
カタカナって難しい

405 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 23:13:08.88 ID:RveVHAYz.net]
ハゲはa<bでもa>bでもなければa==bと考えてしまうほどモウロクしたんだろうか
最近の老衰っぷりを見るとかなり頭がヤバそうだが

406 名前:デフォルトの名無しさん [2016/02/02(火) 23:18:37.12 ID:+WV++cRd.net]
>>405
細かいエラーは最後の「小数が入力されてない」で一括りなんです。
入門書なんで。

407 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 23:20:19.55 ID:7f7wf/mW.net]
>>406
多分そういうことじゃないと思う。

408 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 08:53:05.13 ID:6UPbxu8z.net]
>>399
その入力の結果
memcmp(&a, &b, sizeof a) で 0 は保障して欲しいところだな
処理系依存だとなんかキモイ

409 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 10:15:51.45 ID:JXLYa8UB.net]
うーむ
0.1 == 0.1
atod("0.1") == atod("0.1")
atod("0.1") == 0.1
ぜんぶ成立してほしい
誰か規格を解読して

410 名前:プログラム初めてやってます mailto:sage [2016/02/03(水) 10:19:42.77 ID:lWEagrs5.net]
前回は皆さん色々ご検討くださってありがとうございました。
皆さんにお礼も言わずに去ってしまったなと思っていたのですが、
その後、高度な(に私は見えました)話題が続いていたので水を差してはいけないと思って

どうしてもわからない事が出てきてしまって、また来てしまいました。

【二つの整数値を読み込んで、小さい方の数以上で大きい方の数以下の
 全整数を加えた値を表示するプログラムを作りなさい       】

という課題なのですが
インクリメント記述、全整数表示まではうまくいったのですが、
この後の合計値がどうしても出せません

ご助力お願い致します。

ここまでできたのですが…
https://ideone.com/THBj7S

多分恥ずかしいコーディングだと思います…

411 名前:プログラム初めてやってます mailto:sage [2016/02/03(水) 10:21:57.21 ID:lWEagrs5.net]
記述し忘れたので追記

2つの整数を入力し a以上b以下の全整数の和を求めなさいとの事でした



412 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 10:23:18.63 ID:Gb259GwX.net]
>>410
for (i = min; i <= max; i++) {sum += i;}

413 名前:プログラム初めてやってます mailto:sage [2016/02/03(水) 10:24:14.98 ID:lWEagrs5.net]
ありがとうございます!
でも、for文はまだ出てきてなくて、for文を使わずにと言う事でした

414 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 10:36:23.49 ID:JzoFZA2F.net]
またqの炎上学習法か?

415 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 10:37:46.94 ID:JXLYa8UB.net]
>>413
たとえば、1から1000の合計の計算式知ってれば、それを使う

416 名前:プログラム初めてやってます mailto:sage [2016/02/03(水) 10:40:20.13 ID:lWEagrs5.net]
?? 何かの本ですか? 
一応ある本の課題を見ています

今までに習ったのは簡単なprintfでの計算とif文do文なのですが

417 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 10:46:44.73 ID:XI3wSbIf.net]
>>409
atodと言うものが何物かは知らんが保証は無いんじゃね

ISO/IEC 9899:2011 5.2.4.2.4p6
The accuracy of the floating-point operations (+, -, *, /) and of the library functions in <math.h> and <complex.h> that return floating-point results is implementationdefined,
as is the accuracy of the conversion between floating-point internal representations and string representations performed by the library functions in <stdio.h>, <stdlib.h>, and <wchar.h>.

418 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 10:48:09.46 ID:XI3wSbIf.net]

5.2.4.2.4

5.2.4.2.2 Characteristics of floating types

419 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 10:51:30.15 ID:O/9tVwNc.net]
>>416
min = 5, max = 10, sum = 45て事なら
sum = ((min + max) * (max - min + 1)) / 2;
じゃあかんの?

420 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 10:53:19.38 ID:Gb259GwX.net]
>>416
forはwhileやdoを使って書き直せる。
for (A; B; C) D;
A; while (B) {D; C;}
A; do {if (B) {D; C;}} while (B);

421 名前:プログラム初めてやってます mailto:sage [2016/02/03(水) 10:55:10.44 ID:lWEagrs5.net]
>>416
416さんありがとうございます!できました!
皆さんもいろいろありがとうございました!



422 名前:プログラム初めてやってます mailto:sage [2016/02/03(水) 10:56:18.48 ID:lWEagrs5.net]
>>419さんでした;
>>416さんもありがとうございました!

423 名前:プログラム初めてやってます mailto:sage [2016/02/03(水) 10:58:29.06 ID:lWEagrs5.net]
>>420 420さんでした… ほんとにありがとうございました!

424 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 11:02:27.43 ID:JXLYa8UB.net]
>>417
正確性については実装依存だけど、毎回の同一性まではここでは触れてないね

425 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 12:55:54.71 ID:R1lQnZw2.net]
#include <cstdio>

int main() {
 printf("hello, world\n");

 return 0;
}


g++ (GCC) 4.8.2 を使っているんだが、上のソースがエラーなくコンパイルできる。
しかし printf() は std::printf() と書くべきじゃないかと思うんだ。
あるいは using で省略表記を明示するか。

この書き方でエラーにならないのはC++の規格通りなのか、
あるいはGCC独特の動作なのか教えてほしい。

またGCC独自だとしたら、コンパイル時にエラーとするオプションを知りたい。
(以前は -fhonor-std というオプションが使えたらしいが廃止されたみたい)

426 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 14:52:41.84 ID:1RubKd28.net]
なーる

427 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 14:54:41.83 ID:XI3wSbIf.net]
いつから>>425は規格通りとGCC独特の動作が
アンビバレンツなものであると錯覚していた?

428 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 15:53:30.47 ID:hvk9CpKQ.net]
なんでCは外部リンゲージでexternをつけるのにC++はつけないんですか?

429 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 16:41:54.73 ID:uEOUJl1K.net]
C++のコードからCを呼ぶ時に呼び出し規約の違いを明示する
CのコードからC++を呼ぶことはない

それに C/C++どちらも呼び出し規約が1種類ではないから
一部の関数はそういう指定がある

430 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 16:47:26.68 ID:XI3wSbIf.net]
>>428-429
>Cは外部リンゲージでexternをつけるのにC++はつけない
>CのコードからC++を呼ぶことはない

お前等の個人的なスタイルがさも普遍的であるかのように語られても

431 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 16:54:04.33 ID:1RubKd28.net]
そもそもデフォで外部リンケージを持つから extern はつけなくてもいんじゃねの?
外の変数を使う時はexternが必要ってことで。



432 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 16:56:12.19 ID:I+U+ZaiG.net]
>>425
C++の規格通りっぽい
cstdioとかはシンボルをグローバルにしてもいいししなくてもいいらしい

433 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 17:00:58.37 ID:XI3wSbIf.net]
>>432
へー、規格のどこにそんなことが

434 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 17:06:35.02 ID:I+U+ZaiG.net]
ちゃんとしたのに当った訳じゃないけど
stackoverflow.com/questions/10460250/cstdio-stdio-h-namespace
ここで引用されてた
Annex D (normative) Compatibility features [depr] states:

435 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 17:13:24.24 ID:j8SYABEm.net]
VS2015でも同じ結果でした

436 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 17:19:43.24 ID:XI3wSbIf.net]
>>434
そこに書いてあるのは「グローバル名前空間にも提供するかも知れない」なのだが
「cstdioとかはシンボルをグローバルにしてもいい」というのはどこから来たのか

437 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 17:22:04.36 ID:I+U+ZaiG.net]
どう違うのか分からない
間違ってたかな

438 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 17:31:35.42 ID:2Q1iapWx.net]
>>436
太字のここでしょ?
Every C header, each of which has a name of the form name.h,
behaves as if each name placed in the standard library namespace by
the corresponding cname header is placed within the global
namespace scope.

どこに「かも知れない」とかあるの?
behavesって断定してるんじゃない?

439 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 17:33:45.85 ID:6UPbxu8z.net]
RFC の MUST MAY SHULD みたいに整理してほしいわ

440 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 17:35:11.06 ID:XI3wSbIf.net]
>>437
std::でアクセスできることが義務づけられているかどうかが違う

>>438
それは>>425とは関係ないstdio.hの記述
その下の
It may also provide
ではないのか

441 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 17:41:25.46 ID:1RubKd28.net]
*.h → global空間で定義
c* → global空間とstd空間で定義

って事ですかい。



442 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 17:52:45.70 ID:R1lQnZw2.net]
>>434 情報ありがとう。
確かに cstdio は シンボルをstd名前空間に入れて
グローバル名前空間にも入れる「かもしれない」、と読めるね。

#include <cstdio> でstd修飾なしの printf() が使えるのは
規格通りでもあり、GCCがその挙動を選んだ、ということか。

しかしながら、グローバル名前空間に入れない環境もありうるし、
それで >>425 のコードがエラーになっても、これまた規格通りか。

うっかり std:: を書き忘れる癖があるので、
コンパイラがチェックしてくれると助かると思ったのだけれど。


>> ID:XI3wSbIf の人
有用が情報がなく挑発的なだけの投稿ばかりだね。
だからどうこうってわけじゃないよ。単なる感想として。

443 名前:425 == 442 mailto:sage [2016/02/03(水) 20:13:16.38 ID:R1lQnZw2.net]
>>441

Including cstdio imports the symbol names in std namespace and possibly in Global namespace.
Including stdio.h imports the symbol names in Global namespace and possibly in std namespace.

cstdio をインクルードするとシンボルはstd名前空間に入る(必ず)。
グローバル名前空間にも入るかもしれない(入らないかもしれない)。

stdio.h をインクルードするとシンボルはグローバル名前空間に入る(必ず)。
std名前空間にも入るかもしれない(入らないかもしれない)。


だと思われる。

444 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 20:19:16.88 ID:pejUVpHJ.net]
どちらを使うにしろ std名前空間を強要することはできないということになるのかな

445 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 21:13:49.98 ID:1RubKd28.net]
>>443
Cシンボルは鬼っ子で色々議論したけどこうなった。
って事なんだろな [Stroustrup2013] に書いてあるかな?

簡単な事だけど、かなり根が深いのかも。

実際は c関数を使う場合は 衝突回避のため、独自の名前空間の中で使用する事になるだろうから
問題ないのかも

namespace MyUtil{

  auto aaa=strlen("wahaha");

}
みたいな。

446 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 22:55:02.36 ID:XI3wSbIf.net]
そうだな
G++が::absのバグを十数年間放置したぐらいには根が深いだろう

447 名前:445 mailto:sage [2016/02/04(木) 01:51:05.67 ID:ZGjCmtZ8.net]
何をアホな事を書いてるのだろうと反省。失礼しました。

448 名前:デフォルトの名無しさん mailto:sage [2016/02/04(木) 19:27:08.85 ID:6dQTBxjx.net]
今日はQの自演による炎上学習法ナシ?

449 名前:デフォルトの名無しさん mailto:sage [2016/02/04(木) 20:07:26.52 ID:ZGjCmtZ8.net]
自演だったのかorz

450 名前:デフォルトの名無しさん mailto:sage [2016/02/04(木) 20:15:30.56 ID:M5WeNgYc.net]
namespace org::gnu::gcc {}が書けるようになるのはC++14からだっけ?
むしろ今までなんでこれが書けなかったのか、設計者に問い詰めたい。

451 名前:デフォルトの名無しさん mailto:sage [2016/02/04(木) 20:51:10.15 ID:cr9CcGXP.net]
いえ、C++14では書けません



452 名前:プログラム初めてやってます mailto:sage [2016/02/05(金) 08:05:08.38 ID:0uefFKkY.net]
ええっ…! それ私に向けられてるんです?
なんで??そうなるんです???
Qとかって人じゃないですし…
毎日ここ見てられませんよ;
自力で勉強しないと失礼だって思ったのになんでそんな事言う人いるんです?
もう来ない方がいいのでしょうか Qさんが誰かわかりませんが…

453 名前:デフォルトの名無しさん [2016/02/05(金) 08:05:39.03 ID:0uefFKkY.net]
勿論そのQさんとか言う人の自演じゃありません

454 名前:デフォルトの名無しさん mailto:sage [2016/02/05(金) 09:12:32.23 ID:40iMBEwg.net]
>>452-453
ID:0ue... が Que のパチモン臭く見えるのが素敵。

455 名前:デフォルトの名無しさん mailto:sage [2016/02/05(金) 19:48:30.40 ID:7eaUpuXV.net]
>もう来ない方がいいのでしょうか

その通りだ
去れ

456 名前:デフォルトの名無しさん mailto:sage [2016/02/10(水) 17:04:42.31 ID:nNZFJpww.net]
CのコードをC++に移植しながら開発を続けようと思ってるのだが、
C++のラムダとCのブロックどちらを使うべきだろうか。

457 名前:デフォルトの名無しさん mailto:sage [2016/02/10(水) 17:17:22.70 ID:9hAEzh2Z.net]
ラムダ?

458 名前:デフォルトの名無しさん mailto:sage [2016/02/10(水) 18:22:47.43 ID:VRPmATP2.net]
このレベルだとC++を使うことを避けるのが望ましい
ラムダとブロックは対比するものではないし
CからC++への移行の手段でもない

459 名前:デフォルトの名無しさん mailto:sage [2016/02/10(水) 23:43:46.75 ID:EbqYVSkn.net]
エスパーしました。恐らく彼は初期化の話をしているのでしょう。初期化する際に何らかのリソースの確保を行う場合、初期化が済んだら即解放したいと思うことがあります。
ブロック内でリソースを確保しておけば、ブロックを抜けるときに自動的に解放されるのでこの意図を達成できます。

int i;
{
  なにかリソースを確保したり、いっぱい一時変数を使ってこれからiの値を決める;
  i = 求めた値;
}//用済みなった変数はここで即解放される

C++ではこのアナロジーとしてλ式を当てはめられます。

const auto i { [&...]()
  ->int{
    何かのリソースを確保したり、いっぱい一時変数を使ってこれからiの値を決める
    return 求めた値;
  }()
}

これで定数を初期化でき、且つ、初期化時に用いた一時記憶域は即解放できることになります。

460 名前:デフォルトの名無しさん mailto:sage [2016/02/10(水) 23:57:21.06 ID:+sMp0qjD.net]
327さん、おはようございます

461 名前:デフォルトの名無しさん mailto:sage [2016/02/10(水) 23:59:35.45 ID:lc1dGjcs.net]
Q「(しまった)」



462 名前:デフォルトの名無しさん mailto:sage [2016/02/11(木) 00:50:30.55 ID:ECJX98k8.net]
すまぬ。ここで言うブロック(Blocks)っていうのはClangの拡張の方のことだ。
C言語でクロージャーを実現するための機能なんだが、そういえばまだ標準になってなかったな。

463 名前:デフォルトの名無しさん mailto:sage [2016/02/11(木) 03:25:55.80 ID:vUnRYzap.net]
くっ・・・

464 名前:デフォルトの名無しさん mailto:sage [2016/02/11(木) 12:22:58.36 ID:qM+VfxEi.net]
難しいわ

465 名前:デフォルトの名無しさん mailto:sage [2016/02/11(木) 13:15:50.37 ID:5TnQ2D6C.net]
>>459後半使う時どうするん

466 名前:デフォルトの名無しさん mailto:sage [2016/02/11(木) 15:26:10.43 ID:Ijn2TjOB.net]
>>465
何を? 初期化に使用した資源?
後で使うならそれは使用済みではないということなので解放しちゃダメだから、ブロックの外のスコープで宣言するしかないのでは?

467 名前:デフォルトの名無しさん mailto:sage [2016/02/11(木) 15:26:52.10 ID:Ijn2TjOB.net]
×使用済み
○用済み

468 名前:デフォルトの名無しさん mailto:sage [2016/02/11(木) 15:34:20.94 ID:5TnQ2D6C.net]
>>466
returnが仮に10なら

const auto i { [&...]()
  ->int{
    何かのリソースを確保したり、いっぱい一時変数を使ってこれからiの値を決める
    return 求めた値;
  }()
}

int a;
a = i;でaに10が入る?

469 名前:デフォルトの名無しさん mailto:sage [2016/02/11(木) 17:44:59.48 ID:R5nKPKgb.net]
そもそも論だけど

const auto &&i = [&]()->int{ return 10; }();

と書かないのは何故?

470 名前:デフォルトの名無しさん mailto:sage [2016/02/11(木) 18:03:43.29 ID:rWlIZ3EB.net]
X x{init()};よりX x = init();という個人のスタイルがさも普遍的であるかのように話をされても

471 名前:デフォルトの名無しさん mailto:sage [2016/02/11(木) 18:16:52.89 ID:R5nKPKgb.net]
{}の数が減ってインデントが少なくて済むじゃん
const auto &&i = []()->int
{
  return 0;
}();
好みの問題であるけどね



472 名前:デフォルトの名無しさん mailto:sage [2016/02/11(木) 18:28:52.25 ID:9LpCQunf.net]
>>468
何故入らないと思うのか

>>469
C++11から初期化は{}で囲むことがお行儀良いとされる。良い癖をつけよう。= {初期化値}も可。

473 名前:デフォルトの名無しさん mailto:sage [2016/02/11(木) 20:04:31.18 ID:9LpCQunf.net]
=を使わずに{}で囲むのみにしておけば、視認性抜群。一目でこれは代入でなく初期化なのだと判り脳の負担も軽くなる
int i = 10;

これからは
int i {10}, j {1}, k {0};
の時代だ。jやkの位置が改行されたりタブで距離を取っていてもこれなら一目瞭然だ

474 名前:デフォルトの名無しさん mailto:sage [2016/02/11(木) 20:45:28.76 ID:rWlIZ3EB.net]
>>472
へー、ではなぜC++14のmake_uniqueには{}の初期化が使われていないのですか

475 名前:デフォルトの名無しさん mailto:sage [2016/02/11(木) 22:38:27.35 ID:h5Y5qyZF.net]
推奨であって法律ではないからです

476 名前:デフォルトの名無しさん mailto:sage [2016/02/11(木) 23:39:53.97 ID:rWlIZ3EB.net]
へー、そうなのですか
スコットメイヤーの本に別の理由が書かれていたのですが騙されていたのですね

477 名前:デフォルトの名無しさん mailto:sage [2016/02/12(金) 00:00:23.89 ID:VRvtWrj2.net]
すいません、全部適当言いました。許してください、何でもしますから

478 名前:デフォルトの名無しさん mailto:sage [2016/02/12(金) 08:24:28.26 ID:pW7dPptS.net]
>>472
アスペか

479 名前:デフォルトの名無しさん mailto:sage [2016/02/12(金) 13:18:35.65 ID:3nWopzdP.net]
アスペじゃありません、サイコパスです

480 名前:デフォルトの名無しさん mailto:sage [2016/02/12(金) 14:18:31.86 ID:tZNW1Sh6.net]
北川景子?

481 名前:デフォルトの名無しさん mailto:sage [2016/02/15(月) 19:28:14.77 ID:qDxZgP2m.net]
悪夢ちゃん
良作ドラマやったな



482 名前:デフォルトの名無しさん mailto:sage [2016/02/16(火) 01:32:33.39 ID:iqNNo75Y.net]
ideone.com/ONsNMR

これがMSVC2015だとエラーになるのなんでなん?
回避方法知ってる人いる?

483 名前:デフォルトの名無しさん mailto:sage [2016/02/16(火) 07:15:41.19 ID:wJ7D3Nu/.net]
true_typeのスペルミス
俺の環境では通った

484 名前:デフォルトの名無しさん mailto:sage [2016/02/16(火) 08:11:34.25 ID:nCCZDf8c.net]
すぺるミスは見当たらない

485 名前:デフォルトの名無しさん mailto:sage [2016/02/16(火) 14:37:40.64 ID:WNE9IDAH.net]
すべってます

486 名前:デフォルトの名無しさん mailto:sage [2016/02/16(火) 17:38:29.31 ID:nE46Ot5u.net]
ラッパー関数を作成する場合、値渡しと参照渡し、どちらの方法が一般的なのでしょうか?

void append(T o) { vector.push_back(o); }
void append(const T& o) { vector.push_back(o); }

boostのコードで値渡しの方法を見かけたのですが、
(www.boost.org/doc/libs/1_60_0/boost/assign/std/vector.hpp)

push_back内で行われるコピーを考えると二重のコピーになってしまう気がします。
参照を使わない方法にはなにか意図的な物があるのでしょうか。
またはC++では値渡しが基本ということなのでしょうか。

487 名前:デフォルトの名無しさん mailto:sage [2016/02/16(火) 17:43:40.27 ID:3V9H/1fh.net]
テンプレートで、しかもinlineだから値渡しにしても良いという判断なんなんじゃないかな

488 名前:デフォルトの名無しさん mailto:sage [2016/02/16(火) 22:16:20.17 ID:eGMzofhZ.net]
>>482
type_traitsヘッダを明示的にincludeしなきゃだめとかじゃないのか

489 名前:デフォルトの名無しさん mailto:sage [2016/02/17(水) 00:02:13.91 ID:BJJMKH5P.net]
>>488
実際のコードではincludeしてたしそうでもないなー

webcompiler.cloudapp.net/
ここでコンパイルすると通るけど
新規プロジェクトでWin32コンソールアプリケーション選んで同じコードコピペしてもエラーになるわ・・
俺のVisual Studio 2015 Communityがおかしいのか・・・?

490 名前:デフォルトの名無しさん mailto:sage [2016/02/17(水) 00:47:09.77 ID:BJJMKH5P.net]
まさかと思いUpdate 1当てたら通るようになりました。
どうもありがとうございました。

491 名前:デフォルトの名無しさん mailto:sage [2016/02/17(水) 01:24:40.77 ID:1H9n+Lj4.net]
>>486
オブジェクト変更しないならconst参照でいいと思うけどなぁ



492 名前:デフォルトの名無しさん mailto:sage [2016/02/17(水) 01:37:30.39 ID:N1klTUFY.net]
そのboostのやつは要素が基本形であることしか考えてないんだろ
だから安易に値渡しになってる

493 名前:デフォルトの名無しさん mailto:sage [2016/02/17(水) 03:30:55.57 ID:1UNcQaMi.net]
せやろか
Boostに採択されるような手練れがそんな甘い設計をするのだろうか?

494 名前:デフォルトの名無しさん mailto:sage [2016/02/17(水) 07:43:08.25 ID:MVw4Ur3f.net]
boost.assignの使いみち考えれば基本型しかなくても不思議はないな
まぁでも、call_traitsみたいなやつくらいかましてくれても良いような気がするね
forkして直すか、issueあげれば?

495 名前:デフォルトの名無しさん mailto:sage [2016/02/18(木) 12:57:49.40 ID:cxWjsl/x.net]
目的による
ビットフィールドを切り捨てていいならforwarding-reference一択
そうでなければ値






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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