[表示 : 全て 最新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

411 名前:デフォルトの名無しさん (ワッチョイ 367b-F1sY) mailto:sage [2017/02/14(火) 17:04:24.30 ID:NG72BBfs0.net]
clangだとどう?
Wandbox等でも試せる

412 名前:デフォルトの名無しさん (スプッッ Sdc7-a31+) mailto:sage [2017/02/14(火) 18:47:20.33 ID:KObDNYqgd.net]
テストについて考えてるんだけど難しい
ソフトウェア開発難しくないか
一番ダメなのは俺が方向性を定めぬまま決めてしまっていることだろうが

413 名前:デフォルトの名無しさん (ワッチョイ df98-3CwI) mailto:sage [2017/02/14(火) 20:35:30.08 ID:lntB2yLX0.net]
仕事でやってるなら
(まさか会社で物事を決める立場にある人がこんな質問しているとは思えないので)
先輩に聞くか、会社の方針に合わせるしかないよ
今までどのようにやってきているかを見て、同じようにやるしかない

趣味でやっていて、オープンソースか何か、チームの一員として参加しているのなら
やはりチームの方針に合わせるしかないよ
今までどのようにやってきているかを見て、同じようにやるしかない

趣味でやっていて、個人で何か作っているっていうんなら、テストはする必要ないよ
個人開発はいつでも時間が圧倒的に足りてないから、テストなんか真面目にやってたら
いつまでたってもソフトが完成しない
一般的にメインのコードよりもテストコードのほうが量が多い
1万行のコードに対して10万行のテストコード・・・とかなったらもうソフトが完成しない
いろいろいう人もいるだろうけど、ここは現実問題を見たほうが良い
・・・お金取るなら別だけど

414 名前:デフォルトの名無しさん (ワッチョイ 93c9-3u4T) mailto:sage [2017/02/14(火) 20:38:17.32 ID:aNlWux3V0.net]
ふむふむ、つまり長文=低能

415 名前:デフォルトの名無しさん (ワッチョイ e292-CIv3) [2017/02/14(火) 20:47:51.47 ID:kM+db1DC0.net]
>>404
VC2017だと必ずthread_localが先にデストラクトされます
gcc5.4.0だとコンストラクタと逆順になります
clang3.8.1だとコンパイルできません

416 名前:デフォルトの名無しさん (スプッッ Sdc7-a31+) mailto:sage [2017/02/14(火) 21:15:15.99 ID:KObDNYqgd.net]
>>406
まさに大当たりなんだな
ソフトウェア開発こんな難しいとは思ってなかった
何が難しいって意見が違うところが多くて困る

結合テストどうすりゃええんやってマジ困ってるわ
単体やシステムはなんとなくわかるんだが

417 名前:デフォルトの名無しさん (オッペケ Srf7-3u4T) mailto:sage [2017/02/14(火) 21:26:41.34 ID:5RYrxuibr.net]
VC2017って来月9日に出るやつか

418 名前:デフォルトの名無しさん (JP 0Hf7-7zST) mailto:sage [2017/02/14(火) 21:43:47.89 ID:w8MjV4wUH.net]
大前提として、100%不具合が存在しないことを保証することは現実的には不可能
その前提の上で、如何に効率良く目的に合った不具合を検出して修正できるかがテストの肝

何か拠り所が欲しいならJSTQBの用語集でも読んでみたら良いんじゃね

419 名前:デフォルトの名無しさん (ワッチョイ e7a6-cGUq) mailto:sage [2017/02/14(火) 22:01:03.71 ID:fgjpd/Zj0.net]
バグを見つけるためのテスト



420 名前:デフォルトの名無しさん (JP 0H4b-EsWW) mailto:sage [2017/02/15(水) 00:15:28.29 ID:urFAvqLFH.net]
バグを追い出すためのテスト

隠れ家を重点的に叩く

421 名前:デフォルトの名無しさん (ドコグロ MMa3-VkM2) mailto:sage [2017/02/15(水) 06:47:06.21 ID:zgJtAmDRM.net]
追い出されたバグは違うモジュールに...
デスマーチあるある

422 名前:デフォルトの名無しさん (スプッッ Sd72-a31+) mailto:sage [2017/02/15(水) 07:31:50.49 ID:PfwOrtkrd.net]
>>411
以下に効率よくってのポイントっぽいね
結合テストシステムテストの差がいつも怪しい

423 名前:デフォルトの名無しさん (ワッチョイ d236-a31+) mailto:sage [2017/02/15(水) 07:41:57.48 ID:XaX5xvK80.net]
>>415
システムテストはシステムレベルの仕様に基づいてテストすればいいんじゃないかな。その際、中身がどのようにモジュールに分割されてるかは意識しない。
結合テストでは、システムレベルの仕様では見えないモジュール同士のインターフェースを中心に行う。

424 名前:デフォルトの名無しさん (スプッッ Sd72-a31+) mailto:sage [2017/02/15(水) 07:48:01.33 ID:PfwOrtkrd.net]
>>416
dllを差し換える作業を今してるんだけどその結合テストとなると
diiを呼び出す口を呼び出したときにどうなるか
それだけ見ればよいってことで良いかな?

425 名前:デフォルトの名無しさん (スプッッ Sd72-a31+) mailto:sage [2017/02/15(水) 10:29:03.40 ID:PfwOrtkrd.net]
strcpy_sってなんかMSDNの記載と挙動違うくない?
第三引数ぬるのときにエラーになる

426 名前:デフォルトの名無しさん (ワッチョイ 9b22-lHUq) mailto:sage [2017/02/15(水) 11:05:06.67 ID:t9yAVOgj0.net]
strSourceがNULLだとEINVALを返すって書いてあるけど

427 名前:デフォルトの名無しさん (スプッッ Sd72-a31+) mailto:sage [2017/02/15(水) 11:10:10.21 ID:PfwOrtkrd.net]
>>419
リリースビルド実行してもそんなことなく落ちてしまう

428 名前:デフォルトの名無しさん (ワッチョイ df7b-3cRu) mailto:sage [2017/02/15(水) 11:53:58.00 ID:LTs78uDW0.net]
If strDestination or strSource is a null pointer, or if the destination string is too small,
the invalid parameter handler is invoked, as described in Parameter Validation.

429 名前:デフォルトの名無しさん (スプッッ Sd72-a31+) mailto:sage [2017/02/15(水) 12:06:28.33 ID:PfwOrtkrd.net]
>>421
それ読んでるけど表ではコピー先には0で返り値でエラーコードが返ってくると記載がある
その文章の後半の実行の継続が〜って箇所がこれなんだと読んだんだが



430 名前:デフォルトの名無しさん (ワッチョイ df7b-3cRu) mailto:sage [2017/02/15(水) 12:14:45.33 ID:LTs78uDW0.net]
パラメータバリデーションも読めばわかる
その中で実行継続が選択された場合はエラーコードが返る

431 名前:デフォルトの名無しさん (ワッチョイ 0fd2-3yR0) mailto:sage [2017/02/15(水) 12:16:06.93 ID:tDlcUFQu0.net]
>>422
記載内容

432 名前:確認したいのでURL張って []
[ここ壊れてます]

433 名前:デフォルトの名無しさん (ワッチョイ df7b-3cRu) mailto:sage [2017/02/15(水) 12:18:53.94 ID:LTs78uDW0.net]
ググればトップに出てくるページも探せない奴は参加しなくて良い

434 名前:デフォルトの名無しさん (スップ Sd72-a31+) mailto:sage [2017/02/15(水) 12:25:15.30 ID:7fF4cQx4d.net]
>>423
実行継続ってどうやってするんだ...
リリースビルドのやつだとそのまま落ちちゃうけどもそれとは違うの?

435 名前:デフォルトの名無しさん (ワッチョイ df7b-3cRu) mailto:sage [2017/02/15(水) 12:29:16.41 ID:LTs78uDW0.net]
Invalid Parameter Handler Routineを差し替える

436 名前:デフォルトの名無しさん (スップ Sd72-a31+) mailto:sage [2017/02/15(水) 12:34:47.36 ID:7fF4cQx4d.net]
なんか手のつけたことのないやつに深入りしそうだ
ぐぐりちゅう
これ普通にだと落ちるのが正常ってことなんかね...?

>>424
https://msdn.microsoft.com/ja-jp/library/td1esda9.aspx

437 名前:デフォルトの名無しさん (ワッチョイ df7b-3cRu) mailto:sage [2017/02/15(水) 12:35:51.87 ID:LTs78uDW0.net]
レジストリ弄ってワトソン出さない方法もあるらしいけどやった事ない

438 名前:デフォルトの名無しさん (スップ Sd72-a31+) mailto:sage [2017/02/15(水) 12:45:49.37 ID:7fF4cQx4d.net]
>>429
これって初期設定だと実行継続みたいなのをぽちっとしないといけない
それがデフォルトってことなんね
なんか思っていた動作と異なる
くそやろう...

439 名前:デフォルトの名無しさん (スップ Sd72-a31+) mailto:sage [2017/02/15(水) 14:54:33.30 ID:7fF4cQx4d.net]
で....できない
srz-zumix.blogspot.jp/2012/08/strcpys.html?m=1
これ参考にしてるんだけどそのままコピペだとできない
助けてクレメンス



440 名前:デフォルトの名無しさん (ワッチョイ df7b-Ry7I) mailto:sage [2017/02/15(水) 15:37:40.84 ID:LTs78uDW0.net]
#include <string.h>
#include <errno.h>
void handler(
const wchar_t * expression,
const wchar_t * function,
const wchar_t * file,
unsigned int line,
uintptr_t pReserved)
{
}

int main()
{
char a[20];
_set_invalid_parameter_handler(handler);
strcpy_s(a, 20, NULL);
printf("%d\n", EINVAL == errno);
}

441 名前:デフォルトの名無しさん (オッペケ Srf7-3u4T) mailto:sage [2017/02/15(水) 18:51:08.84 ID:rJwzLFnhr.net]
>>418
スレ違いは去れよ

442 名前:デフォルトの名無しさん (ワッチョイ 0fd2-3yR0) mailto:sage [2017/02/15(水) 20:32:24.80 ID:tDlcUFQu0.net]
>>431
何が起きてるのかわからないから助けようがない
ブレークポイント張って動作は追った?

443 名前:デフォルトの名無しさん (ワッチョイ fb5f-YBZc) mailto:sage [2017/02/17(金) 16:55:38.65 ID:oBsnwbhT0.net]
>>430
_s関数の設計思想がプログラマが想定してない状況で動作を継続しないだもの
NULLが来るのが想定内だってんならデバッグ用の_set_invalid_parameter_handler()なんか使わず最初からstrcpy_s()を呼ぶな

444 名前:デフォルトの名無しさん (ワッチョイ 5f17-P9CU) [2017/02/18(土) 02:10:37.30 ID:BjwZuIbZ0.net]
Electronic Artsの標準ライブラリEASTL
https://github.com/electronicarts/EASTL

3.05.02 release
ようやくunordered_set, unordered_map が追加された。

445 名前:デフォルトの名無しさん (オッペケ Sr9f-xmLK) mailto:sage [2017/02/18(土) 09:00:37.40 ID:GNecI7Ewr.net]
『Electronic Artsの標準ライブラリEASTL』
俺ライブラリのくせに「標準」付けるところが馬鹿っぽい
標準って日本語の意味も理解しない低能

446 名前:デフォルトの名無しさん (ワッチョイ 0f7b-LjcY) mailto:sage [2017/02/18(土) 09:10:35.91 ID:IbdRLC160.net]
「標準ライブラリ実装」なら満足?

447 名前:デフォルトの名無しさん (オッペケ Sr9f-xmLK) mailto:sage [2017/02/18(土) 11:10:10.00 ID:GNecI7Ewr.net]
Electronic Artsによる標準ライブラリの一部分の実装 EASTL

448 名前:デフォルトの名無しさん (ワッチョイ 5fcc-UoBp) mailto:sage [2017/02/18(土) 14:17:54.25 ID:cCamoDUt0.net]
STLのSはStandardだからな
英語出来ない馬鹿なのか

449 名前:デフォルトの名無しさん (アウアウカー Sa9f-LRhM) mailto:sage [2017/02/18(土) 17:51:18.18 ID:DE0SU//Ra.net]
Sugoi Tsuyoi Library



450 名前:デフォルトの名無しさん (ワッチョイ 5b02-Z7AI) mailto:sage [2017/02/18(土) 18:20:17.46 ID:oLH7rESg0.net]
サブセットのなにがいけないのか

451 名前:デフォルトの名無しさん (ワッチョイ fba6-eq+O) mailto:sage [2017/02/18(土) 19:49:22.55 ID:fWF8oK3d0.net]
処理系を作っているなら「STL実装」を名乗ってもいいの?

452 名前:デフォルトの名無しさん (ワッチョイ 0f7b-qzUy) [2017/02/18(土) 20:29:26.5 ]
[ここ壊れてます]

453 名前:8 ID:bU7vWvgF0.net mailto: 「Electronic Artsの標準」って言ってるだけで何の問題もないと思うが?
Standardという言葉を必要以上に狭く解釈するほうがバカみたい
[]
[ここ壊れてます]

454 名前:デフォルトの名無しさん (ワッチョイ 0f5b-6x/Q) mailto:sage [2017/02/19(日) 09:55:36.66 ID:2DCCXMeS0.net]
strstreamでwstringを使う方法はありますか?

455 名前:デフォルトの名無しさん (ワッチョイ 8bc9-xmLK) mailto:sage [2017/02/19(日) 09:59:54.67 ID:sJkQ60Iy0.net]
はい。有ります

456 名前:デフォルトの名無しさん (ワッチョイ 8bc9-xmLK) mailto:sage [2017/02/19(日) 10:17:39.90 ID:sJkQ60Iy0.net]
ちなみにこんな感じだろうたぶん
https://ideone.com/JpKEZ7

457 名前:デフォルトの名無しさん (ワッチョイ 0f5b-6x/Q) mailto:sage [2017/02/19(日) 11:16:43.37 ID:2DCCXMeS0.net]
それは(w)stringstreamではないですか?
strstreamのヘッダもいらない気がします。

strstreamでwstringを利用したいのですが
独習C++のサンプルでもchar配列しか扱って
ません。

458 名前:デフォルトの名無しさん (ワッチョイ 0f7b-LjcY) mailto:sage [2017/02/19(日) 11:50:16.48 ID:kiv7S6GK0.net]
strstreamってdeprecatedでは

459 名前:デフォルトの名無しさん (ワッチョイ 0f5b-6x/Q) mailto:sage [2017/02/19(日) 12:02:45.47 ID:2DCCXMeS0.net]
>>449
visual studioのヘルプ見たらそんな気がしました。
おとなしくwstringstream使っとくべきですかね。



460 名前:デフォルトの名無しさん (ワッチョイ 6bdc-89sP) mailto:sage [2017/02/19(日) 21:37:05.31 ID:XrGtgUCH0.net]
Singletonでのthread終了時にjoinで固まる
suzukit14.hateblo.jp/entry/2015/06/24/111000

これとまったく同じ問題に突き当たりました。
最後に書かれているように、detach()で確かに無事終了できますが、
なんかマズかったりしますか?

461 名前:デフォルトの名無しさん (オッペケ Sr9f-xmLK) mailto:sage [2017/02/19(日) 22:04:43.50 ID:s/Z6tyYFr.net]
良く読んでないけと
破棄されたm_endを参照してなんかうれしいの?

462 名前:デフォルトの名無しさん (ワッチョイ eb9a-XQTV) [2017/02/19(日) 22:07:24.99 ID:qRKd/jmw0.net]
スレッドの終了を待たずにプロセスが終了しても問題ないならOK

463 名前:デフォルトの名無しさん (ワッチョイ fb7b-Mjmn) [2017/02/19(日) 22:15:23.67 ID:Av0JmT9x0.net]
>>451
そのインスタンスのメンバーを使用するコードがdetachしたスレッド内にある場合はデストラクタが呼ばれた後にそのメンバーを参照して未定義動作になる可能性がある

464 名前:451 (ワッチョイ 6bdc-89sP) mailto:sage [2017/02/19(日) 22:22:05.77 ID:XrGtgUCH0.net]
皆さん、ご回答、ありがとうございます。

>>454
まさにそれと思しきクラッシュが終了時にランダムで発生することに気付きました(汗)
detach()もjoin()もせずに終わろうとしたときに百発百中で出るのと同じ「R6010 -abort() has been called」というエラーです。

Sleep()でも呼んで十分に待てば、実用上は問題ないんでしょうけど、
こういう曖昧なコードは嫌いなので、なんとかキレイにスパッと終わりたいです・・・。

Singletonが適したクラスではあるのですが、
この問題をうまく裁けないようであれば、諦めて通常のクラスにすることを検討します。

465 名前:デフォルトの名無しさん (ワッチョイ fb7b-Mjmn) [2017/02/19(日) 22:32:17.29 ID:Av0JmT9x0.net]
>>455
コンパイラは?MSVC2015使っててそんな問題に当たったことないんだけど
どうしても回避できないなら(MSVC2012には無かったかもしれないけど)std::quick_exit使う事も検討してみたら?

466 名前:デフォルトの名無しさん (ワッチョイ eb9a-XQTV) [2017/02/19(日) 22:45:35.14 ID:qRKd/jmw0.net]
俺なら、pthread なり直接使って
クリーンアップハンドラ登録する

467 名前:451 (ワッチョイ 6bdc-89sP) mailto:sage [2017/02/19(日) 23:08:15.96 ID:XrGtgUCH0.net]
>>456
Visual Studio Express 2013 for Windows Desktop Update5 です。

stackoverflow.com/questions/10915233/stdthreadjoin-hangs-if-called-after-main-exits-when-using-vs2012-rc

ここを見てると、どうも2015では直ってそうですね。

quick_exitのこと教えてくださってありがとうございます。
知りませんでした。
でも、VS2015に移行するのが一番キレイに解決するので、そうします。

これまで、特にVS2015に移行する理由がなかったので2013のままでしたが、
おかげさまで理由ができました。
ありがとうございました。

468 名前:451 (ワッチョイ 6bdc-89sP) mailto:sage [2017/02/20(月) 01:50:05.39 ID:1uwDjjWZ0.net]
ところで、>>451のサイトのコードですが、
m_end変数の型がstd::atomic<bool>となっています。
わざわざatomicクラスを使わなくても、

m_end = true;

は通常のboolでもアトミック操作だからかまわないですよね?
何か意図があるのでしょうか?

469 名前:デフォルトの名無しさん (ワッチョイ dfc0-fRM8) mailto:sage [2017/02/20(月) 02:43:42.07 ID:kFvPCPcM0.net]
コンパイラが省略するかもしれないから



470 名前:デフォルトの名無しさん (ワッチョイ 5f17-P9CU) mailto:sage [2017/02/20(月) 03:08:55.41 ID:n+W7/EeT0.net]
volatile ではダメなん?

471 名前:デフォルトの名無しさん (ワッチョイ fb7b-Mjmn) [2017/02/20(月) 04:17:03.74 ID:8FjaGYLq0.net]
>>461
わざわざ保証されてないものを使用したあなら好きにしたらいいんじゃない?
タイミングが重要なものに使用したらすぐ破綻するけど。

472 名前:デフォルトの名無しさん (ワッチョイ cbdc-92cl) mailto:sage [2017/02/20(月) 06:33:50.28 ID:8HBU9+MH0.net]
大きな整数だと読み書き操作のアトミック性が保証されないから
std::atomic を使わなきゃならん。
必要ないかも知れないけど、同じ書き方でboolでもlong longでも
正しく動くようにテンプレートを使った標準的な書式にしておく、
ってのがC++流と言えるのかな。

あと、std::atomic<bool>と書いてもboolを直に代入しても
実行時には同じ速度で動く(ようにatomicを実装する)から損はない、
というのもね。

473 名前:451 (ワッチョイ 6bdc-89sP) mailto:sage [2017/02/20(月) 19:43:56.16 ID:1uwDjjWZ0.net]
ご回答、ありがとうございます。

>>463
>大きな整数だと読み書き操作のアトミック性が保証されない
そうだったんですか!
それはatomicが要りますね。

>実行時には同じ速度で動く(ようにatomicを実装する)から損はない
オーバーヘッドがないのは素晴らしいですね。

気を付けます。
ありがとうございました。

474 名前:デフォルトの名無しさん (ワッチョイ 0f2b-eq+O) mailto:sage [2017/02/21(火) 07:47:04.43 ID:t35fjyuz0.net]
>459
>何か意図があるのでしょうか?

サイト書いた人間死んでるの?
それとも生きてるの?

生きてるならなんでわざわざ赤の他人に他人の意図を聞くんだろうこの人
本人に直接聞けば一番早いんじゃないの
そいつの意図なんてのは書かない限りそいつしか知らないし分からないじゃん

475 名前:デフォルトの名無しさん (ドコグロ MM7f-My/j) mailto:sage [2017/02/21(火) 08:17:30.11 ID:y0kzTLQNM.net]
終わった話になに頓珍漢な言いがかりつけてるんだよ w

476 名前:デフォルトの名無しさん (ササクッテロラ Sp9f-Aztl) mailto:sage [2017/02/21(火) 09:41:12.86 ID:yRuALuONp.net]
お受験の季節だし、国語の時間が辛かったんだと思います
許してあげてください

477 名前:デフォルトの名無しさん (ワッチョイ 6bdc-89sP) mailto:sage [2017/02/22(水) 19:13:31.66 ID:M+n+vM/b0.net]
以下のようなマルチスレッドプログラムを書いたのですが、もっとエレガントに書くことはできないでしょうか?
std::atomic<T>を使ったら可能でしょうか?

■メンバ変数

 std::mutex m_Mtx;
 std::string m_str;

■生産者スレッド

 while( true )
 {
  lock_guard<std::mutex> Lock( m_Mtx );
  
  m_str += "何らかの文字列";
 }

■消費者スレッド

 std::string str;
 
 {
  lock_guard<std::mutex> Lock( m_Mtx );

  str = m_str;
  
  m_str.clear();
 }

478 名前:デフォルトの名無しさん (ササクッテロラ Sp9f-Aztl) mailto:sage [2017/02/22(水) 20:12:00.06 ID:OuXxGo6Bp.net]
それで必要十分だと思うよ
stdがついたり付いてなかったり、変数が大文字始まりだったり小文字始まりだったりするのが気持ち悪いけど

479 名前:デフォルトの名無しさん (ワッチョイ fb34-wIi3) [2017/02/22(水) 20:31:27.26 ID:3B67WX1e0.net]
>>468
強いて言うなら
str.swap(m_str);
かな。



480 名前:デフォルトの名無しさん (ワントンキン MM7f-Mjmn) [2017/02/22(水) 20:40:10.22 ID:W153DobNM.net]


481 名前:そんな動作が必要なプログラムを書いたことがないし、どんなケースで必用になるのか想像もつかないけど、その動作が正なのであるばそれでいいんじゃない?

m_ って付いてるってことはメンバー関数なんだろうけどデストラクタどうするんだろうとか、色々気になる所はあるけど。
[]
[ここ壊れてます]

482 名前:デフォルトの名無しさん (ワッチョイ 5b02-Z7AI) mailto:sage [2017/02/22(水) 21:09:30.45 ID:TTVI91Rf0.net]
バックグラウンドで通信するならおおよそこんな感じになるんじゃないの

483 名前:468 (ワッチョイ 6bdc-89sP) mailto:sage [2017/02/22(水) 21:38:29.81 ID:M+n+vM/b0.net]
>>470
ご回答、ありがとうございます。

>>472
その通りでございます。

>>470
なるほど!
ということは、atomic<T>を使って

■メンバ変数

 std::atomic<std::string> m_str;

■生産者スレッド

 while( true ) m_str += "何らかの文字列";

■消費者スレッド

 std::string str;
 str.swap( m_str );


と、超エレガントにできそうですが、この場合、swap()でのアトミック性ってどうなるんでしょう??

484 名前:デフォルトの名無しさん (ワッチョイ fb34-wIi3) [2017/02/22(水) 21:46:47.39 ID:3B67WX1e0.net]
>>473
心配なら
m_str.swap(str);
でいいんじゃね?

485 名前:468 (ワッチョイ 6bdc-89sP) mailto:sage [2017/02/22(水) 23:00:07.25 ID:M+n+vM/b0.net]
>>474
あ、そうですね!
それならより安心ですね。
テストしてみて問題なかったら、それでいきます!
ありがとうございました。

486 名前:デフォルトの名無しさん (ワッチョイ 8acc-CoTN) mailto:sage [2017/02/23(木) 00:46:03.89 ID:+OueSnEu0.net]
ハンガリアンキンモー

487 名前:デフォルトの名無しさん (ワッチョイ de5b-moPN) mailto:sage [2017/02/24(金) 08:16:42.09 ID:DyzPRDD50.net]
見たことないのですがポインタ(の
入った変数)を参照することって可能
ですか?
int* &みたいなことです。

488 名前:デフォルトの名無しさん (ブーイモ MMc7-Ccab) mailto:sage [2017/02/24(金) 09:58:19.90 ID:bBhQmgr7M.net]
>>477
出来ます。テンプレートで使われるのが一番多いかな?
func(T& dst)に対してint*を渡すみたいなパターン

489 名前:デフォルトの名無しさん (アウアウカー Saeb-uNyc) mailto:sage [2017/02/24(金) 10:28:09.00 ID:e/BP7pNwa.net]
それは初心者用質問スレで訊くのが合っていますよ



490 名前:デフォルトの名無しさん (ワッチョイ 8a3c-/RgJ) mailto:sage [2017/02/24(金) 11:40:07.36 ID:9xRtAprE0.net]
auto&&とint&&は機能的に別物と考えていいのかな。
int&&は右辺値参照を実現する記法で、auto&&は参照の参照を実現するための仕組みという認識なんだけど。

491 名前:デフォルトの名無しさん (ワッチョイ 8acc-CoTN) mailto:sage [2017/02/24(金) 12:43:18.76 ID:quEFnRbB0.net]
人に聞く前になぜ自分でやってみようとは思わないの?

492 名前:デフォルトの名無しさん (スップ Sd4a-36q6) [2017/02/24(金) 13:15:08.70 ID:u1ntmSSgd.net]
試してもその環境では動くということしか確かめられないから

493 名前:デフォルトの名無しさん (ワッチョイ 7fc9-2lVT) mailto:sage [2017/02/24(金) 22:09:09.79 ID:OddQnmIq0.net]
実現するのが目的ではないだろうけど
auto &&のauto部分がX &に解決されるのはどうも気持ち悪い

494 名前: ◆QZaw55cn4c (ワッチョイ 4613-8lb6) mailto:sage [2017/02/24(金) 22:22:18.18 ID:4ewDjGBZ0.net]
>>477
できる,二重ポインタより分かりやすい

495 名前:デフォルトの名無しさん (ワッチョイ 1f30-GZNV) mailto:sage [2017/02/25(土) 00:02:24.64 ID:5D288ePc0.net]
>>480
テンプレートの型パラメータと普通の型の関係と同じようなもの
機能的に完全に別物というより一段上に追加機能のレイヤーがあるかないかの違い

496 名前:デフォルトの名無しさん (ワッチョイ 8acc-CoTN) mailto:sage [2017/02/25(土) 00:13:15.17 ID:Bto43eGs0.net]
まあautoの部分はXにもX*にもX&にも解釈可能だからトーシローは錯覚する罠

497 名前:デフォルトの名無しさん (ワッチョイ 8a3c-/RgJ) mailto:sage [2017/02/25(土) 12:29:14.82 ID:xXEZYycv0.net]
auto&&はreference collapsingっていう仕組みらしいけど江添氏はこの機能の解説してないんだよね。
だから右辺値参照の仕組みと透過性があるものなのだと思ってた。
右辺値参照の仕組みを理解すればおのずと理解できるもんだと思ってた。

498 名前:デフォルトの名無しさん (ワッチョイ 63a6-8lb6) mailto:sage [2017/02/25(土) 13:33:16.56 ID:THbYlaQi0.net]
これとかじゃなく?
https://cpplover.blogspot.jp/2014/09/c14-decltypeauto.html

499 名前:デフォルトの名無しさん (アウアウカー Saeb-uNyc) mailto:sage [2017/02/25(土) 18:59:53.13 ID:A0aZ5Z9Sa.net]
江添はそう言ってる?



500 名前:デフォルトの名無しさん (ワッチョイ 7fc9-2lVT) mailto:sage [2017/02/25(土) 21:48:53.39 ID:r3+UW6Ch0.net]
江添の説明はこれだな
『テンプレート実引数推定のルールで型推定が行われる』
『できるだけ普通のプログラマーの常識に合わせるために、とても複雑になっている』
以上

501 名前:デフォルトの名無しさん (ワッチョイ 0a7f-orIt) mailto:sage [2017/02/27(月) 14:18:25.09 ID:XaQXd7Ck0.net]
libc++ の挙動にバグっぽいものを見付けたんで cfe-dev に投げたんですが
ttp://lists.llvm.org/pipermail/cfe-dev/2017-February/052807.html
応答がありません…もっとふさわしい場所ってあるんですかね?

っていうか std::is_abstract が純粋仮想関数入りのクラステンプレートに対して
false 返すのって規格に照らしてどうなんでしょう?

502 名前:デフォルトの名無しさん (オッペケ Sr23-2lVT) mailto:sage [2017/02/27(月) 18:50:50.34 ID:mrZfm/tmr.net]
テンプレートクラスならともかくクラステンプレートならコンパイルエラーにならないとおかしい
ちなみにただのバグにしか見えない

503 名前:デフォルトの名無しさん (ワッチョイ 0a7f-orIt) mailto:sage [2017/02/27(月) 20:02:23.96 ID:XaQXd7Ck0.net]
なるほど、テンプレートクラスと言えばいいんですね。
適切な言葉をちゃんと知りませんでした。

504 名前:デフォルトの名無しさん (ワッチョイ a37b-mxZJ) [2017/02/27(月) 20:55:00.96 ID:Of/Kbntx0.net]
https://bugs.llvm.org//
バグ報告はここじゃね?

505 名前:デフォルトの名無しさん (ワッチョイ 7fc9-2lVT) mailto:sage [2017/02/27(月) 21:11:47.21 ID:4UiY0/x/0.net]
libc++ではなくてclangが腐ってるようにも見える
melpon.org/wandbox/permlink/GCDP7CU2HzUOMMML

506 名前:デフォルトの名無しさん (ワッチョイ 0a7f-orIt) mailto:sage [2017/02/27(月) 21:22:12.75 ID:XaQXd7Ck0.net]
>>494
New user self-registration is currently disabled
らしいのでどうせメールするならメーリスでいいか、
というのと規格的にどうなのかよくわからなかったので…

507 名前:デフォルトの名無しさん (ワッチョイ 0a7f-orIt) mailto:sage [2017/02/27(月) 21:25:24.26 ID:XaQXd7Ck0.net]
>>495
g++ で libc++ を使わせても同じ挙動だったのですが
どうなってるんでしょうね?

508 名前:デフォルトの名無しさん (スプッッ Sd33-moPN) mailto:sage [2017/02/28(火) 09:18:02.99 ID:cUxO9p4sd.net]
long→short 警告でない
size_t→int 警告出る

警告出たり出なかったりの違いってなんなんだ?
上記二つとも出ると思っていたのだが

509 名前:デフォルトの名無しさん (スップ Sd4a-36q6) [2017/02/28(火) 09:25:14.27 ID:+UqvplX+d.net]
unsignedでは



510 名前:デフォルトの名無しさん (ワッチョイ 8acc-CoTN) mailto:sage [2017/02/28(火) 09:41:23.40 ID:Mx4bsJ8G0.net]
警告を出すか出さないかはコンパイラのオプションで自由に選べる

511 名前:デフォルトの名無しさん (スプッッ Sd33-moPN) mailto:sage [2017/02/28(火) 11:50:09.20 ID:cUxO9p4sd.net]
>>499
それだと思ったのだけどsize_tでも出ないところと出るところがある
なんなんだこれ






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

前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