トップページ⇒tech
1002コメント297KB

【初心者歓迎】C/C++室 Ver.98【環境依存OK】 [無断転載禁止]©5ch.io

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2016/05/30(月) 18:52:27.15ID:DjBh2EsF
エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。

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

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

前スレ
【初心者歓迎】C/C++室 Ver.97【環境依存OK】
http://echo.2ch.net/test/read.cgi/tech/1439849418/
0002デフォルトの名無しさん2016/05/30(月) 18:54:50.39ID:DjBh2EsF
次スレが見あたらなかったので立てた
今北ばかりの俺に今日一日の内容を教えてくれ
0003デフォルトの名無しさん2016/05/30(月) 18:57:21.00ID:Xl0N1v2s
【本日のあらすじ】
前スレ>>1000の決定により、バトルスレとして生まれ変わった。
以上。
0004デフォルトの名無しさん2016/05/30(月) 18:59:44.28ID:DjBh2EsF
まじかよ
構わんが相手を罵倒するスレじゃなくてバトルするスレにしてくれよ
0005デフォルトの名無しさん2016/05/30(月) 19:05:22.47ID:ixAozmxi
最近の即死判定はちょっとだけキツくなってるからとりあえずみんな何か書け
0006デフォルトの名無しさん2016/05/30(月) 19:09:57.99ID:5KszwDfD
よーしパパ罵倒るっちゃうぞ

>996 :デフォルトの名無しさん :2016/05/30(月) 17:55:12.40 ID:hyGWFe6M
> >>994
> 排他の話をしてて、Write と Modify の区別がつかないのは不味いだろ
> Modify = Read-Modify-Write
> ってわかってるよね?
けけけ
こいつこれ書いててなんかおかしいと思わなかったのかね
0007デフォルトの名無しさん2016/05/30(月) 19:12:33.42ID:NdC8+XxG
>>6
ばとるの字が違う!
0008デフォルトの名無しさん2016/05/30(月) 19:18:14.62ID:Xl0N1v2s
プログラマならほんの少しの誤字が何を引き起こすかわかってるよね?
0009デフォルトの名無しさん2016/05/30(月) 19:22:57.80ID:JwqlJAnX
ほんと2ch特有これだから2chは
0010デフォルトの名無しさん2016/05/30(月) 19:26:23.05ID:Xl0N1v2s
じゃあまず2chの定義から始めようか。
0011デフォルトの名無しさん2016/05/30(月) 19:48:48.23ID:hyGWFe6M
>>6
おかしいところも指摘できないバカ乙
煽るとか 100年早いわ w
0012デフォルトの名無しさん2016/05/30(月) 20:15:27.32ID:oTOIpsxJ
規格の1.10に書かれたmodifyは前スレ994の言う通り単に書き換え
の意味で使われているのに話をすり替えているからおかしいのであって、
>>6の引用文自体はおかしいよう見えないな

まあ>>6はModifyが等式の両辺に現れたことを言っているのかも知れない
0013デフォルトの名無しさん2016/05/30(月) 20:37:11.51ID:0XG2biZ7
Modify = Read-Modify-Write

C言語的に解釈すると ReadからModifyとWriteを引いてModifyに代入
数学的に解釈すると Modify = ( Read-Write )/2

どっちも意味が分からない
0014デフォルトの名無しさん2016/05/30(月) 20:42:10.41ID:JaLXIj0G
Read-Modify-Write すら理解してない奴がいるのか...
https://en.m.wikipedia.org/wiki/Read-modify-write
0015デフォルトの名無しさん2016/05/30(月) 21:08:09.93ID:NdC8+XxG
>>13
/2はどこから出てきたんだよ
>>14
それはいいとして、modify単体でread-modify-writeのことを指すなんてルールがどこから出てきたんだろうね
0016デフォルトの名無しさん2016/05/30(月) 21:09:40.48ID:oTOIpsxJ
恥ずかしさに耐えきれずもっと馬鹿なレスでごまかそうと
IPアドレス変えて書き込んだ>>13の心情をお察しください

そして15のオツムの弱さに脱帽
0017デフォルトの名無しさん2016/05/30(月) 21:20:51.93ID:NdC8+XxG
なんで煽られたのかわかんねぇわ
0018デフォルトの名無しさん2016/05/30(月) 21:21:58.06ID:kauG4wqb
消費税引き上げ先送りも決まり,日銀とECBがしっかり資金供給を拡大してくるのでFRBの利上げは多分成功する
基調はリスクオンの株式暴騰、金暴落だね

今度の黒田砲は緩慢に効いてくる
海馬がくる,海馬がくる
0019デフォルトの名無しさん2016/05/30(月) 21:56:31.13ID:UwS3YYB3
煽り抜きにこのスレバカとアスペしかいないわ
ほんとどこの専門板もおわっとる
0020デフォルトの名無しさん2016/05/30(月) 22:07:56.43ID:5KszwDfD
>>15
>modify単体でread-modify-writeのことを指すなんてルールがどこから出てきたんだろうね
どこからって(笑)hyGWFe6Mが唯一の源泉だよ(笑)
0021デフォルトの名無しさん2016/05/30(月) 22:12:38.75ID:NdC8+XxG
>>19
おう、お前以外全員バカだから安心しろ
0022デフォルトの名無しさん2016/05/30(月) 22:16:12.33ID:5KszwDfD
>>19
お前のレスは煽り成分100%
0023デフォルトの名無しさん2016/05/30(月) 22:23:45.24ID:JaLXIj0G
>>15
> それはいいとして、modify単体でread-modify-writeのことを指すなんてルールがどこから出てきたんだろうね
スレッド間の排他制御の話でそれ以外の解釈あるなら教えてくれよ

>>20
理解できないなら黙ってろよ
0024デフォルトの名無しさん2016/05/30(月) 22:26:01.59ID:UwS3YYB3
>>21
このスレだとそれ皮肉にもならないでその通りだわ安心
0025デフォルトの名無しさん2016/05/30(月) 22:29:27.27ID:NdC8+XxG
>>23
とりあえず前スレ読んできたら?
0026デフォルトの名無しさん2016/05/30(月) 22:38:58.52ID:5KszwDfD
>>23
>スレッド間の排他制御の話でそれ以外の解釈あるなら
本気でそう思ってるなら無知すぎて話にならないから
最低限の知識を付けるまではマルチスレッディングの話には口挟まないほうがいいよ
0027デフォルトの名無しさん2016/05/30(月) 22:44:06.38ID:JaLXIj0G
>>25-26
説明できないと言うことは理解したよ w
0028デフォルトの名無しさん2016/05/30(月) 22:50:27.02ID:NdC8+XxG
>>27
前スレ読んでて言ってるのか。
残念すぎる
0029デフォルトの名無しさん2016/05/30(月) 22:51:31.33ID:5KszwDfD
説明するもなにもどんな文脈であっても
modify=read-modify-writeなんて滅茶苦茶な用法はないからw
0030デフォルトの名無しさん2016/05/30(月) 22:58:23.23ID:5KszwDfD
スレッド(割り込みも考えれば実行コンテキストとか呼んだほうがいいと思うが)
間の排他でmodifyといえばread-modify-writeを指すに決まってると思い込んでる奴は
スピンロックの色々な形態を勉強することだな
0031デフォルトの名無しさん2016/05/30(月) 22:59:36.15ID:NaQmKghS
>>27
read modify writeのmodifyは変更の意味でとってもおかしくないだろ
それに対して規格にあった、constはmodifyしようとすると未定義動作になるって言う文は君の解釈だとおかしいだろ
0032デフォルトの名無しさん2016/05/30(月) 23:23:55.74ID:oTOIpsxJ
ちなみに前スレ919は(現在有効な版とされる)C++規格ではない
0033デフォルトの名無しさん2016/05/30(月) 23:45:30.42ID:NaQmKghS
c++11のドラフトからとったんだけど変わってんの?
c++14のドラフトでも一緒だったし
0034デフォルトの名無しさん2016/05/31(火) 06:43:55.07ID:HjYDbXLZ
>>30
> 排他でmodifyといえばread-modify-writeを指すに決まってると思い込んでる奴は
だから他にあると言うならそれ書けよ

>>31
const ?
Read-Modify-Write の Modify は規格の modify と違うぞ
0035デフォルトの名無しさん2016/05/31(火) 06:45:07.72ID:HjYDbXLZ
>>28
前スレ読めとしか書けない残念な人乙 w
せめてレス番ぐらい示せ
0036デフォルトの名無しさん2016/05/31(火) 07:14:19.47ID:1eCqiRRJ
そのうち大文字と小文字が違うとか言い出す
0037デフォルトの名無しさん2016/05/31(火) 07:21:27.97ID:9B6piCSy
>>33
内用に大差あるとかじゃなくて、規格じゃないものを規格であるかのようにして貼るな
段落もずれてるし。それにC++17のドラフトを見れば変更の有無は想像できるだろう
ISO/IEC 14882#2014 1.10段落6
Two expression evaluations conflict if one of them modifies a memory location (1.7) and
the other one accesses or modifies the same memory location.
1.10段落23
The execution of a program contains a data race if it contains two potentially concurrent conflicting actions,
at least one of which is not atomic, and neither happens before the other, except for the special case for signal handlers described below.
Any such data race results in undefined behavior.
0038デフォルトの名無しさん2016/05/31(火) 07:49:16.47ID:HjYDbXLZ
>>36
>>27
0039デフォルトの名無しさん2016/05/31(火) 08:02:56.55ID:ayjBr20G
なんだこれ
くっそどうでもいい指摘する奴と、煽るだけの奴
どっちも何を主張したいのかわかんね
0040デフォルトの名無しさん2016/05/31(火) 08:16:32.44ID:ayjBr20G
>>38
お前は前スレの ID:hyGWFe6M のように規格に書かれてるmodifyがread-modify-writeの事を指していてreadとwriteを別スレッドから同じ場所に同時に行うことではデータ競合を起こさないと主張してるって事でいいの?
他の人からそう思われてるよ?
0041デフォルトの名無しさん2016/05/31(火) 08:31:35.19ID:lsPrur1T
>>35
前スレは983あたりでおかしくなった
write+readの件についてwriteが含まれる場合の規定を919が示したら
983が何故か「それはwriteでなくread-modify-writeだから関係無い」
と宣った
0042デフォルトの名無しさん2016/05/31(火) 08:34:46.62ID:s1Yf7R7M
今日もまだまだread-modify-write談義、続くよ!
0043デフォルトの名無しさん2016/05/31(火) 09:17:50.74ID:TRYwrF1a
まとめ
「bool型変数に対し2つのスレッドが参照を持ち、一方が読み込み、他方が書き込みのみを行う場合はmutexって必要なの?」
ってのが前909で
「未定義動作になるから危険。
コンパイラによってはwhileの前に一度だけ読み込むコードになったり、
そうじゃなくてもCPUに依ってはスレッドが別コアで実行されたらキャッシュだけ読みに行って嵌ったりする。」
ってのが前910。尚前909には理解できなかった模様
それに対しマルチスレッドもアセンブリも知らないおっさん達がやれ粒度がどうたらやれ更新は書き込みを含むやら含まないやら言い出してさあ大変
今ここ。
0044デフォルトの名無しさん2016/05/31(火) 09:29:34.19ID:ayjBr20G
>>43
最後違う
前スレの ID:hyGWFe6M はmodifyはread-modify-writeだからreadとwriteは競合しないという主張
0045デフォルトの名無しさん2016/05/31(火) 09:32:11.51ID:TRYwrF1a
>>44
thx
0046デフォルトの名無しさん2016/05/31(火) 10:02:50.44ID:TRYwrF1a
俺はread-modify-writeってアセンブリレベルだと

mov eax, [rdi] ; read
@@: mov ecx, eax
dosomething ecx ; modify; e.g. inc ecx
lock cmpxchg [rdi], ecx ; write by CAS. if CAS failed, read at [rdi] to eax
jne @b ; goto @@ if CAS failed

又はよりシンプルに

mov eax, [rdi] ; read
dosomething eax ; modify
mov [rdi], eax ; write

こういう具合に分類して理解してる。

んで、複数のスレッドが同時にアクセスしうるメモリ上の位置が存在する場合、
一箇所でもその位置を書き換えるスレッドが存在するならatomicにしなければならないって思ってる。
合ってる?

# 昔はvolatileを使ったなぁ
0047デフォルトの名無しさん2016/05/31(火) 11:22:09.64ID:6aoAynfW
>>43
最初もちげえよカス 理解してるしコンパイラによってCPUに依ってなんてケースは聞いてないんだよ環境依存でこの環境で大丈夫か?って聞いてんだよ
前スレのwhileの最適化とか意味不なこと言ってる奴いたし聞いてもない環境持ち出してくる池沼だらけだわARMとかどうでもいいんだよ
第一俺を巻き込むな死ね
0048デフォルトの名無しさん2016/05/31(火) 11:49:15.80ID:TRYwrF1a
>>47
前スレ822によると環境はwin32なんだろ?
その条件なら、x86以外にもMIPSやPPCを考慮しなきゃならんのは当然じゃないか。何言ってんだ?
0049デフォルトの名無しさん2016/05/31(火) 12:16:36.80ID:6aoAynfW
>>48
MSVC使ってんだしx86ってわかるだろ 特殊な環境で使うならわざわざいうわ死ね
使う環境一つなんだから文脈から読み取れるわアスペルガー野郎 もはや揚げ足とりレベルのこと言えんのな
ほんとそのうち大文字と小文字が違うとか言い出すな マジ中身のないレスで俺に安価つけんな死ね
0050デフォルトの名無しさん2016/05/31(火) 12:22:32.27ID:TRYwrF1a
>>49
死ね(中身の無い言葉)
0051デフォルトの名無しさん2016/05/31(火) 12:25:19.16ID:6aoAynfW
>>50
はい死ね
0052デフォルトの名無しさん2016/05/31(火) 12:53:44.95ID:t+3gE39Z
>>40
> readとwriteを別スレッドから同じ場所に同時に行うことではデータ競合を起こさないと主張してる
それで合ってる
因みに競合を起こさない
って言うのは元々メモリー上に存在した値か write した値以外の値を read しないと言う意味ね
0053デフォルトの名無しさん2016/05/31(火) 13:19:27.09ID:NrsuFr7e
win32ならMIPSやPPCを考慮しなきゃならんのは当然(キリッ)
0054デフォルトの名無しさん2016/05/31(火) 13:30:49.97ID:rtPt6hUE
あのぅ…
ここは、しっ、初心者歓迎ではないのですか(スレタイにある)?
みんな怒っていて、怖いのですが…
0055デフォルトの名無しさん2016/05/31(火) 13:43:02.38ID:TF+4ZOhf
>>54
大歓迎だよ(怖くないとは言っていない)
0056デフォルトの名無しさん2016/05/31(火) 13:51:29.75ID:aLUaFZpW
MSVCはARMをtargetに出来るんだけど…
0057デフォルトの名無しさん2016/05/31(火) 14:00:39.36ID:6aoAynfW
>>56
アスペ死ね
0058デフォルトの名無しさん2016/05/31(火) 14:11:16.38ID:6aoAynfW
>>54
マジで前スレで誰かが聞いて挙げられてたサイト行ったほうがいいわな あれリストかしとけ
もうやりたかったこと完成したしもう俺をこのクソの投げ合いに巻き込むなや死ね
0059デフォルトの名無しさん2016/05/31(火) 14:32:26.57ID:MgBy31H8
レスするごとに死ねって5回も言い続けてるお前が一番怖いんだよなぁ
0060デフォルトの名無しさん2016/05/31(火) 15:06:03.80ID:aLUaFZpW
メモリバリアが有るかどうかはコンパイラの最適化に影響するからよい子の皆はCPUが対応してるからatomic使わなくてもいいなんて勘違いしちゃだめだぞ
0061デフォルトの名無しさん2016/05/31(火) 17:06:09.26ID:s6vXNmRK
まあどうでもいいじゃん。
そんなことよりクラス名はラクダスタイルが良いのか、stdスタイルが良いのか。
そっちの方が大問題ジャン?
0062デフォルトの名無しさん2016/05/31(火) 17:11:10.22ID:6E/2AJ7e
喧嘩相手の初心者歓迎という事ですね。
0063デフォルトの名無しさん2016/05/31(火) 17:38:48.35ID:+L4oE1jc
初心者歓迎(歓迎するとは言ってない)
0064デフォルトの名無しさん2016/05/31(火) 17:49:50.80ID:rtPt6hUE
通常『歓迎』と書けば、『歓迎する』となる。
ただ、こちらが想定する歓迎の仕方と違うと云う事ですね
0065デフォルトの名無しさん2016/05/31(火) 17:55:20.10ID:aLUaFZpW
大体は初心者らしくしてれば喧嘩にならないようなケースだけどな
知ったかぶりで喧嘩腰な ID:hyGWFe6M と
質問者のくせに偉そうで死ねしかいえないやつと
0066デフォルトの名無しさん2016/05/31(火) 18:00:19.37ID:s6vXNmRK
ラクダ派にも、ヒトコブラクダ派とフタコブラクダ派がいるしね。
0067デフォルトの名無しさん2016/05/31(火) 18:07:43.83ID:TRYwrF1a
蛇に一票!
0068デフォルトの名無しさん2016/05/31(火) 19:26:56.10ID:6aoAynfW
>>65
はいアスペ死ね
0069デフォルトの名無しさん2016/05/31(火) 19:53:06.99ID:Ln0CmcAU
>>61
言語設計者は大文字始まりをすすめている模様
http://www.libjingu.jp/trans/bs_faq2-j.html#Hungarian

>型名には先頭を大文字にした名前を使用してください(中略)こうすることで、標準の型と見分けることができます。
0070デフォルトの名無しさん2016/05/31(火) 19:54:19.97ID:NrsuFr7e
6aoAynfW=hyGWFe6M
誰だよこんなクソに餌やりしたのは
0071デフォルトの名無しさん2016/05/31(火) 19:57:53.79ID:NrsuFr7e
ああもしかしたら6aoAynfW=前スレuvUIKndNなのか
まあどっちでも良いけどね、クソはクソなのであってアイデンティティなんかないから
0072デフォルトの名無しさん2016/05/31(火) 20:15:26.25ID:lAVDRKqS
>>71
スレすらまともに読めてなく間違いに気づいてもう一回レスしたのねうけるwwwwどっちでも良いけどレスはしちゃうよねwwww
0073デフォルトの名無しさん2016/05/31(火) 20:30:14.36ID:9B6piCSy
もう何が論点なのかわからなくなってしまったが、
>>47への回答はこれでいいか?
http://ideone.com/JGYkhG
0074デフォルトの名無しさん2016/05/31(火) 20:48:05.96ID:NrsuFr7e
新しいウンコ野郎爆誕か?
global_stop_unko4にvolatileさえつけないで最適化した場合は全然別の問題だから
0075デフォルトの名無しさん2016/05/31(火) 20:48:21.37ID:9qfIx641
>>73
→OK
0076デフォルトの名無しさん2016/05/31(火) 20:52:16.30ID:9B6piCSy
>>17
いちおう訊いておくが、理由はわかったよな?
『/2はどこから出てきたんだよ』
0077デフォルトの名無しさん2016/05/31(火) 20:54:17.77ID:NrsuFr7e
>>75
OKじゃねーだろ前スレのウンコ質問者だってflagにはvolatile付けるくらいの知能はあった
0078デフォルトの名無しさん2016/05/31(火) 20:59:44.14ID:9B6piCSy
>>74
>全然別の問題だから
はて、前スレ953は『atomicないとどういうバグがなぜ発生しうるのか?結局不要なのか?の結論がしりたいだけ』
だったから、意図した動作をしないこともあるという例を示したまでだが
別の問題かどうかが関係有るのか?
0079デフォルトの名無しさん2016/05/31(火) 21:01:50.32ID:9qfIx641
>>77
うーんこのスレだけじゃなくコードの意図もまともに読めないガイジ
0080デフォルトの名無しさん2016/05/31(火) 21:05:26.25ID:NrsuFr7e
>>78
OK
>>73の意図について俺が勘違いしてたスマン
このケースではstd::atomicもミューテックスも必要ないよね
volatileでさえあれば
0081デフォルトの名無しさん2016/05/31(火) 21:25:42.65ID:lAVDRKqS
>>73
ありがとマジ有能
てか>>74NrsuFr7eこのレベルのアスペ池沼にクソとか言われてたんだな
こういう奴が自分の知能がやばいのを棚に上げてうんこ野郎爆誕とか言いながら意味不なこと言い続けるんだろうなマジで死んでくれ
0082デフォルトの名無しさん2016/05/31(火) 21:33:39.77ID:NrsuFr7e
>>81
お前本当にどうしようもないクソ野郎だな
0083デフォルトの名無しさん2016/05/31(火) 21:36:08.04ID:lAVDRKqS
>>82
はいウンコ野郎爆誕
0084デフォルトの名無しさん2016/05/31(火) 21:43:21.91ID:NrsuFr7e
まあstd::atomicが必要かどうかにつて真摯にレスしてくれてた人の言い分を少しも理解しないようなウンコとバトルしても仕方ない
0085デフォルトの名無しさん2016/05/31(火) 21:43:55.38ID:TRYwrF1a
>>82
>>82
0086デフォルトの名無しさん2016/05/31(火) 21:53:23.37ID:AshcyYxn
>>78
> はて、前スレ953は『atomicないとどういうバグがなぜ発生しうるのか?結局不要なのか?の結論がしりたいだけ』
もう少し前からレスを読んだ方がいい
(前スレ>>)904 のコードには volatile が付いてるから volatile なくして動かねー
って言われても困惑するだけ
0087デフォルトの名無しさん2016/05/31(火) 22:01:34.75ID:wkt7iDyQ
>>80
Visual Studio 2015ではコンパイラスイッチによってvolatileの解釈が変わる
という指摘が前スレであったからこのケースがどのケースか分からないけど
スイッチ次第で volatile で良いとも悪いとも言える
0088デフォルトの名無しさん2016/05/31(火) 22:01:41.31ID:lAVDRKqS
>>84
まぁstd::atomicの人もおまえの味方にはなりたくないと思うぞつて てか捨て台詞はもういいの?w
このスレこういう池沼がいるからバトルがずっと続くんだろうなマジ死ねつてつて
0089デフォルトの名無しさん2016/05/31(火) 22:36:56.73ID:9B6piCSy
>>86
読んでなかったわすまん。
ただミューテックス有りではvolatileが無いのに動いてるからvolatileは本質じゃないと考えた。
コンパイラーはフラグとミューテックスの関係を知らないから。

http://ideone.com/BtiySj
こういう比較にするべきだったか
(書き込み時に排他してないのは作法としてNGだが目をつぶってくれ)
0090デフォルトの名無しさん2016/06/01(水) 00:06:13.33ID:788Vt+6F
>>76
ああ、ハイフンをマイナスとして解釈してたのな。
両辺からmodify引いたら 0 = read-writeになるやんと解釈してたわ。心配してくれてありがとな
0091デフォルトの名無しさん2016/06/01(水) 06:37:56.90ID:RDQRhO1c
どうでもいいけどスペル間違ってるよ。
0092デフォルトの名無しさん2016/06/01(水) 06:40:17.12ID:YMSD+2lu
>>87
そんなオプションあったっけ?
オプション名教えて
0093デフォルトの名無しさん2016/06/01(水) 06:51:57.83ID:YMSD+2lu
>>89
> コンパイラーはフラグとミューテックスの関係を知らないから。
だから最適化できないだけじゃね?
0094デフォルトの名無しさん2016/06/01(水) 06:57:50.70ID:RDQRhO1c
そこをググッと最適化するのがテンプレートマジックでしょうが!!!
0095デフォルトの名無しさん2016/06/01(水) 08:05:07.75ID:S5lUInLS
ミューテックスAPIの様なコンパイラが知らない外部関数呼んだ後は
volatileついてなくてもグローバルな変数値が変わってないと解釈するわけにはいかないからだよ
ミューテックスの代わりに何か適応なAPIを挟むとやっぱり動くよ
排他の問題じゃない
0096デフォルトの名無しさん2016/06/01(水) 09:01:13.82ID:p6LgU525
そういえばそうだったな
0097デフォルトの名無しさん2016/06/01(水) 15:10:35.96ID:e5VZGuDW
もっと熱いバトルしようぜ!
0098デフォルトの名無しさん2016/06/01(水) 16:37:35.85ID:RDQRhO1c
【デュエルの作法】

・まず名乗りましょう。(例:C++標準化委員の>>48です等)
・名指しします。(例:猿頭の>>47に異議を申す等)
・晴らしたい恨みについて申告します。(例:愛するPPCをのけ者にした!等)
・決闘を申し込みます。(例:よって貴殿に決闘を申し込む等)

相手が受理したらデュエルの始まりです。
さあ徹底的に叩きのめしましょう。
0099デフォルトの名無しさん2016/06/01(水) 18:48:15.42ID:jEAqldaZ
俺「volatileすげー便利」
メイヤー「マルチスレッドで使用するためのものではない」
ビョンビョン「マルチスレッドで使用するためのものではない」
何故なんだぜ
0100デフォルトの名無しさん2016/06/01(水) 19:38:22.75ID:mHGwq62w
volatileを付けないとどうなるのだ?
外から書き換えられても、そのスレッドではわからくなるんだっけ?
0101デフォルトの名無しさん2016/06/01(水) 19:42:04.99ID:LCUCZSDK
>>100
最適化で読み書き省略しちゃう
0102デフォルトの名無しさん2016/06/01(水) 19:42:32.91ID:S5lUInLS
別に便利なもんじゃないだろ
値が変わってないとコンパイラが仮定するのを阻止するだけ
ただし
・変数がバスレベルでアトミック
・書き込みの競合がない
みたいな場合はスレッド間のシグナリングに使える
0103デフォルトの名無しさん2016/06/01(水) 20:33:27.15ID:mHGwq62w
>>101
とん そだったね。普段使ってないもんで。
確かにコンパイラに教えないとまずいね。
0104デフォルトの名無しさん2016/06/01(水) 21:25:51.49ID:788Vt+6F
>>52
今更なんだけど今気づいたから書くけど、そいつは特定環境じゃなく規格の話でそう主張してたんだぞ?
0105デフォルトの名無しさん2016/06/01(水) 21:41:23.45ID:y1My1Ac/
>>104
>>52がレスを返してる先の>>40を読めばわかることを気づいたと言われても
蛇足の駄レスはいらないぞ
0106デフォルトの名無しさん2016/06/01(水) 21:44:35.28ID:mdokjnd7
初心者スレなので初心者にもわかるようにガンダムに例えてもらえませんか
0107デフォルトの名無しさん2016/06/01(水) 21:48:34.49ID:y1My1Ac/
>>106
「俺が規格だ」
0108デフォルトの名無しさん2016/06/01(水) 22:00:21.58ID:788Vt+6F
>>105
本人は理解してるのか気になってな
0109デフォルトの名無しさん2016/06/02(木) 23:26:30.13ID:UwVCGc3x
オーバライドするときに必ず基底クラスのメソッドを呼ばないといけないように又は勝手に基底クラスのメソッドを呼ぶようにってできませんか?
0110デフォルトの名無しさん2016/06/02(木) 23:54:13.37ID:UTqywkRW
出来ない
baseクラスの仮装関数はprotectedにして非仮装関数を外部に公開する関数にして必須の実装は非仮装関数の方に書けばいいよ
0111デフォルトの名無しさん2016/06/03(金) 01:16:16.13ID:TgksTSmw
>>110がいってることの詳細はC++ NVIでぐぐれや
0112デフォルトの名無しさん2016/06/03(金) 04:17:33.99ID:hWYSNnly
http://fa11enprince.hatenablog.com/entry/2014/06/20/015808
のBmi.cppの8行目の
:name_(name), height_(height), weight_(weight), bmi_(0.0)
は何ですか?
0113デフォルトの名無しさん2016/06/03(金) 06:14:38.86ID:o7VJVlqj
>>112
俺の環境で Bmi.cpp を見ることができないため確実ではないが、
記法からクラスのメンバ変数に初期値を設定してるのだと思われる。

「メンバイニシャライザ」「初期化リスト」で調べると分かる。
0114デフォルトの名無しさん2016/06/03(金) 09:26:04.50ID:k46LxwfN
>>109
正にそんなあなたのためのNVI!
0115デフォルトの名無しさん2016/06/03(金) 14:27:46.85ID:0PuduGQy
最近では流行に乗って
:_status{false},_readfname{fname.c_str()},_line{0},_loc{0},_start{0}
などと書いてますw
0116デフォルトの名無しさん2016/06/03(金) 18:50:44.93ID:lHHofMTX
>>113
初期化リストはどう考えても無関係なのだが
0117デフォルトの名無しさん2016/06/03(金) 19:55:12.89ID:svg3/C15
どう考えても無関係と思う人は救いようが無い(かもしれない)
0118デフォルトの名無しさん2016/06/03(金) 20:07:11.55ID:lHHofMTX
どうした
今日はやけに弱気じゃないか
0119デフォルトの名無しさん2016/06/03(金) 21:36:26.41ID:RDs2xD0L
C++相手に強気にはなれない。どうせ一度でちゃんと動くわけないんだから
0120憲法に守られる在日スパイ・創価・ヤクザ2016/06/04(土) 09:01:43.15ID:SVOilD6U
皇室の危機に気づいていますか? 

日本は、2,000年以上続く皇室のおかげで、世界最古の国として、
ギネス認定されているそうです。

自民党は憲法の改正で、日本の国家元首=天皇陛下と条文に明記することで、
天皇制廃止をもくろむ帰化人スパイ勢力(政党、憲法学者、弁護士・言論人等)から、
皇室を守ろうとしています。
※イギリス、オランダ、ノルウェー、デンマーク、スペインなどは国王を国家元首と
 憲法上に定めている。(日本同様、政治の実権は有さない。)
※日本で支配的な「護憲派」憲法学者の多くは反天皇。憲法から天皇の条項ごと削除したい
 人たちなので、本来は改憲派である。(「象徴天皇制度と日本の来歴」坂本多加雄著より)

公明党「天皇は日本の国家元首ではない」 
http://hayabusa3.2ch.net/test/read.cgi/news/1363226509/
自民党・西田昌司
「橋下さん(おおさか維新)の憲法改正は、国柄を破壊することが目的」(自民とは真逆)
https://www.youtube.com/watch?v=sRkdQ2Rlwxs h
日本共産党 「目標としては天皇制をなくす立場に立つ」「天皇制のない民主共和制をめざす」
http://www.jcp.or.jp/jcp/22th-7chuso/key-word/b_1.html#Anchor-0507
反天皇、反皇室で共謀する民主党(現民進党)と田原総一朗
http://blog.liv edoor.jp/fjae/archives/51968115.html
田原総一朗「天皇は、働かないで国民の税金で食ってる。」
https://youtu.be/6Kd1LwY9e0I?t=280 (4:40〜)

※ただし、自民単独(カルト公明党抜き)で2/3議席以上与えない限り、
野党と公明党に骨抜きにされる。  ↓

自民・船田氏…「野党・公明党のみなさんと協議し、衆参両院の3分の2をこえる人が
賛成してくれなければ発議はできない。だからこれから大いなる妥協が始まる。
自民の憲法草案は、 ズタズタになると思って結構だ」
http://hope.2ch.net/test/read.cgi/seijinewsplus/1425226082/
0121デフォルトの名無しさん2016/06/04(土) 21:46:05.05ID:2S+df7BL
void Func(配列ans)
の中で配列ansのサイズと値が計算されるというものを作りたいのですがどうすればいいですか?
要するに配列の参照渡しを動的?にしたいのですが
void Func(double (&ans)[2])とかならできるのですが、サイズは処理中に決まるので困ってます
0122片山博文MZ ◆T6xkBnTXz7B0 2016/06/04(土) 21:49:20.33ID:9azu721e
>>121
テンプレート引数でサイズを指定する。
0123デフォルトの名無しさん2016/06/04(土) 21:52:48.35ID:iAbUPzK8
↑文章を読まずに単語レベルで反応するアスペ
0124デフォルトの名無しさん2016/06/04(土) 21:56:04.92ID:X4oL/Z4d
>>121
std::vector
0125デフォルトの名無しさん2016/06/04(土) 21:56:55.80ID:ZMmgB4OS
本当の配列ならそうするのが正解
でも動的ってのとは違う気がする

動的配列ならvector使えとしか
0126片山博文MZ ◆T6xkBnTXz7B0 2016/06/04(土) 21:57:27.80ID:9azu721e
>>121
サイズが処理中に決まり、その値が予測できなければサイズを渡すしかない。
予測できるなら場合分けでテンプレート。
0127デフォルトの名無しさん2016/06/04(土) 21:59:01.46ID:fK/l9/WM
>>121
vector使う。
動的にサイズが変わるものに対して、いわゆる「配列」を使うのは適切とは思えないし、普通は出来ない。
0128片山博文MZ ◆T6xkBnTXz7B0 2016/06/04(土) 22:00:49.89ID:9azu721e
>>122と>>126を撤回します。
0129デフォルトの名無しさん2016/06/04(土) 22:01:33.72ID:iAbUPzK8
>>127
>普通は出来ない
ほうほう、それは驚きですな
0130デフォルトの名無しさん2016/06/04(土) 22:03:48.74ID:iAbUPzK8
なぜ>>128は>>126を撤回する必要が有ったのか謎だ
おかしな内容ではないと思うのだが
0131デフォルトの名無しさん2016/06/04(土) 22:06:35.17ID:fK/l9/WM
>>129
言葉尻を取られた…

サイズ管理無しに、>>121の書いてあるようなことは出来ないって事だよ。
0132デフォルトの名無しさん2016/06/04(土) 22:14:28.31ID:X4oL/Z4d
煽るか重箱のすみをつつくような事しかしない奴だから無視していいと思う
0133デフォルトの名無しさん2016/06/04(土) 22:17:24.13ID:2S+df7BL
皆様ありがとです
ですがdll化してC#から呼びたいのでvectorは使えないと勝手に思ってたのですができますか?
0134デフォルトの名無しさん2016/06/04(土) 22:20:32.61ID:nEY+89/x
dll のインターフェースはポインタとサイズ(個数)を引数に取るのが王道なんじゃねーの
0135デフォルトの名無しさん2016/06/04(土) 22:24:34.18ID:iAbUPzK8
↑アスペ
0136デフォルトの名無しさん2016/06/04(土) 22:35:24.45ID:Ux1fTD3c
>>133
> ですがdll化してC#から呼びたい
なぜそれを先に言わんのか
0137デフォルトの名無しさん2016/06/04(土) 22:48:52.52ID:2S+df7BL
>>136
申し訳ございません
0138デフォルトの名無しさん2016/06/04(土) 23:09:18.05ID:RoeN3q3R
>>133
C#から直接C++のクラスを扱うことは出来ないですが
インスタンスのポインタを受け渡すことは出来る筈
0139デフォルトの名無しさん2016/06/04(土) 23:16:18.52ID:iAbUPzK8
>>138
>インスタンスのポインタを受け渡すことは出来る

へー、kwsk
0140デフォルトの名無しさん2016/06/05(日) 03:45:05.75ID:Mv8L2a4e
C#って美味しいの?
0141デフォルトの名無しさん2016/06/05(日) 06:05:45.79ID:MTgm06wQ
C++じゃないと実現できないプログラムならC++
それ以外ならC#の方が美味しい
初心者がC++って言う場合訳ありだと思う
大抵の場合C#で十分だし恩恵も多い
0142デフォルトの名無しさん2016/06/05(日) 10:43:06.18ID:8WdagiWY
今では殆どの乗用自動車はATだ。だからMT免許なんて要らないと思うか。社用車を運転せねばならず、且つそれがMTだった時の為にやはりMT免許を取っておくべきなのだ。
0143デフォルトの名無しさん2016/06/05(日) 11:18:57.28ID:LZ4TgvNf
>MT免許なんて要らないと思うか
要らないな
少なくとも万人に「MT免許を取っておくべき」と宣うのはアホの所業
0144デフォルトの名無しさん2016/06/05(日) 12:54:32.38ID:Mv8L2a4e
簡単ならC#ってのやってみようかなぁ
0145デフォルトの名無しさん2016/06/05(日) 14:40:26.26ID:cduS1d4/
いくつか質問いいですか
・unique_ptrはデフォルトのデリータ使うなら(時間的・空間的いずれも)オーバーヘッドがないって本当?
・shared_ptrはカスタムデリータ使う使わないにかかわらず
 アドレス+参照カウント以上の空間的オーバーヘッドがある?
・shared_ptrは保持されるポインタ以外に、カスタムデリータ用の
 メモリを動的確保することがある?
・unique_ptrの右辺値参照を取るコンストラクタにはアロケータを
 指定するバリエーションがない。
 カスタムデリータ用のメモリを動的確保する場合、この領域は
 デフォルトのヒープから取られてしまう?
0146デフォルトの名無しさん2016/06/05(日) 15:13:25.22ID:LZ4TgvNf
>shared_ptrはカスタムデリータ使う使わないにかかわらず
> アドレス+参照カウント以上の空間的オーバーヘッドがある?

無かったらオカルト
0147デフォルトの名無しさん2016/06/05(日) 15:21:54.59ID:1I3s8L22
>>145
実装にも依ると思われ
君の環境は何?
0148デフォルトの名無しさん2016/06/05(日) 16:00:05.50ID:HUKeyAdj
>>145
> ・unique_ptrはデフォルトのデリータ使うなら(時間的・空間的いずれも)オーバーヘッドがないって本当?
オーバーヘッドを強いるような規定は無い。実際にそうなってるかどうかは実装を確認すべし。

> ・shared_ptrはカスタムデリータ使う使わないにかかわらず
>  アドレス+参照カウント以上の空間的オーバーヘッドがある?
ある。 weak_ptr 実装のために必要。

> ・shared_ptrは保持されるポインタ以外に、カスタムデリータ用の
>  メモリを動的確保することがある?
shared_ptr<T> 自体やそれが指す T 型のオブジェクトとは異なる寿命を持ち参照カウントや
カスタムデリータを保持する制御用オブジェクトを動的確保する必要がある。
make_shared<T>() で T 型のオブジェクトとまとめることで削れるようになってて、たいていの実装では
実際に削ってくれるはず。

> ・unique_ptrの右辺値参照を取るコンストラクタにはアロケータを
>  指定するバリエーションがない。
>  カスタムデリータ用のメモリを動的確保する場合、この領域は
>  デフォルトのヒープから取られてしまう?
カスタムデリータ用のメモリを動的確保する必要は無いし、コンストラクタに noexcept が付いてるから
基本的にはできない。
0149デフォルトの名無しさん2016/06/05(日) 18:06:35.53ID:cduS1d4/
皆さんありがとうございます

>>148
> カスタムデリータ用のメモリを動的確保する必要は無いし、コンストラクタに noexcept が付いてるから
> 基本的にはできない。

すみませんこれはたぶん質問の書き方が悪かったと思うのですが
(unique_ptrでなく)shared_ptrのコンストラクタで
unique_ptr &&を取るコンストラクタが
template< class Y, class Deleter >
shared_ptr( std::unique_ptr<Y,Deleter>&& r );
しか無く、アロケータを指定できないみたいなのですが
これを使った場合shared_ptrの制御用オブジェクトのメモリは
デフォルトのヒープから動的確保されてしまうのですか?
unique_ptrからムーブするときに
shared_ptrが制御用オブジェクトを確保するための
アロケータを指定する手段はありますか?
0150デフォルトの名無しさん2016/06/05(日) 18:09:33.03ID:LZ4TgvNf
>>148
>コンストラクタに noexcept が付いてるから
>基本的にはできない

ん?コンテナーか何かと勘違いしてないか
ISO/IEC 14882:2014 20.8.1段落4
『A deleter’s state need never be copied, only moved or swapped as ownership is transferred.』
デリーターはコピーが禁止されているからムーブするしかないと思うのだが
0151デフォルトの名無しさん2016/06/05(日) 18:17:12.18ID:LZ4TgvNf
間違えた
誤 コピーが禁止されているから
正 デリーターの状態も移す必要があってnoexceptなんだから

20.8.1段落4
『if the pre-transfer u.d maintained state, such state has been transferred to u2.d』
0152デフォルトの名無しさん2016/06/05(日) 18:31:03.49ID:D97p9ZEl
>>149
そりゃ書き方悪かったね。

アロケーター指定したいならunique_ptrをrelease()してallocate_sharedに渡せば?
0153デフォルトの名無しさん2016/06/05(日) 20:52:12.41ID:WmT2GOXE
このスレは初心者歓迎だけど
必要なことを説明しない馬鹿は歓迎されない
0154デフォルトの名無しさん2016/06/05(日) 21:56:52.06ID:Mv8L2a4e
それがC++族の心意気 なんつて
0155デフォルトの名無しさん2016/06/05(日) 22:07:34.89ID:QyMHHMZo
それモヒカン族って言うんじゃね
最近のC++関連スレはそんな感じ
0156デフォルトの名無しさん2016/06/05(日) 22:26:38.95ID:Mv8L2a4e
モヒカン言うのですか それわそれわ 北斗の拳に出てくるような連中という意味ですね
0157デフォルトの名無しさん2016/06/05(日) 22:56:12.22ID:D97p9ZEl
いや、煽ったり罵倒するのがモヒカン族ってわけじゃないからね。むしろ対局に位置する。
最近のC++関連スレはモヒカン族からは遠いよ
0158デフォルトの名無しさん2016/06/05(日) 23:51:11.21ID:4G/tEUbL
C++ - Win32 API の境界で STL 文字列を使用する
https://msdn.microsoft.com/ja-jp/magazine/mt238407.aspx

ここ読んでたんだけどchar*を引数に取る関数に
string型の変数strの先頭要素のアドレス投げて直接書き換えて良いんだな、、
0159デフォルトの名無しさん2016/06/06(月) 00:23:38.37ID:okPwaxJe
知らないけど、length()が正しい値を返さなくなっても知らないよ
0160デフォルトの名無しさん2016/06/06(月) 00:42:59.86ID:wLM97oQJ
競合状態を完全に見切って安全なコードが書けるならいいんじゃないかな
0161デフォルトの名無しさん2016/06/06(月) 00:44:56.48ID:QKtG1TNb
記事の手法を取ろうがこれこれこういう理由でダメみたいな話が欲しい
0162デフォルトの名無しさん2016/06/06(月) 04:45:51.98ID:cpTPD2tY
江添亮のAsk.fmに訊くしかない
0163デフォルトの名無しさん2016/06/06(月) 07:17:59.41ID:17Gbf70B
>>159
知らないなら教えてやろう
規格上問題無い
0164デフォルトの名無しさん2016/06/06(月) 15:06:43.73ID:Kzn0M5ki
なんでc_str()で渡さないの?
0165デフォルトの名無しさん2016/06/06(月) 16:21:23.13ID:fj7LYu66
GetWindowText()が要求するのはchar*かwchar_t*だから

まさかconst_cast使う気なの?
0166デフォルトの名無しさん2016/06/06(月) 17:39:21.88ID:77Vire78
c_str()がchar*ではないのかい
0167デフォルトの名無しさん2016/06/06(月) 17:41:18.87ID:O157QY9D
>>166
const char *だ
0168デフォルトの名無しさん2016/06/06(月) 18:22:08.57ID:UuRWbDaA
strcpy の第1引数のようにポインタの指し先の内容を書き換える気マンマンなのが GetWindowText
0169デフォルトの名無しさん2016/06/06(月) 18:25:17.11ID:LRft9OBL
いっそvectorみたいにdataでconstじゃないpointer返してくれればいいのに。
0170デフォルトの名無しさん2016/06/06(月) 19:32:16.12ID:17Gbf70B
C++17でconstでないポインターが返る様になったところで
>>158の様な呼び出し前後でresizeするマヌケなコードを書くぐらいなら
vectorを使った方がいい
0171デフォルトの名無しさん2016/06/06(月) 19:54:31.38ID:KUhWm8XZ
resizeについてはstringでもvectorもどっちもどっちだな
受け取るのは文字列なんだからstringの方が融通が効くんじゃないか?
0172デフォルトの名無しさん2016/06/06(月) 20:05:40.25ID:LRft9OBL
サイズ上限を指定して取得するAPIでは
指定サイズのvectorに書き出してからstring生成とstringのresizeだけなら後者が低コストじゃね。
shrinkされないけど。

実サイズを先に取得するAPIならresizeの必要はないな。

両パターン考えても、vector持ち出すよりstringで閉じている方が分かりやすい
0173デフォルトの名無しさん2016/06/06(月) 20:25:35.80ID:o2HyISxM
stringを使うなら「前」「後」のresizeは省略出来ない
0174デフォルトの名無しさん2016/06/06(月) 20:30:19.61ID:17Gbf70B
>>173
>>172は"abc"を入れたbasic_stringのsize()が4を返しても気にしないタイプ
0175デフォルトの名無しさん2016/06/06(月) 20:43:15.81ID:FnR2Zt2V
そしてif(str==
0176デフォルトの名無しさん2016/06/06(月) 20:44:38.58ID:FnR2Zt2V
if (str == "abc")とやってハマるまでがセット
0177デフォルトの名無しさん2016/06/06(月) 20:48:20.39ID:LRft9OBL
sizeの位置にNUL書き込んじゃうAPIだと微妙か。
規格の表現が微妙っちゃ微妙だがsizeの位置のNULの上にNUL書いたらやっぱりmodify扱いでundefined...なのかね。事実上無意味な制限加えているだけに思えるのだが。
0178デフォルトの名無しさん2016/06/07(火) 18:31:38.72ID:OPiVK8B6
>>177
>規格の表現が微妙
>NUL書いたらやっぱりmodify扱いでundefined...なのかね
貴様まさかModify = Read-Modify-Writeだとでも言い出すのか?
0179デフォルトの名無しさん2016/06/07(火) 21:17:49.43ID:/QGHlwjR
もう許してやれよww
0180デフォルトの名無しさん2016/06/08(水) 08:20:21.47ID:eNSrjZZk
よほど悔しかったんだろ
0181デフォルトの名無しさん2016/06/08(水) 08:23:32.34ID:jg97zSJM
えっ?
0182デフォルトの名無しさん2016/06/08(水) 08:32:19.29ID:Ko7KPTTd
Morphy oneなら知ってるけどな。
0183デフォルトの名無しさん2016/06/09(木) 00:07:05.40ID:hORDRaIv
CからC++の関数を呼ぶには、
---- Cpp.cpp ----
#include <iostream>

class Cpp {
public:
void CppFunc();
};

void Cpp::CppFunc() {
std::cout << "C++" << std::endl;
}

extern "C" void CppFunc() {
Cpp cpp;
cpp.CppFunc();
}
---- main.c ----
extern void CppFunc();

int main(void) {
CppFunc();
return 0;
}
こんな感じでいいのでしょうか?
0184デフォルトの名無しさん2016/06/09(木) 00:57:34.18ID:YjSc12v6
>>183
C の宣言は void CppFunc(void); じゃないと、引数渡してたときにコンパイル通っちゃうよ。

戻り値や引数がある場合の宣言の不一致を避けるため、 #ifdef __cplusplus で
extern "C" を切り分けたヘッダファイルを用意するともっと良い。
https://www.google.com/search?q=ifdef+__cplusplus+extern+C
0185デフォルトの名無しさん2016/06/09(木) 01:13:25.52ID:hORDRaIv
ありがとうございます
リンク先もよく読んでみます
0186デフォルトの名無しさん2016/06/09(木) 07:03:55.28ID:fdzQNk+D
>>184
>戻り値 (中略) がある場合の宣言の不一致を避けるため

具体的にはどのような不一致が?
0187デフォルトの名無しさん2016/06/09(木) 07:27:53.35ID:+EacuYNx
extern void CppFunc();
C++ だと CppFunc() は引数のない関数 ... CppFunc(void) と同じ
C だと引数の型をチェックしない関数
0188デフォルトの名無しさん2016/06/09(木) 07:58:17.92ID:GQB18UJk
>>186
C++の方でCppFuncのsignature変えたときに
Cの方のextern void CppFunc()を変え忘れるとコンパイルエラーも出ずに未定義動作になるのを防ぐためでしょ
C言語単体でヘッダファイル作る理由と一緒
0189デフォルトの名無しさん2016/06/09(木) 08:10:19.77ID:AhNb/u1U
>>187
>CppFunc(void) と同じ
そんな宣言はCには無い
ISO/IEC 9899:2011 6.7.2p2
『At least one type specifier shall be given』

>>188
戻り値がある場合の宣言の不一致の具体例は?
0190デフォルトの名無しさん2016/06/09(木) 08:41:39.58ID:BJL7nX2w
ret CppFunc(arg);
arg が ブランクの場合 / void の場合
ret が ブランクの場合 / void の場合
0191デフォルトの名無しさん2016/06/09(木) 15:28:52.56ID:KqeHMSOJ
.cを.cppにしてビルドし直すってのわ?
0192デフォルトの名無しさん2016/06/09(木) 18:14:49.16ID:sLc19eVn
名前:
E-mail:
内容:
このソースは使わないのでここに書き込みます
#include <stdio.h>
#include <signal.h>
#include <time.h>
#include <unistd.h>

int i = 0;
timer_t timer_id;
struct itimerspec fin;
void timer_handler(int signo)
{ i = i + 1;
if( i = 2000)
printf("2000\n");
timer_gettime(timer_id,&fin);
float temp = fin.it_value.tv_sec + fin.it_value.tv_nsec / (1000*1000);
printf("%f\n", temp);
timer_delete( timer_id );
}

int main(void){
struct sigaction sigact;
struct itimerspec itval;

sigact.sa_handler = timer_handler;
sigact.sa_flags = 0;
sigemptyset(&sigact.sa_mask);
sigaction(SIGALRM,&sigact,NULL);
0193デフォルトの名無しさん2016/06/09(木) 18:16:23.38ID:sLc19eVn
sigaction(SIGALRM,&sigact,NULL);
timer_create(CLOCK_REALTIME,NULL,&timer_id);
itval.it_value.tv_sec = 0;
itval.it_value.tv_nsec = 10*1000*1000;
itval.it_interval.tv_sec = 0;
itval.it_interval.tv_nsec = 10*1000*1000;
timer_settime(timer_id,0,&itval,NULL);
}
posix環境上で上記のプログラムを動かしました
が何も表示されず困ってます
何処をどう直したら良いのでしょうか
0194デフォルトの名無しさん2016/06/09(木) 18:24:41.68ID:AhNb/u1U
>>192
POSIXの仕様は知らんが
一般にシグナル処理の中でprintfは許されないだろう
0195デフォルトの名無しさん2016/06/09(木) 18:33:34.37ID:sLc19eVn
>>194
他のソースじゃ平気なんです
0196デフォルトの名無しさん2016/06/09(木) 18:36:31.83ID:sLc19eVn
やはりhandlerの中で処理を盛り込むのが原因ですかね
しかしpause()を使ってシグナルを待機して処理を行なうと一応値は表示されるんですが一回ループして終了しました
0197デフォルトの名無しさん2016/06/09(木) 18:41:22.52ID:sLc19eVn
>>196のなかに誤謬がありました
>>196の内容は嘘です無視してください
どうしたら治るんでしょうか
0198デフォルトの名無しさん2016/06/09(木) 19:15:18.49ID:vUW3kMHA
「シグナル処理」なんて一括りにする人は回答すべきじゃない
0199デフォルトの名無しさん2016/06/09(木) 19:22:32.97ID:vUW3kMHA
>>192
> if( i = 2000)
i == 2000
だろ

>>193
> timer_settime(timer_id,0,&itval,NULL);
do { int x; read(0, &x, sizeof x);} while (1);
> }
0200デフォルトの名無しさん2016/06/09(木) 19:47:13.06ID:ChqiQLUa
環境もなにも書かないで
>他のソースじゃ平気なんです
とか言っちゃうやつをよく相手にするよなお前らよっぽど暇なんだな
0201デフォルトの名無しさん2016/06/09(木) 19:52:31.02ID:vUW3kMHA
環境 w
雑魚のテンプレな言いがかり w
0202デフォルトの名無しさん2016/06/09(木) 19:55:42.30ID:ChqiQLUa
例えばLinuxなんなら
https://linuxjm.osdn.jp/html/LDP_man-pages/man7/signal.7.html
これくらいは見るべきだし
>>201
お前は雑魚未満
死ねよウンコ野郎
0203デフォルトの名無しさん2016/06/09(木) 20:05:02.07ID:sLc19eVn
環境はcygwinです
0204デフォルトの名無しさん2016/06/09(木) 20:06:52.64ID:vUW3kMHA
>>202
メール欄くらい読んだ方が良いぞ

雑 魚 く ん
0205デフォルトの名無しさん2016/06/09(木) 20:09:28.48ID:vUW3kMHA
>>200
>環境もなにも書かないで
>>他のソースじゃ平気なんです
>とか言っちゃうやつをよく相手にするよなお前らよっぽど暇なんだな

前言翻して顔真っ赤にして喚き出す
典型的な雑魚 w
0206デフォルトの名無しさん2016/06/09(木) 20:11:52.95ID:ChqiQLUa
>>204
今度は偉そうなPOSIX原理主義者かw
メール欄?そんなもの読まねえよバカ
0207デフォルトの名無しさん2016/06/09(木) 20:16:43.32ID:k48grtab
>>199参考にします
0208デフォルトの名無しさん2016/06/09(木) 22:49:27.61ID:sBILMcxb
ここの人すごいですねもうマスターだよマスター
おばあちゃんの知恵袋みたいだ
0209デフォルトの名無しさん2016/06/09(木) 23:39:57.84ID:vUW3kMHA
>>206
雑魚っぷりが、テンプレすぎて笑える

>>193
>posix環境上で上記のプログラムを動かしました

>>200
>環境もなにも書かないで
0210デフォルトの名無しさん2016/06/09(木) 23:44:03.04ID:vUW3kMHA
雑魚の特徴

答えられない質問には質問の不備を指摘する
質問の不備が訂正されてもやはり答えられない
0211デフォルトの名無しさん2016/06/09(木) 23:49:32.68ID:xqhnbb1P
今日のキチガイMVPはID:vUW3kMHAだな
まあ>>199のレスは質問者の役に立ったかも知れない
0212デフォルトの名無しさん2016/06/09(木) 23:51:25.23ID:Zq6nIrTw
うむ、ご苦労
0213デフォルトの名無しさん2016/06/10(金) 00:16:04.13ID:af0Q21Gi
>>211
>>199より後で>>200,202,206と的はずれな戯言を繰り返す雑魚があわれすぎるだろ

>>194はうまく逃げたな
printfは初回の呼び出しだけは<非同期>シグナル処理の中で使わないようにすれば良い
0214デフォルトの名無しさん2016/06/10(金) 00:33:50.22ID:ksaxsahD
>>213
> >>194はうまく逃げたな
何かヤバいクスリでもやっているのかね。
「はて、どこを突っ込まれたか。まさか非同期と明記しなかったからかいやそれはコミュ障すぎるだろう。わからないけどまあいいや」
と思って放置していただけだが
0215デフォルトの名無しさん2016/06/10(金) 00:47:37.08ID:af0Q21Gi
>>213
> printfは初回の呼び出しだけは<非同期>シグナル処理の中で使わないようにすれば良い
こいつは取り下げ

>>214
底辺は同期/非同期の区別無しに盲目的に避けるらしいが、
同期シグナル処理中にprintfを使う事は全然問題無い
0216デフォルトの名無しさん2016/06/10(金) 14:17:25.47ID:jOBGgXYd
C++がある今Cって必要なんですか?
組み込みだとCらしいですけどC++じゃできないんですか?
0217デフォルトの名無しさん2016/06/10(金) 15:46:31.09ID:baDQtEcV
他言語のライブラリが、実はCでの実装をラップしてるだけだった、なんてことがまあまあある
0218デフォルトの名無しさん2016/06/10(金) 18:43:50.29ID:00vc+0uP
Linusにぶっ殺されるぞ…
0219デフォルトの名無しさん2016/06/10(金) 18:50:56.50ID:zf4Dh+4e
キチガイLinusの大好きな言語=C
つまりCは糞
0220デフォルトの名無しさん2016/06/10(金) 19:23:35.03ID:7xQ2IbxD
>>217
ラップしてると言うか複数の言語をサポートするライブラリの実装は大抵Cだし
0221デフォルトの名無しさん2016/06/10(金) 19:54:48.97ID:XqAkh7YW
自分の乗ってる船の底に穴を開けようとするのが基地外や
0222デフォルトの名無しさん2016/06/10(金) 20:05:57.76ID:aspR4Ygi
linuxだって重要な部分はC++で書かれてるとの事。
まぁ全部重要なんだが。
0223デフォルトの名無しさん2016/06/10(金) 20:10:57.22ID:lJsEyLcp
>>222
おいおい,そんな事実はどこにある?
0224デフォルトの名無しさん2016/06/10(金) 20:30:17.80ID:HFw0DvR5
222の重要な部分はchromeとかなんだろ
0225デフォルトの名無しさん2016/06/10(金) 20:30:42.98ID:aspR4Ygi
いやー ストラップ先生の本に書いてあっただけ
0226デフォルトの名無しさん2016/06/10(金) 20:40:35.04ID:lJsEyLcp
>>225
さすがに linux について禿先生がそんな発言をすることはあり得ないだろうに
0227デフォルトの名無しさん2016/06/11(土) 00:00:35.49ID:EaMJvpi+
>>226
C++第四版見なさい。
0228デフォルトの名無しさん2016/06/11(土) 07:30:21.01ID:8DPEVAdJ
linusはアンチc++で有名だが
0229デフォルトの名無しさん2016/06/11(土) 08:53:47.04ID:Gk5ZN5zh
>>227
そんなに見てほしいなら
ケツの穴広げてお願いしてみろよ
そして第何節に書いてあるのか言って見ろバーカ
0230デフォルトの名無しさん2016/06/11(土) 10:09:03.05ID:1hn1NZl3
Linuxの重要な部分とやらが何を指しているのかわからないが
彼方此方から使われるパフォーマンスが求められる基本的な部分というのであれば
アセンブリとCで書かれているのは間違いがない
0231デフォルトの名無しさん2016/06/11(土) 10:19:21.93ID:AvTqLvrc
Cやアセンブリで書いた方が実行速度が速いってんなら、
きっとキチガイじみたC/アセンブリの能力を持ってるんだろうね

Common Lispで書いた方が速くなるケースも多いよ。正規表現マッチャとか。
I/O周りをLispで書けとは言わんが。
0232デフォルトの名無しさん2016/06/11(土) 11:02:17.42ID:hLugldX8
>>229
勘弁して下さい
そんな太いのムリですケツの穴ちぎれちゃいます
0233デフォルトの名無しさん2016/06/11(土) 11:10:22.14ID:EaMJvpi+
>>229
本屋行って一章読めば済む話。すぐわかる。
アマゾンもC++だそうだ。ほんまかいな。
0234デフォルトの名無しさん2016/06/11(土) 13:01:12.70ID:0dDbJM6A
まあ、素人が書くC++より玄人が書くJavaの方が速い。アルゴリズムこそ重要ということだ
0235デフォルトの名無しさん2016/06/11(土) 13:16:10.96ID:1hn1NZl3
カーネルは速い遅いのほかにメモリ効率やレスポンスの問題もある
だからメモリを直接いじれるCが使われるわけであって

Linuxのカーネルの話をしているときに、CommonLispがどうとかJavaがどうとか言い出すのはおかしい
全く関係のない話
0236デフォルトの名無しさん2016/06/11(土) 13:21:10.86ID:1hn1NZl3
というか、CommonLispやJavaじゃ直接ハードウェアを制御できないし
マークスイープ系GC付きの言語でカーネルを開発するとか有りえないし
Linuxのカーネルには関係がない
0237デフォルトの名無しさん2016/06/11(土) 13:35:56.33ID:1hn1NZl3
全てのプロセスから使われるカーネルの最も基本的な部分としてプロセススケジューラがあるけど
こういった中枢はCやアセンブリで書かれているのに違いない、という話をしている
JavaやCommomLispで書くわけがない
0238デフォルトの名無しさん2016/06/11(土) 13:58:01.26ID:RWVeQXPa
いつからLinuxカーネルの話になったんだ
Linuxの重要な部分は不明のまま宙に浮いている状態だと思うんだが
0239デフォルトの名無しさん2016/06/11(土) 14:00:56.18ID:QCYIGn/3
男は度胸! 何でもためしてみるのさ - 阿部高和


>>227 >>233 の情報により探すべき場所が分かったので
『プログラミング言語C++第4版』第1章を見た(立ち読みではない)。

1.4.5 C++はどのように使われているのか (p.35)
「現在のオペレーティングシステム(略・OS列挙にLinux含む)でも、
主要部分がC++で記述されている」

とりあえず >>222 >>225 の主張「『Linuxも主要部分がC++で書かれている』と
ストラウストラップの本に書いてあった」は正しいと確認できた。
親分の主張が本当かは別の話だけどね。


でも本屋で立ち読みするにはデカすぎるよ、この本。
0240デフォルトの名無しさん2016/06/11(土) 14:15:43.70ID:b4RXfT2Q
>>238
OSの重要な部分がカーネルじゃないと言う主張?
なかなか斬新だな
0241デフォルトの名無しさん2016/06/11(土) 15:02:58.71ID:0dDbJM6A
わかった、もうわかったからやめてくれ
0242デフォルトの名無しさん2016/06/11(土) 15:27:31.25ID:RWVeQXPa
>>240
重要なのはNTカーネルかDarwinかHURDかLinuxかということじゃない
どんなライブラリやフレームワークが使えるのかということだ
という考え方もあると思うし特に斬新だとも思わない

ひょっとしたら昔のWinodowsならMS OFficeとか一般的にはWebブラウザとかが
OSの主要な利用目的だという人には特定のアプリが主要部分かもしれない
0243デフォルトの名無しさん2016/06/11(土) 16:35:40.64ID:b4RXfT2Q
> Linuxの重要な部分
の話に
> NTカーネルかDarwinかHURD
とか頭おかしい
0244デフォルトの名無しさん2016/06/11(土) 16:50:17.46ID:RWVeQXPa
>>243
>>240が「OSの主要な部分」に言及していることへのレスだからおかしなことはない
Linuxの主要な部分はOSの主要な部分と密接に関連する事でありその意味でもおかしくない

他人の頭がおかしいと思う時は同じ確率で自分の頭がおかしい可能性を考慮した方がいい
0245デフォルトの名無しさん2016/06/11(土) 17:01:25.22ID:1hn1NZl3
つまり、お前の頭がおかしいって自分で言ってるわけだな
0246デフォルトの名無しさん2016/06/11(土) 17:17:32.19ID:TH7fz8sf
>>244
話の流れも読めないアホ乙
0247デフォルトの名無しさん2016/06/11(土) 17:23:38.09ID:RWVeQXPa
人格攻撃はつまらんからもう引っ込むよ
0248デフォルトの名無しさん2016/06/11(土) 17:27:18.79ID:1hn1NZl3
>Linuxの主要な部分はOSの主要な部分と密接に関連する事でありその意味でもおかしくない

まずもってこの言葉が意味不明
Linuxの主要な部分もOSの主要な部分もカーネルであるから
結局、Linuxの主要な部分はカーネルってことになって何の反論にもなっていない

カーネルは核という意味であるし
シェルは殻という意味であるし
アプリケーションは応用ソフトと訳す
ソフトウェア業界共通の考え方

OSの主要な部分や、それに準じる言い方をしたときに
それがカーネルを指さないのだとしたら
単に発言をした人の言語能力が無いか、考え方がおかしいか、常識が無いか
何かは知らないが
こちらは変な考え方に合わす気は全くない
0249デフォルトの名無しさん2016/06/11(土) 17:29:03.90ID:38ifMasY
余所OSはどうでもいい
C++嫌いの linus の linux の重要な部分(カーネルと受け取るよなぁ)で 本当にC++が使われてるの?
0250デフォルトの名無しさん2016/06/11(土) 17:31:57.25ID:1hn1NZl3
つまり、元の原文がLinuxの主要部分をどういう意味で使っていたかにかかわらず
普通に考えればLinuxの主要部分がCで書かれているのは周知の事実なわけだから
言っていることがおかしい、と、単に切り捨ててしまえばよい
実際に文章としておかしいわけだから、それでよい
0251デフォルトの名無しさん2016/06/11(土) 17:50:08.81ID:1Pvaghsz
kindleのサンプルで該当部分が読めるな
Early applications tended to have a strong systems programming flavor. For example, several early operating systems have been written in C + +: [Campbell, 1987] (academic), [Rozier, 1988] (real time), [Berg, 1995] (high-throughput I/ O).
Many current ones (e.g., Windows, Apple’s OS, Linux, and most portable-device OSs) have key parts done in C + +.
0252デフォルトの名無しさん2016/06/11(土) 18:04:02.27ID:1Pvaghsz
「C++で書かれた重要な部分を持つ」だな
0253デフォルトの名無しさん2016/06/11(土) 18:08:40.19ID:EaMJvpi+
まぁC++の方が記述が楽で、速度もそんなに変らなかったから採用したとか?
CでもC++でもgccは結局アセンブラでコード吐くから、どっちでもいいのかな。
カーネルは触った事ないからほんとわかんない。
0254デフォルトの名無しさん2016/06/11(土) 18:29:32.06ID:xVWoidXE
ハゲの本は妄想で書かれたデタラメなので昔からISO規格との乖離が激しい
Linuxについては>>250の通りだが糞本の誤りを挙げてもきりがない
0255デフォルトの名無しさん2016/06/11(土) 19:15:05.42ID:wrMutv45
今となってはメジャーなオープンソースコンパイラはgccもclang(llvm)もc++
で書かれているから、少なくとも間接的に重要な一部ではあるな。
0256デフォルトの名無しさん2016/06/11(土) 20:03:43.27ID:QkEgHpib
あのLinusがC++で書かれたコードをLinuxカーネルに含めるわけないじゃん
gitもC++とそれを使う人を排除するためにC使ってるような人だぜ
0257デフォルトの名無しさん2016/06/11(土) 21:57:49.75ID:EaMJvpi+
>>255
なーるw
ちょと調べた やぱアンチC++厨ってのいるみたいね。
>>256
リヌースはもうメンテナやってないのでは?
0258デフォルトの名無しさん2016/06/11(土) 22:18:36.68ID:i36KAbVu
プログラミング初級者の俺の感覚で言うと
Cは古臭い感じがする
C++は何かコードがカッコいいです
例えるならCは国産車でC++は外車
0259デフォルトの名無しさん2016/06/11(土) 23:43:26.04ID:7KlndMKo
いまのLinuxのカーネルはC++でないとコンパイルできない?
0260デフォルトの名無しさん2016/06/12(日) 00:14:00.06ID:5DLfankQ
実際C言語は古いからなぁ
構造化しただけのアセンブラと言われたくらい低レベルなのが逆にC言語の強み
C++が滅んでもC言語は滅ばないだろう

でもそこからC++が再生産されると思う
0261デフォルトの名無しさん2016/06/12(日) 01:42:07.98ID:LFy/DKKP
C/C++はメモリの管理に関しては他の高級言語を寄せ付けないからね
一応D言語とかもあるけど全然流行ってないしね

単なるメモリブロックをキャストして構造体や基本型とみなして、ガシガシ演算できるし
不必要な動的メモリ確保をしなくてもよいようになっていたり
メモリ配置がシンプルだったり
こういった言語は必要な時は必要だから、すごく貴重
0262デフォルトの名無しさん2016/06/12(日) 02:35:27.16ID:6+0CTg9r
>>260
ゴキブリみたいな言語やな
0263デフォルトの名無しさん2016/06/12(日) 02:52:53.96ID:jeDA2wHS
Cは忘れてもちょちょいと調べれば大丈夫だかんなぁ。
0264デフォルトの名無しさん2016/06/12(日) 08:33:45.93ID:8zbSJCgw
忘れてもちょちょいと調べるだけで済まないC++の複雑さが異常
0265デフォルトの名無しさん2016/06/12(日) 11:08:07.40ID:6+0CTg9r
積分の計算とC++は似ている
やってないと凄く鈍る
0266デフォルトの名無しさん2016/06/12(日) 12:03:36.02ID:txXY6IjH
そんなもん数学全般・プログラム全般一緒や
0267デフォルトの名無しさん2016/06/12(日) 13:23:52.04ID:jeDA2wHS
x^(1/2)を微分してください
0268デフォルトの名無しさん2016/06/12(日) 14:01:18.72ID:PImQTz6v
いやc++もちょいちょい調べれば済むだろう。
0269デフォルトの名無しさん2016/06/12(日) 14:51:58.14ID:CtcpeTfj
ちょっと調べてv2の値がわかる人はかなり変人
inline int f () {return 1;}
extern int v1;
int v2 = v1;
int v1 = f();
0270デフォルトの名無しさん2016/06/12(日) 15:11:47.30ID:CwU67sCL
変人というよりバカだろ
そこコードだけじゃ「分からない」が正解
0271デフォルトの名無しさん2016/06/12(日) 15:22:55.86ID:cjUhha15
リンカがエラーを吐く時の気持ちがわかる
0272デフォルトの名無しさん2016/06/12(日) 15:54:00.50ID:jeDA2wHS
ちょちょいとコンパイラに聞いてもいいでしょうか
0273デフォルトの名無しさん2016/06/12(日) 22:26:52.06ID:/M2KEAMW
C言語実務歴9年です。このたび仕事の関係でC++を使わざるを得なくなり
入門書籍を数冊あたりましたが、どうしてもC++「らしい」コードが書け
ません。Cで考える癖が抜けないというか…
特に継承をうまく使えないのですがなにか参考になる書籍やサイトはあり
ませんか?
読んでコードも打ち込んで動かしてみた本は以下です:
「ロベールのC++入門講座」
「C++クラスと継承完全制覇」
「美しいC++プログラミング見本帖」
0274デフォルトの名無しさん2016/06/12(日) 22:36:43.15ID:txXY6IjH
別にそれで動くならいいと思うんだけど・・・
あと参考にすべきは書籍じゃなくてオープンソースコードじゃね
0275デフォルトの名無しさん2016/06/13(月) 01:44:12.10ID:0+PgBkzo
Cだとこう作りましたと説明出来るけど、C++ではそう言えないなら
背後のソフトウェア工学の歴史を学ぶといいと思う。
なぜオブジェクト指向でつくるのか第二版 がいいよ。
カプセル化、インヘリタンス、ポリモフィズムが綺麗に説明されてる。
ただし、Javaがベースなってるんでそこはまぁw
0276デフォルトの名無しさん2016/06/13(月) 03:08:23.31ID:y0BBPPFa
そもそも継承は使う必要がないなら使わない方が良いような
0277デフォルトの名無しさん2016/06/13(月) 05:56:59.55ID:CYf6PZlM
Javaとかいう現代のCOBOL
0278デフォルトの名無しさん2016/06/13(月) 06:56:03.84ID:0+PgBkzo
あれ 前にも同じようなクラス作ったよな って時が汎化と特化のチャンスかと
0279スッキリ厨2016/06/13(月) 07:45:20.14ID:Qv09sGPU
C言語を10年以上やっている、老害プログラマでも、C++は出来ない。
脳みそが手続き型だから

まずこの本で、脳みそをオブジェクト指向にして下さい。
スッキリわかる Java入門 第2版、2014

20時間もあれば読める。3回読むといい
0280デフォルトの名無しさん2016/06/13(月) 11:02:28.51ID:Q5b45iCV
>脳味噌が手続き型だからC++はできない

??????
0281デフォルトの名無しさん2016/06/13(月) 18:40:26.33ID:PuKo8N3u
オブジェクト指向言語としてはJavaの方が上だし、システム記述言語としてはCの方が上だから、
Windows専用言語だな。
0282デフォルトの名無しさん2016/06/13(月) 18:41:45.20ID:lgEcYsTe
ぷっ
0283デフォルトの名無しさん2016/06/13(月) 20:31:24.62ID:FbBzWjf+
>>281
> オブジェクト指向言語としてはJavaの方が上だし
ハイハイお前の言う通りだからおとなしく巣に帰れ
0284デフォルトの名無しさん2016/06/13(月) 20:59:47.08ID:9Qdxrte8
実際そこ”だけ”みたらそうじゃね?
0285デフォルトの名無しさん2016/06/13(月) 21:09:03.19ID:PuKo8N3u
巣ってC++相談室の事?
0286デフォルトの名無しさん2016/06/13(月) 21:47:17.65ID:nKeXx6ro
C++の勉強をしようという奴にjavaやらせるとかどういう意地悪だ?C++はあんなスクリプトとは似て非なるものだ。

>>273
「C++ 入門書の次に読む本」
https://www.amazon.co.jp/C-%E5%85%A5%E9%96%80%E6%9B%B8%E3%81%AE%E6%AC%A1%E3%81%AB%E8%AA%AD%E3%82%80%E6%9C%AC-%E6%9C%9D%E4%BA%95-%E6%B7%B3/dp/4774126942?ie=UTF8&;*Version*=1&*entries*=0
0287デフォルトの名無しさん2016/06/13(月) 22:07:41.74ID:rR6RTR1C
多重継承も出来ないオブジェクト指向なんて
0288デフォルトの名無しさん2016/06/14(火) 05:02:31.27ID:ZiV/YhNq
Ocamlを少し覗いたけどリスト処理周りの扱い易さに衝撃を受けた
C++ってマジガチでアセンブラで組む必要があるけどツライのでお願い
あと、ちょと高度な機能も追加してって感じだな
C++でリストとかツリー構造を使うと軽く死ねる
ml系は天国
0289デフォルトの名無しさん2016/06/14(火) 08:05:33.85ID:0VVNdSFg
>>273
C++らしいって話とオブジェクト指向の話は重なったりなかったりするので区別して勉強した方がいい
0290デフォルトの名無しさん2016/06/14(火) 08:46:44.67ID:bXJY80s3
原付2種は60km/hで走行可能なので高速自動車国道を走行できる
正 否

雨の日に歩行者の傍を通過するので徐行するも、それでも水溜まりの水をかけてしまったが、自動車運転者は十分な努力をしたといえるので責任はない
正 否

アセンブリ言語の、コンパイラに相当するものをアセンブラと言う
正 否
0291デフォルトの名無しさん2016/06/14(火) 14:14:43.74ID:dpmhkNFr
た 多重継承ってやった事ないっす 頭ウニになりそうで
0292デフォルトの名無しさん2016/06/14(火) 15:21:10.15ID:5mj4vfHf
コンテナクラスのアクセスの仕方について誰か教えてほしいです。
こんな感じのプログラムを書いてるのですが、

class TEST {
public:
vector<int> a[32];

TEST() : a() {};
};

TEST test;
auto itr = test.a.begin()

最後の行のイテレーター定義部分で、「式にはクラス型が必要です」とのエラーが出てしまいます。
ただ、この行を、

auto itr = test.a->begin()

と変えるとエラーが消えて正常に(?)定義ができます。
これが何故なのかさっぱりわかりません・・・。
vectorのメンバ関数って別に普通にドット演算子でアクセスできますよね?
なんで急にポインタを参照するためのアロー演算子が出てくるのでしょうか・・・。
0293デフォルトの名無しさん2016/06/14(火) 15:24:50.62ID:ib+gOtfn
[32] で vector<int> の配列になってるんでねーの? 知らんけど
0294デフォルトの名無しさん2016/06/14(火) 15:31:55.80ID:jZNoibgh
この板キチガイ多すぎない?
0295デフォルトの名無しさん2016/06/14(火) 15:35:52.97ID:jZNoibgh
vector<int> a[32]は大きさ32のvector一つじゃなくて、vector<int>を指すポインタ32個の配列になってる
0296デフォルトの名無しさん2016/06/14(火) 15:49:59.88ID:WFKEQApp
>>295
ポインタじゃないstd::vector<int>の実体32個の配列
すぐ人をキチガイ呼ばわりするやつはダメだな
0297デフォルトの名無しさん2016/06/14(火) 15:52:25.05ID:5mj4vfHf
>>293
>>295
なるほど・・・ありがとうございました。

vector<int> a[32];は、メンバイニシャライザでvectorの初期化をできないかと色々調べつつやってて、出来たモノでした・・・。

となると、クラス宣言部分で、メンバ関数Vectorの要素数を決めつつ、初期化って事は不可能ってことなになるのかな?
配列ならできるのにorz

大人しくコンストラクタ内で、必要な数だけpush_back() でもするのが普通の使い方なのかな・・・。
0298デフォルトの名無しさん2016/06/14(火) 16:05:35.45ID:WFKEQApp
>>297
使ってるコンパイラがC++11に対応してるなら
std::vector<int> a=std::vector<int>(32);
って書けると思うけど
対応してないならコンストラクタの初期化リストで要素数指定すればいい
0299デフォルトの名無しさん2016/06/14(火) 16:36:54.70ID:5mj4vfHf
>>298
vector<int> (32)って書き方があったのですね・・・。

public:
 vector<int> a(32);

ってやり方最初に試してエラーでるから、メンバ変数では要素数指定は使えないものだと勝手に思い込んでました。
コンパイラも対応してるみたいですので、これでやってみます。

(この状態で要素の値をを見ると、何故かちゃんと0になってる(初期化されてる?)のですが、これはコンテナクラスの仕様かな?
これはコンテナクラスについて、勉強して調べて置きます・・・)

ありがとうございました。
0300デフォルトの名無しさん2016/06/14(火) 16:43:14.90ID:NZckrNzn
クッソワロタァ!
0301デフォルトの名無しさん2016/06/14(火) 17:19:34.51ID:pvbdvxAh
初心者ですがよろしくお願いします
下記の様なクラスが宣言されたとします
この下のprivate slots:のslotsの意味がわかりません
単にprivate:だけでよいのでは?
回答よろしくお願いします
class Notepad : public QWidget
{
Q_OBJECT←これはマクロです

public:
Notepad();

private slots:←このslotsの意味がわかりません
void quit();

private:
QTextEdit *textEdit;
QPushButton *quitButton;

};
0302デフォルトの名無しさん2016/06/14(火) 17:33:22.12ID:WFKEQApp
>>301
Qtで定義されてるマクロで、qmakeでparseされる
Qtスレで聞いた方がいい
0303デフォルトの名無しさん2016/06/14(火) 17:56:00.24ID:mJgq2R2v
>>302やはりマクロだったんですね
スレ違いすいませんでした
ありがとうございました
03042732016/06/14(火) 19:19:41.05ID:Oz3bsvh7
みんなありがと
さっき教えてもらった本買ったよ
0305デフォルトの名無しさん2016/06/14(火) 21:55:46.66ID:ZDMehPsf
>QWidget

なんか嫌な名前だな
#define entern
とかしてそうだ
0306デフォルトの名無しさん2016/06/14(火) 23:20:26.82ID:mJgq2R2v
質問があります
0307デフォルトの名無しさん2016/06/14(火) 23:28:10.56ID:mJgq2R2v
class a{
public:b(){

int x = 0;
}
void c(){
}
};

void c()内から変数xを操作する方法はないのでしょうか
0308デフォルトの名無しさん2016/06/14(火) 23:35:03.86ID:mJgq2R2v
bはaとしても可です
要はコンストラクタで宣言された変数を他の関数内で使う場合はどうしたらよいのでしょうか
初心者ですがすいませんでした
0309デフォルトの名無しさん2016/06/14(火) 23:55:17.08ID:DMYddHZA
そのクラスのメンバ変数にすれば?
0310デフォルトの名無しさん2016/06/14(火) 23:56:07.06ID:AMaRAnQG
コンストラクタ内で宣言したローカル変数xはコンストラクタが終わった時点で消えるものと思ってください
xがグローバル変数であるとかクラスaのメンバ変数であるとかでないと無理だと思います

あと詳しい人よろしこ
0311デフォルトの名無しさん2016/06/15(水) 00:06:56.94ID:+fto8mir
グローバル変数ってどう定義するんですか?
pythonだとglobal修飾子をそのままつければいいものだったけど
0312デフォルトの名無しさん2016/06/15(水) 00:09:17.85ID:JxLjXALv
トップレベルのスコープで変数宣言
0313デフォルトの名無しさん2016/06/15(水) 01:13:07.03ID:6m5ApfU9
>>311
姑息なプログラミングでない限り、グローバル変数の使用は通常お勧めいたしておりません
0314デフォルトの名無しさん2016/06/15(水) 01:37:10.55ID:+TkysGmJ
関数、クラスの外で宣言すれば外部変数ですよ。どこでも。
もちろん他コンパイル単位からアクセスする場合はexternをつける。
0315デフォルトの名無しさん2016/06/15(水) 01:43:36.62ID:50wzyrZY
>>258
アホか
0316デフォルトの名無しさん2016/06/15(水) 01:45:14.62ID:50wzyrZY
>>271
リンカに意識はない
0317デフォルトの名無しさん2016/06/15(水) 04:34:16.40ID:Nqdw+vDa
>>258
Cはインディーカー
C++はF1
Javaはセーフティカー
0318デフォルトの名無しさん2016/06/15(水) 10:24:21.09ID:orNzYnVk
>>315 >>316
そんなしょーもない遅レスすんな
出遅れたなら心の中にしまっとけ
0319デフォルトの名無しさん2016/06/15(水) 11:02:02.67ID:50wzyrZY
>>318
もう少し気の利いたレスしろや
だからおまいはいつまでも童貞なんだよ
0320デフォルトの名無しさん2016/06/15(水) 11:47:37.50ID:R5kYdbzu
そんなことを言っても>>315,316がクソレスである事実に変わりない
0321デフォルトの名無しさん2016/06/15(水) 12:16:39.33ID:AN5Y5vs6
ところでクラスの静的変数はグローバル変数に含みますか?
0322デフォルトの名無しさん2016/06/15(水) 12:18:12.07ID:lzA0Ui07
含みません
0323デフォルトの名無しさん2016/06/15(水) 14:22:48.92ID:50wzyrZY
まあこのスレは童貞の溜まり場。↑も↓も俺も。
0324デフォルトの名無しさん2016/06/15(水) 14:50:55.49ID:+TkysGmJ
あんだと貴様 ぶっとばすぞー
0325デフォルトの名無しさん2016/06/15(水) 21:16:23.68ID:OvA7yRcZ
今更Visual C++2012 なんだけどさ、
http://ideone.com/R7tTc6
これがなぜか実行時にクラッシュ(segmentation fault)するのよ。

大規模なプログラムでこんなのに当たったら、まずバッファーオーバーフロー疑って
時間浪費してしまうだろうと思うと恐ろしいわ・・
0326デフォルトの名無しさん2016/06/15(水) 21:56:26.85ID:k+QmXXah
似たようなバグを2013で見たことがあるな。
アセンブラ出力を見たら間接参照のレベルがずれていてメモリアクセス違反で落ちたので
きっと関数への参照型の型推論をミスしたのだろう
0327デフォルトの名無しさん2016/06/15(水) 22:20:34.66ID:+TkysGmJ
コンパイルは通るんだもんねぇ。
0328デフォルトの名無しさん2016/06/15(水) 22:41:45.50ID:8QoAo+0t
>>325
手元にVS2012がないので試せないけど
fcallに渡す前にremove_referenceすればいいんでないの
ポインタの参照の参照なんか取れる訳ないので動作としては正常かと
0329デフォルトの名無しさん2016/06/15(水) 22:50:03.02ID:k+QmXXah
>ポインタの参照の参照なんか取れる訳ない
んなこたーない

>動作としては正常
んなこたーない
0330デフォルトの名無しさん2016/06/15(水) 22:55:35.79ID:6m5ApfU9
マジかよMS最低だな!
0331デフォルトの名無しさん2016/06/15(水) 23:27:48.82ID:8QoAo+0t
>>329
参照ってポインタの糖衣構文だから、ポインタと同じだよ
ポインタのポインタのポインタを取ったらそりゃsegfaultするだろっていう
0332デフォルトの名無しさん2016/06/15(水) 23:49:06.45ID:k+QmXXah
>>331
>>328は参照を受け取る関数に参照変数を渡すことを参照の参照を取ると言っているようだが
それと>>331のレスにどのような繋がりがあるのかね。
それに>>325を見てポインターの参照かがどこから出てきたのか。
0333デフォルトの名無しさん2016/06/16(木) 07:16:12.20ID:zmO6Lq/E
クラスのstaticメンバもトップレベルの変数もリンカから見たら差はない
どこからでもアクセスできる
0334デフォルトの名無しさん2016/06/16(木) 16:09:26.45ID:rsf/7RT/
privateでもぉ?
0335デフォルトの名無しさん2016/06/16(木) 19:55:49.71ID:tScAcg4U
>>334
アスペかよお前は
14.7.2でも使ってprivateアクセスしてろバーカ
0336デフォルトの名無しさん2016/06/16(木) 20:06:28.01ID:9IaDv8pz
構わなきゃいいのに
0337デフォルトの名無しさん2016/06/16(木) 20:38:54.54ID:cs6nx/n7
ハハワロス
0338デフォルトの名無しさん2016/06/16(木) 20:44:36.92ID:RzCdkn+H
ははははははとわらう
0339デフォルトの名無しさん2016/06/16(木) 23:49:57.20ID:9QdcGZv1
グローバルオブジェクトはいいの?
メンバ変数をメンバ関数でしっかり管理してるって前提だけど。
0340デフォルトの名無しさん2016/06/17(金) 00:33:01.77ID:ny8DMCFm
プロセス中に絶対一つしか存在しえないオブジェクトで
しかもシステムの基本的な部分であり彼方此方から参照されるんなら良いんじゃね?
例えばジャイアントロック用の同期オブジェクトとか
0341デフォルトの名無しさん2016/06/17(金) 08:23:55.45ID:sVvcnXcM
拙者、便意を催したでござる
俺グローバルオブジェクトのコンストラクタでジャイアントロックする
ブリブリィッッ
0342デフォルトの名無しさん2016/06/17(金) 12:43:12.27ID:jaeNUsNr
ジャイアントロックって名前が凄いな
0343デフォルトの名無しさん2016/06/17(金) 18:44:43.59ID:PuKdxxvH
>>339
別にいいけど
キャッシュ管理とかサービスバスとかDIコンテナとか読み取り専用オブジェクトとか普通に使うプロジェクトはあるし好きにすればいい
ただグローバルオブジェクトじゃないとダメだって状況はあまりないね
それと使うにしてもグローバルオブジェクトと認識しないと使えないような設計はバッドだね
0344デフォルトの名無しさん2016/06/17(金) 19:58:15.60ID:tKBpRkev
C++の標準ライブラリに喧嘩売ってんのかw
0345デフォルトの名無しさん2016/06/17(金) 20:33:44.49ID:h8nQ2p5e
VC2015を使用して、文字セットでUNICODEを選択して開発しています。

SJISのテキストファイルから読み込んだ文字列をSetDlgItemText()に渡しているのですが
SetDlgItemTextW()に渡すために事前にMultiByteToWideChar()でワイド文字に変換するのが煩わしいので
自分でSetDlgItemTextA()を呼んで直接マルチバイト文字列のまま渡してしまおうと考えています。

このようにマルチバイト文字列を受け取る関数とUNIDCODE文字列を受け取る関数を混在させてもOKでしょうか
0346デフォルトの名無しさん2016/06/17(金) 20:34:28.42ID:ISmRq0te
std::coutってmain開始前は使えないよな?
0347デフォルトの名無しさん2016/06/17(金) 21:01:12.09ID:ftTJ8Y9E
>>346
実装によるんじゃね?
そこまで規定してたっけ?
0348デフォルトの名無しさん2016/06/17(金) 21:23:06.23ID:5HmA4kNf
ISO/IEC 14882:2014 27.4.1p2
The objects are constructed and the associations are established at some time prior to or during the first
time an object of class ios_base::Init is constructed, and in any case before the body of main begins execution.

mainの本体が実行される前にcoutが初期化されることは保証される
0349デフォルトの名無しさん2016/06/17(金) 21:33:18.57ID:5fWY3W8K
>>345
OK
0350デフォルトの名無しさん2016/06/17(金) 21:51:29.39ID:h8nQ2p5e
>>349
ありがとうございます
0351デフォルトの名無しさん2016/06/17(金) 23:06:46.37ID:jaeNUsNr
main前ってどゆこと?
0352デフォルトの名無しさん2016/06/18(土) 04:59:56.10ID:YZGqi88u
>>348
それは main が実行される時には使える
って言うだけで
main 実行前に使える保証にはならんよ
0353デフォルトの名無しさん2016/06/18(土) 05:24:27.36ID:q0688PJ8
>>351
グローバル変数の初期化の時点
int main() {}
A global_unko;// A::A()の実行
int global_unko2 = f(); // fの実行
0354デフォルトの名無しさん2016/06/18(土) 12:47:38.42ID:thbDmWc+
>>353
グローバルオブジェクトの初期化に関数が使える(使えてしまう)
って事か。
0355デフォルトの名無しさん2016/06/18(土) 12:54:46.90ID:3Ro7Pv4n
main以前に動けるアプリケーションコードがあるということ
0356デフォルトの名無しさん2016/06/18(土) 19:43:35.89ID:KfEx8M6W
無いだろう‥普通
0357デフォルトの名無しさん2016/06/18(土) 20:03:49.68ID:ankGZ2Cj
C++サポートしてるリンカーなら必ずある
0358デフォルトの名無しさん2016/06/18(土) 20:09:37.14ID:KfEx8M6W
その main 以前に動けるアプリケーションコードはどう記述するのか?
0359デフォルトの名無しさん2016/06/18(土) 20:12:28.42ID:AY0U4nNV
>>358
グローバル変数の初期化
0360デフォルトの名無しさん2016/06/18(土) 20:20:10.41ID:TdgL7vma
>>353 の A::A() に main() で記述しようとした一切合切をぶっこむことが・・・
std::cout 使うけど可能だっけ?どうだっけ?が >>346
0361デフォルトの名無しさん2016/06/18(土) 20:22:54.34ID:FQ/IehJt
gcc 5.3 と clang 3.7 では普通に動いた

#include <iostream>
class Hello{
  public: Hello(){ std::cout << "Hello World!" << std::endl; }
} world;
int main(){ return 0; }
0362デフォルトの名無しさん2016/06/18(土) 21:05:11.96ID:OLM6vz94
祖国に帰れよ
0363デフォルトの名無しさん2016/06/18(土) 21:20:15.95ID:zkDN91BV
main中
char* name = "test.txt";
int pathsize = sizeof(name)/sizeof(name[0])+8;
char path[100] = "C:\\Test\\";
strcat_s(path,pathsize,name);
ならちゃんと動いてpathの中身が"C:\\Test\\test.txt"になります

でもコマンドライン引数でファイル名を入力するのでpathを入力から決めたいので動的配列にしたら
char* name = "test.txt";
int pathsize = sizeof(name)/sizeof(name[0])+8;
char* path;
path = (char*)malloc(sizeof(char)*namesize);
char path = "C:\\Test\\";
strcat_s(path,pathsize,name);
としても途中で「動作を停止しました」が出て動きません。
誰か教えてください!
0364デフォルトの名無しさん2016/06/18(土) 21:22:38.48ID:zkDN91BV
>>363
間違ってたので修正

char* name = "test.txt";
int pathsize = sizeof(name)/sizeof(name[0])+8;
char path[100] = "C:\\Test\\";
strcat_s(path,pathsize,name);
ならちゃんと動いてpathの中身が"C:\\Test\\test.txt"になります

でもコマンドライン引数でファイル名を入力するのでpathを入力から決めたいので動的配列にしたら
char* name = "test.txt";
int pathsize = sizeof(name)/sizeof(name[0])+8;
char* path;
path = (char*)malloc(sizeof(char)*pathsize);
char path = "C:\\Test\\";
strcat_s(path,pathsize,name);
です
お願いします
0365片山博文MZ ◆T6xkBnTXz7B0 2016/06/18(土) 21:30:56.80ID:AY0U4nNV
ポインターにsizeofするとアドレスのバイトサイズになってしまうよ。
sizeofに施すなら配列にしないと。
char path[...]に連結後の文字列を格納するなら、[...]に充分なサイズを指定しないと。
strcat_sの説明をよく読め。
0366片山博文MZ ◆T6xkBnTXz7B0 2016/06/18(土) 21:36:35.07ID:AY0U4nNV
それから
char *p = "NG";
は現在のCでは間違いだから。const付けて
const char *p = "OK";
にするか、次のように配列にする。
char p[] = "OK";
0367デフォルトの名無しさん2016/06/18(土) 21:50:16.55ID:q0688PJ8
>char *p = "NG";
>は現在のCでは間違い

へー、
ところでISO/IEC 9899:2011のどこにそのルールが書いてある?
0368片山博文MZ ◆T6xkBnTXz7B0 2016/06/18(土) 21:59:00.02ID:AY0U4nNV
>>367
STR05-C
0369デフォルトの名無しさん2016/06/18(土) 22:03:55.00ID:WHRY+YBu
>>352
何のためにios_base::Initがあると思ってんだよ
0370デフォルトの名無しさん2016/06/18(土) 22:07:14.55ID:q0688PJ8
>>368
そのようなものはISO/IEC 9899:2011やn1570を検索しても出てこないようだが
空想の仕様か何か?
0371デフォルトの名無しさん2016/06/18(土) 22:11:33.43ID:AY0U4nNV
>>370
すまん
https://www.jpcert.or.jp/sc-rules/c-str05-c.html
0372デフォルトの名無しさん2016/06/18(土) 22:23:38.64ID:q0688PJ8
なるほど
Cもそろそろ>>371を言語仕様に取り入れるべきだな
既存のウンコードがコンパイルできなくなるから変えるつもりは無いのだろうが
0373デフォルトの名無しさん2016/06/18(土) 22:36:21.16ID:AY0U4nNV
>>372
バレてるよ
0374デフォルトの名無しさん2016/06/19(日) 07:34:52.42ID:1KHjmJ1T
>>371
> c[0] = 'C' のような文がこのコード例の宣言のあとに置かれたとすると、
> コードはエラーなくコンパイルされるだろうが、文字列リテラルが定数と見なされるため、
> 代入文の結果は未定義となる。
代入文の結果が未定義なんて、どこの素人が書いた解説だ?
そもそも、
> 文字列リテラルが定数と見なされるため、
ならば、エラーだろ
0375デフォルトの名無しさん2016/06/19(日) 08:41:23.88ID:/rk5wqNm
>>374
ハハッ素人が他人を素人呼ばわりとか面白い冗談だな
0376デフォルトの名無しさん2016/06/19(日) 11:18:22.35ID:h4qyjFbF
>>371だが
『文字列リテラルの型は char 型の配列 (中略) しかし (中略) 名目上は定数であり、そのため const 修飾により保護すべきである』

何故非const型なのかの説明を飛ばして 「名目が定数なので保護すべき」と結論付けるのは論理の飛躍。
そもそも規格上は定数ではないと思うのだが。
まあ鴨ネギ大学の学生がWikiに書き込んだようなゴミ解説に目くじらを立ててもしょうがない
0377デフォルトの名無しさん2016/06/19(日) 12:01:42.97ID:/rk5wqNm
https://docs.oracle.com/cd/E19957-01/805-7888/z4000220f2c4c/index.html
0378デフォルトの名無しさん2016/06/19(日) 12:09:41.08ID:/rk5wqNm
C言語では規格上はconstではない(既存コードの互換性のため)
C++ではconst
0379デフォルトの名無しさん2016/06/19(日) 12:17:49.74ID:ao4WLgfX
文字リテラルの const って
char * const p = "abc";
char const * p = "abc";
char const * const p = "abc";
のどれなの?
0380デフォルトの名無しさん2016/06/19(日) 12:23:03.24ID:vt+XBkS4
全部はずれ
0381デフォルトの名無しさん2016/06/19(日) 12:59:44.79ID:ao4WLgfX
え?じゃどうなるの
0382デフォルトの名無しさん2016/06/19(日) 13:12:56.80ID:B5ThVt/J
いやいや2番目が正しいから
0383デフォルトの名無しさん2016/06/19(日) 14:35:17.43ID:Pvc+naRU
>>382
3番目が正しくないと言うなら理由を述べよ
0384デフォルトの名無しさん2016/06/19(日) 14:52:18.35ID:BJk1t5UN
constってどれ? と訊かれているのだから
「4つ有る内の2番目と3番目」と答えるのが適切だろう
0385デフォルトの名無しさん2016/06/19(日) 16:32:34.55ID:X+E3gNs8
>>379
あくまで文字列リテラルのconst性という観点で、
1は無意味
2で必要十分
3は問題ないがやり過ぎ
0386デフォルトの名無しさん2016/06/19(日) 16:51:30.97ID:BJk1t5UN
もとの型と違う型を持ち出してこれがやり過ぎだとかこれが必要だとか比べることがナンセンス
0387デフォルトの名無しさん2016/06/19(日) 17:30:57.56ID:M8laUYVX
>>384
4つ?
0388デフォルトの名無しさん2016/06/19(日) 18:52:28.71ID:BJk1t5UN
>>387
選択肢として挙げられているconstはどう見ても4つだろう
まさかconstがどれかという問いに対して「宣言」が選択肢足りうると思ったわけではあるまい
0389デフォルトの名無しさん2016/06/19(日) 20:14:06.15ID:KC3RPfxA
江添に訊いてみよう
0390デフォルトの名無しさん2016/06/19(日) 21:45:09.20ID:ajb9eU41
https://ideone.com/dgKplR
このソースコードのmain関数の1行目で
コピーコンストラクタが呼ばれないのなんで?
0391デフォルトの名無しさん2016/06/19(日) 21:49:43.08ID:BJk1t5UN
↓RVOとNRVOについてウン畜を語りたい老人がどうぞ
0392デフォルトの名無しさん2016/06/19(日) 22:09:36.77ID:idCoDJUd
http://blogs.wankuma.com/episteme/archive/2010/08/06/192085.aspx
懐かしいな
0393デフォルトの名無しさん2016/06/19(日) 22:29:52.44ID:BJk1t5UN
エピステーメーって高橋昌との共著本読んだ時 あんま賢くなさそうなイメージだったけど
>>392読んでやっぱり残念な人と確信した
言語仕様通りだって教えて貰っているのに「俺の意図した挙動にならないならメッセージ出せ」とはこれ如何に
0394デフォルトの名無しさん2016/06/19(日) 23:34:41.79ID:/rk5wqNm
>>393
残念じゃないお前がこんな所でくすぶってないで表にでて引っ張って行ってくれよ
0395デフォルトの名無しさん2016/06/19(日) 23:58:21.43ID:7VaTh5p9
いいからもうやめなさい
くだらない個人攻撃なんて何の益にもならないぞ
0396デフォルトの名無しさん2016/06/20(月) 01:50:54.72ID:NuZBuJrx
今日の残念君はどう考えても
ID:BJk1t5UN
だろう…

ちょっと思い込みが強めでトラブルを起こしやすい性格とみた
0397デフォルトの名無しさん2016/06/22(水) 08:16:41.31ID:ZvEtCXKH
リンク先読んでみたけど、確かにちょっと残念な主張だとは思った
そんなので警告出してたら、strict aliasing ruleとかで
「エイリアスが存在しないと仮定して最適化してますよ」って警告出すのか、とか
「使えるキャスト演算子が存在しないので、コンストラクタを利用してキャストしましたよ」とか
「削除できるコンストラクタの呼び出しを削除しましたよ」とかも
全部警告出せって言うのか?みたいになってくる
D&Eで言うところの「無視してよいムカつく警告」になってしまったら警告の意味がない
和訳D&Eをありがたく読んだ自分は個人攻撃するつもりはないけどw
>>393の言ってる内容はそんなおかしくないだろ
0398デフォルトの名無しさん2016/06/23(木) 16:40:05.61ID:tfrufgXX
test1の中でa3をNULLで初期化すればaもNULLになると思ってずっと悩んでいたorz
aとa1とa3は全部アドレス違うんだな

void test1(int* a1, int* &a2)
{
int* a3 = a1;

cout << "&a1 = " << &a1 << endl;
cout << "&a2 = " << &a2 << endl;
cout << "&a3 = " << &a3 << endl;
}

void main()
{
int* a = new int;
cout << "&a = " << &a << endl;
test1(a, a);
}

実行結果

&a = 0037FBC0
&a1 = 0037FAAC
&a2 = 0037FBC0
&a3 = 0037FA9C
0399デフォルトの名無しさん2016/06/23(木) 18:49:05.25ID:hDCQS7+v
void test1(int a1, int& a2)
{
int a3 = a1;
...
}

void main()
{
int a;
test1(a, a);
}

本質的にコレと変わってないから test1 中の a3 への代入操作が a1 に副作用をおこすわけもなく。。。
0400デフォルトの名無しさん2016/06/23(木) 18:49:08.79ID:05qDBgT1
ポインタの参照という発想はなかった
0401デフォルトの名無しさん2016/06/23(木) 19:26:00.29ID:NYguqjEm
>>400
ただの二重ポインタと思えばどうということはない
0402デフォルトの名無しさん2016/06/23(木) 19:59:41.85ID:tfrufgXX
>>399
冷静に考えるとそうなんだけどねw

>>400
そういえばCだと参照型が使えないからこんな感じにしないといけないんだね

void test1(int** b)
{
cout << "b = " << b << endl;
}

void main()
{
int* a = new int;
int** b = &a;
test1(b);
}

実行結果

&a = 0030FCFC
b = 0030FCFC
0403デフォルトの名無しさん2016/06/23(木) 21:55:39.45ID:mt4LdPj3
The definition void main() is not and never has been C++, nor has it even been C.
http://www.stroustrup.com/bs_faq2.html#void-main
0404デフォルトの名無しさん2016/06/23(木) 22:55:05.52ID:oSyscJ3H
>>403
これほんとなん?
少なくともc11のドラフト(n1570)には
5.1.2.2.3のなかに
If the return type is not compatible with int, the
termination status returned to the host environment is unspecified.

って記述があってmainがint以外を返すことを想定した文があるし
mainを実装定義なやり方で定義していいとも書いてあるよね(5.1.2.2.1)
0405デフォルトの名無しさん2016/06/23(木) 23:20:43.24ID:EoZOdS2q
>>404
ハゲは昔から嘘つきなのに
規格よりハゲを信じるのかおまいは
0406デフォルトの名無しさん2016/06/23(木) 23:36:09.28ID:EoZOdS2q
ちなみにその部分の内容は
N1570でもISO/IEC 9899:2011でもISO/IEC 9899:1999(ハゲの引用している版)でも同じ
0407デフォルトの名無しさん2016/06/24(金) 00:45:14.65ID:g2DBgxjd
void main() は retrurn 0; を補うんじゃなかたけ。
0408デフォルトの名無しさん2016/06/24(金) 00:48:40.52ID:JvoE7KJi
voidでいいやってことか
0409デフォルトの名無しさん2016/06/24(金) 01:13:53.83ID:y7sMhfDD
>>405
やっぱそうなのね
信じられるのは規格だけやな
0410デフォルトの名無しさん2016/06/24(金) 01:22:25.90ID:g2DBgxjd
最初っからint main(){return 0;}
って覚えとけば楽。
0411デフォルトの名無しさん2016/06/24(金) 02:46:26.20ID:WCTlIu5+
そのreturn 0;いらねーよ
0412デフォルトの名無しさん2016/06/24(金) 03:17:37.41ID:KfxfBd4P
http://qiita.com/yohhoy/items/b45defce0716638ad03a
0413デフォルトの名無しさん2016/06/24(金) 03:21:04.30ID:KfxfBd4P
で、void main()と書いたお前らの処理系ではそう定義されてるんか?って話だな
0414デフォルトの名無しさん2016/06/24(金) 03:43:20.14ID:WCTlIu5+
定義???????????????
0415デフォルトの名無しさん2016/06/24(金) 03:51:22.54ID:KfxfBd4P
>>414
?????

バカにもわかりやすく書くとC99でもvoid mainとプログラマが勝手に型を変えていいわけじゃない。コンパイラやら実行環境含めた処理系に自由を与えてるだけ
0416デフォルトの名無しさん2016/06/24(金) 05:02:05.13ID:WCTlIu5+
>>415
バカにもわかりやすく質問してやると、
お前の定義という単語に対する認識は大丈夫か?
って事なんだが
0417デフォルトの名無しさん2016/06/24(金) 12:39:45.04ID:SkciSi5S
>>416
?????
0418デフォルトの名無しさん2016/06/24(金) 13:17:10.64ID:hNKdYhKF
入門者です
ココで、述べられている『ハゲ』とは、誰のことなのですか?
教えてください
0419デフォルトの名無しさん2016/06/24(金) 13:37:04.83ID:g5yuDP9p
ハゲは心の中にいる
今はそれで充分だ
0420デフォルトの名無しさん2016/06/24(金) 13:57:34.07ID:uayR24vt
>>418
>>403の記事を書いたハゲ
c++を設計したえらいハゲだよ
04214182016/06/24(金) 15:05:36.29ID:hNKdYhKF
>>420

ありがとうございました。
ビャーネ・ストロヴストルップって人ですね!
確かに禿げてましたww

つ ttp://www.stroustrup.com/Bjarne.jpg
0422デフォルトの名無しさん2016/06/24(金) 16:39:09.17ID:g2DBgxjd
ストラップ先生を悪くいうとわ
0423デフォルトの名無しさん2016/06/24(金) 17:07:37.82ID:DGYcSyrw
あの先生の場合、完全にツルッパゲなら相応に貫禄のある顔立ちなんだが、
側頭部に残った南洋部族の腰ミノみたいな毛髪で台無しなのかもしれない。
おもろうてやがてかなしき頭かな…。
0424デフォルトの名無しさん2016/06/24(金) 17:15:22.92ID:rIPC2Eue
全部切ってしまえばいいのにね
0425デフォルトの名無しさん2016/06/24(金) 17:45:45.16ID:EnUnyJtr
何たる無礼な! そこに直れ! たたっきってくれるわ!
0426デフォルトの名無しさん2016/06/24(金) 18:41:08.03ID:hNKdYhKF
そうは云われても、ハゲはハゲですよねw
それも、面白系の禿げ方www
0427デフォルトの名無しさん2016/06/24(金) 19:00:33.12ID:g2DBgxjd
てめーら 人間じゃねー たたーきったる
って先生はおいくつになられたのでしょー??
0428デフォルトの名無しさん2016/06/24(金) 20:24:14.85ID:DpaDDsEZ
ずいぶん昔の若い写真だな
今のビョンビョンはもう死にかけだぞ
0429デフォルトの名無しさん2016/06/24(金) 21:32:11.15ID:KfxfBd4P
>>416
何が言いたいのか全然わかんないんだけど
0430デフォルトの名無しさん2016/06/24(金) 22:28:47.51ID:WCTlIu5+
>>429
あのさあ、Cで「定義」って言ったら何を指すのか知らないの?
0431デフォルトの名無しさん2016/06/24(金) 23:39:21.01ID:KfxfBd4P
>>430
お前こそ大丈夫か?そんな頭じゃ生きづらいことこの上ないと思うけど
0432デフォルトの名無しさん2016/06/24(金) 23:45:56.47ID:ecoenoin
大学の研究室でまともにC言語というかプログラミングにまともに向き合うことになったんだけど、コンパイラって何使えばいいの?
今はCygwinにPath通してコマンドプロンプトからgccコマンド使ってるんだけど、cppファイルのコンパイルとかOpenCV使おうと思ったらgccじゃダメなんだよね?OSはWindows8です。
0433デフォルトの名無しさん2016/06/24(金) 23:48:29.58ID:yNzTA6w9
C/C++自体が主眼じゃなかったら
何も考えずVisual Studioでいいんじゃない
0434デフォルトの名無しさん2016/06/24(金) 23:49:28.99ID:KfxfBd4P
>>432
c++のソースをコンパイルしたいならg++ってのを入れたらいい
0435デフォルトの名無しさん2016/06/25(土) 00:01:54.83ID:YuvUSy3H
ありがとうございました。VSならいろいろパッケージにそろってそうなのでインストールしてみます。
言語にしろIDEにしろ多機能になるにつれ、入力にshiftキーが必要な文字が増えて面倒くさい…
0436デフォルトの名無しさん2016/06/25(土) 00:11:58.45ID:IyAaPIcO
>>431
素直に落ち度を認められないのか
人との衝突が多くて生きづらそうだな
0437デフォルトの名無しさん2016/06/25(土) 00:13:38.17ID:QJOI9Akg
>>436
なんの落ち度もねえよ
0438デフォルトの名無しさん2016/06/25(土) 01:14:51.66ID:wuHXaKu3
傍目には「定義」の定義にこだわるべき文脈には見えない
0439デフォルトの名無しさん2016/06/25(土) 03:41:14.91ID:IyAaPIcO
>>437
ごめん、お前がここまでバカだとは思わなかったんだ

>>413
> で、void main()と書いたお前らの処理系ではそう定義されてるんか?って話だな

処理系はmain()関数の定義なんかしない
main()関数の定義とは、簡単な例を書けば
以下のような、関数の実装を決定するユーザーコードの事だ
int main(void)
{
return 0;
}

お前に落ち度がないと言い張るなら、
main()関数の定義を処理系がしている実例を
一つでも挙げてみろ

処理系はmain()関数を定義も宣言もしない
ただ受け取ったユーザーコードに対して、処理系定義の動作をするだけだ
0440デフォルトの名無しさん2016/06/25(土) 03:54:46.59ID:+Ed3IAoc
何でお前らすぐ喧嘩始めるの?
0441デフォルトの名無しさん2016/06/25(土) 04:10:42.81ID:DBr6lg4D
まず行うべきことは、言語の法律家を皆殺しにすることだ。 舞台:ヘンリー六世
0442デフォルトの名無しさん2016/06/25(土) 05:17:22.65ID:QJOI9Akg
>>439
まさかずっとC言語の中での定義の意味で言ってるとは思わなかったわ。
処理系定義って言葉は知ってる?
自分に落ち度があるとしたらここまでの文盲に絡まれると思ってなかった所だわ。
0443デフォルトの名無しさん2016/06/25(土) 05:28:17.79ID:QJOI9Akg
処理系定義ってのは文字通り処理系が定義しても良いってこと。
つまりmainの返り値や引数を処理系が決めていいって事
だから >>413 は処理系によってvoid mainとしてもよいと定義されてんのかって意味だよ。
理解出来た?文盲さん
0444デフォルトの名無しさん2016/06/25(土) 05:29:34.62ID:QJOI9Akg
>>440
絡まれたからだよ
0445デフォルトの名無しさん2016/06/25(土) 07:28:04.30ID:e7YY+pe4
なるほどなー
vsだともれなく通るな
0446デフォルトの名無しさん2016/06/25(土) 07:42:04.51ID:mwDtlL3e
争え…もっと争え…
0447デフォルトの名無しさん2016/06/25(土) 08:05:45.00ID:7eKBsbtx
>>414
どうしたいきなり
定義という単語にトラウマでもあるのか
まさか>>413の『そう』が何を指す日本語だったのか、わからない訳ではあるまい
0448デフォルトの名無しさん2016/06/25(土) 23:33:02.55ID:lbUC37aL
おまえらいまだ争ってんのなwまぁ雑談してるくらいなら
マルチスレットの俺様がググるの面倒なことレベルのこと聞いてやるぞもっと争え
0449デフォルトの名無しさん2016/06/26(日) 00:08:51.39ID:v0giSrKt
>>448
read-modify-writeって何ですか?
0450デフォルトの名無しさん2016/06/26(日) 00:16:18.54ID:Xk36MtET
>>449
質問してやるって意味だよ それはこのスレに潜むread-modify-writeに聞いてくれ
0451デフォルトの名無しさん2016/06/26(日) 05:31:20.47ID:hBvFQk6r
read-modify-write がトラウマになってる奴がいるとは w
0452デフォルトの名無しさん2016/06/26(日) 11:37:59.14ID:Zt4C9djU
あんまり言うと出てくると思うの
0453デフォルトの名無しさん2016/06/26(日) 14:33:28.83ID:s81Ug6VY
召喚の呪文
read-modify-write!!!
0454デフォルトの名無しさん2016/06/26(日) 18:54:37.02ID:NtU/7t/z
PostMessageとどっちが強力だ?
0455デフォルトの名無しさん2016/06/26(日) 18:57:15.37ID:Zt4C9djU
SendMessageと?
0456デフォルトの名無しさん2016/06/26(日) 19:45:55.55ID:s81Ug6VY
そう言えば
PostMessage召喚で暴れまくっていた人もいたね。
0457デフォルトの名無しさん2016/06/26(日) 21:37:55.64ID:Xk36MtET
じゃあ俺もw召喚の呪文!ウンコ野郎爆誕!!!
0458デフォルトの名無しさん2016/06/27(月) 07:26:04.89ID:7Fk1LScM
つまりこのスレはキチガイが集う場所ということだな
0459デフォルトの名無しさん2016/06/27(月) 09:11:06.89ID:eJf9V2Oa
たまにわ
0460デフォルトの名無しさん2016/06/27(月) 09:34:31.40ID:pmkGXQfA
C++で
int n;
cin >> n;
int s[n];

これをvectorを使って書くとどのようになりますか?
0461デフォルトの名無しさん2016/06/27(月) 09:42:25.75ID:SokS5zaj
何個のスレで聞いてんだよ
ググれないのか?
int n;
cin>>n;
vector<int> s(n);
0462デフォルトの名無しさん2016/06/27(月) 10:29:06.13ID:MfDxrbJB
>>461
ありがとうございます
0463デフォルトの名無しさん2016/06/27(月) 17:51:55.55ID:3IWlWv1c
>>461
そやって教えちゃうからマルチは絶えない
面倒見る覚悟がないなら野良猫に餌をあげちゃダメ
0464デフォルトの名無しさん2016/06/27(月) 17:55:02.09ID:gOhEDnil
まぁまぁそっから何か生まれるかもしれんし。ネコ好きだし。
0465デフォルトの名無しさん2016/06/27(月) 18:02:45.51ID:3GwleZSI
野良猫に餌を与える猫好きは
他人の迷惑を考えないクズ
0466デフォルトの名無しさん2016/06/27(月) 18:25:58.68ID:bF8wQm1G
野良猫から何か生まれたら更にご近所迷惑だな
0467デフォルトの名無しさん2016/06/27(月) 20:27:04.48ID:d8HK5mxk
「マルチに答えろ」っていう話をしたいわけじゃないんだけど
次に現れるのは全くの他人なんだからこいつに教えようが教えまいが全体のマルチの発生率には大した影響はないでしょ

単純にマルチ自体に答える価値がないってのと
こいつが答えを得るまでどれだけマルチを繰り返すか、を基準に考えるべきでは
0468デフォルトの名無しさん2016/06/27(月) 21:08:23.21ID:aOt2zGaN
>次に現れるのは全くの他人なんだからこいつに教えようが教えまいが全体のマルチの発生率には大した影響はない

世の中で何故野良猫にエサを与えることが良しとされないのか理解できないレベルのオツムからひり出されたかのようなレスだな
0469デフォルトの名無しさん2016/06/27(月) 21:26:43.31ID:d8HK5mxk
猫の話はしてない

猫の話もするなら野良猫に餌を与えるのは良しとされない
それはそれとして、あるマルチに答えようが答えまいが次にマルチが沸くまでの時間が減ることに関して大した効果はない

マルチに答えないというのは単に誰もが答えると複数のスレにわたって同じ質問の回答が書き込まれるのが防げるという事だ
俺はこれを否定したわけじゃない
0470デフォルトの名無しさん2016/06/27(月) 21:30:14.32ID:28HGye6n
微妙に盛り上がってると思ったら微妙な基地外か
0471デフォルトの名無しさん2016/06/27(月) 21:30:20.59ID:d8HK5mxk
以後俺の返事を聞きたければマルチに答えなければ別なマルチが湧かないというエビデンスを持ってこい
猫の話は知らん
0472デフォルトの名無しさん2016/06/27(月) 21:32:42.92ID:aOt2zGaN
>猫の話もするなら

まるで誰かが「>>467が猫の話をしている」と言い出した
或いは>>467に猫の話をし始めたかのようなレスだな
0473デフォルトの名無しさん2016/06/27(月) 21:33:08.24ID:gELA3XvN
野良猫に餌をやらないでおくと避妊去勢がままならず、結果として猫が増えるのを防ぐことができない。
増えて腹を空かせた猫は更に多くの猫害をもたらす。

そもそも動物に対する態度・行動では日本は韓国にも劣る
0474デフォルトの名無しさん2016/06/27(月) 21:56:01.38ID:4PwCanzx
>>473
そんな妄想理論じゃ>>471は納得せん
エビデンスを持ってこい
0475デフォルトの名無しさん2016/06/27(月) 21:58:35.30ID:gELA3XvN
野良猫に餌をやる話に興味があっただけ。マルチは知らん
0476デフォルトの名無しさん2016/06/27(月) 23:04:16.01ID:0nEjv4u+
#include <iostream>

void print(const std::string& str)
{
 std::cout << str << std::endl;
}

template <typename T>
void print11(T&& str)
{
 std::cout << std::forward<T>(str) << std::endl;
}

int main()
{
 std::string str{"hello world"};
 print(str);
 print11(str);
 return 0;
}

上記のprint関数のようなものを書きたいとき、
C++11時代の書き方ってprint11の書き方になるかと予想したのですがあってますか?

毎度このような記述が必要だなんて、にわかに信じられず
速度が求められる状況の時だけprint11のように書けばよい、ということだったりしないかな、と邪推してしまったのですが
どうでしょうか。

もしくはprint11関数が間違ってるでしょうか。
0477デフォルトの名無しさん2016/06/27(月) 23:11:04.20ID:NCV21ZBQ
C++11はよく知らんけど、print()のほうが圧倒的に速いんじゃないかな
0478デフォルトの名無しさん2016/06/27(月) 23:12:36.90ID:uxnNNmpU
速いかどうかはベンチすれば分かるだろ
0479デフォルトの名無しさん2016/06/27(月) 23:20:34.94ID:bF8wQm1G
>>476
なぜそう予想したのかを、逆に聞きたい。

前者で十分じゃないかと思うんだが。
char const* からの暗黙変換が気になるのなら、オーバーロードを作るのが妥当な気がする。
どんなクラスでも渡したいってなら、const T& で良いと思う。

汎用的にTの右辺値参照を受けるケースってのは、若干YAGNI臭が漂う気が。
0480デフォルトの名無しさん2016/06/27(月) 23:23:32.96ID:bF8wQm1G
や、回答になってなくて、ごめん。
本当に疑問に思っただけなんだ。
0481デフォルトの名無しさん2016/06/27(月) 23:36:49.63ID:0nEjv4u+
>>480
通常版と右辺値参照版の両方をそれぞれ定義したことになるらしいのでこうするとよいと某書籍に書いてあったのですが
正しく理解できてるか自信がなく、
毎回こんなこと書くの面倒だし、自分が読み間違えてるのか確認したく…(´・ω・`)
0482デフォルトの名無しさん2016/06/28(火) 00:01:10.45ID:KeVQoC4G
うん読み間違えてる
> 通常版と右辺値参照版の両方をそれぞれ定義したことになるらしいのでこうするとよい
わけもわからずただこういうものだからという形で覚えるのではなく
なぜ両方をそれぞれ定義する必要があるのかという意味を理解したほうがいい
0483デフォルトの名無しさん2016/06/28(火) 02:13:24.35ID:a+4o3zCZ
生兵法は怪我の素
0484デフォルトの名無しさん2016/06/28(火) 14:43:57.60ID:M00awirg
ネットにあるソース見たりすると
//**********とか//-----で囲って見やすくなってるけどこれって手動で作ってるの?
それとも自動生成できる機能ある?
俺も真似してやってるけど手動で端とか揃えるのメンドイんだが
0485デフォルトの名無しさん2016/06/28(火) 15:49:24.54ID:Tx8MRwIa
>>484
vimやemacsという慣れるのに苦労するけど慣れると効率的にプログラミングできるので
上級者がよく使うテキストエディタがあるのですが
それらのテキストエディタはプラグインでカスタマイズできるので
プラグインを使って、ソースを囲ったりしてるのだと思います(`・ω・´)ゞ
0486デフォルトの名無しさん2016/06/28(火) 23:23:09.17ID:gih/phK7
あれやる奴は死んだほうがいい
コメントのメンテが面倒だからコメントを直さなくなる
コメントとコードが乖離していく
最悪のパターンだ
コメントなんて要らない
0487デフォルトの名無しさん2016/06/29(水) 00:47:19.64ID:VKIvJtvn
//-------------------
これは昔Borland製品で見た
0488デフォルトの名無しさん2016/06/29(水) 12:17:01.13ID:U6SV7JXT
右辺値参照は速度が問題となるときに気にすればよくて、日常的に使うほどのものではないということを知ったのですが
for文やラムダ式での右辺値参照も同様でしょうか?
0489デフォルトの名無しさん2016/06/29(水) 12:30:44.31ID:wJwmhXUN
自分で答えを書いてるじゃない
for文やラムダ式の速度が問題となるときに気にすればいいんじゃないかな
0490デフォルトの名無しさん2016/06/29(水) 12:31:10.81ID:5Z/5CFJr
>>488
それだけじゃなくて単に内容を参照するだけなら要らないよ。
渡した先でコピーして保持するような場合にしか要らない
0491デフォルトの名無しさん2016/06/29(水) 13:30:44.15ID:U6SV7JXT
ありがとうございます…!
範囲for文だとタイプ数が1文字増えるだけなので
効率が気になるとき気にならないとき
どちらも対応できるなら
常に右辺値参照を用いることで都度考えなくて済むのかと期待してしまったのですが
そういう使い方はできないのですね

まだ右辺値参照の理解が足りてないみたいなのでよく勉強してみます。
0492デフォルトの名無しさん2016/06/29(水) 16:13:30.55ID:iFfmr+LR
>>491
for(auto &&a : container)
ってふうにauto使えば常に右辺値参照型として書けて実行速度も速いよ
なぜこれでいいのか理由はかなり複雑だけど
0493デフォルトの名無しさん2016/06/29(水) 17:43:16.18ID:FgLmnbF+
const つけた方がいいのでわ
0494デフォルトの名無しさん2016/06/29(水) 17:50:59.40ID:j9qsLHGx
>>493
const付けたら&&の意味無くなるから
0495デフォルトの名無しさん2016/06/29(水) 17:59:10.78ID:cQ9920z1
データ構造でキーから衝突してない値へ衝突してない値からキーにデータを取り出せる
もっとも高速な方法を教えてください
0496デフォルトの名無しさん2016/06/29(水) 17:59:28.10ID:iFfmr+LR
>>493
まぁより良いのはfor内で要素を変更するなら
for(auto &&a : container)
で変更しないなら
for(const auto &a : container)
が速くてどんな時にも使える書き方だな
0497デフォルトの名無しさん2016/06/29(水) 20:24:03.99ID:btootCA1
どこにconst付けてんだ
for(auto &a : static_cast<const vector<E> &>(container))
に決まってんだろタコ
0498デフォルトの名無しさん2016/06/29(水) 21:03:30.10ID:NQAp1zXO
「ちょっとどこconstしてんのよっ!!!」
0499デフォルトの名無しさん2016/06/29(水) 22:47:20.66ID:iFfmr+LR
>>497
vector<bool>で使えないんですが?
https://ideone.com/SgcBMN#cmperr

そもそもタイプ数多いわ、containerの型変えるとこっちも変えなきゃいけなくなるわでなんの利点もないと思いますが?
0500デフォルトの名無しさん2016/06/29(水) 22:57:16.92ID:WmZmA/4x
>>499
cbegin cendのほうが効率的に実装できるこんて
0501デフォルトの名無しさん2016/06/29(水) 22:58:37.52ID:WmZmA/4x
すまん途中で書き込んでしまった。

効率的に実装できるコンテナも存在しないとは言えないから。
ただvectorとかの標準コンテナには全くの無意味だ
0502デフォルトの名無しさん2016/06/29(水) 23:14:02.80ID:iFfmr+LR
へーcbeginとcendの効率の話は知らなかったわ
ただ存在しないとは言えないとか標準コンテナでは無意味って感じなら俺は自分の書き方で行くわ
標準コンテナ内で使えないものが出てるわけだし

これ以上は個々人の主義ってことで
0503デフォルトの名無しさん2016/06/29(水) 23:23:27.55ID:sbR1/bEc
for(auto &&a : static_cast<const vector<bool> &>(container))
ならコンパイル通った
さすがforwarding reference
0504デフォルトの名無しさん2016/06/29(水) 23:50:01.16ID:8zM9YqNN
>>494
>const付けたら&&の意味無くなる
それは初耳です
理由をkwsk

>>495
ちょっと何言ってるかわからない
0505デフォルトの名無しさん2016/06/30(木) 00:11:14.95ID:FR0YZqTF
>>504
すみません初心者なので・・・
りんご1、みかん2、すいか3だったらみかん→2とか3→すいかってする方法です
みなさんお詳しそうだし教えてください
0506デフォルトの名無しさん2016/06/30(木) 00:17:27.30ID:uDwmkKfi
>>505
boostのbimapみたいなの?

http://www.kmonos.net/alang/boost/classes/bimap.html
0507デフォルトの名無しさん2016/06/30(木) 00:28:24.42ID:aJhDPYkr
>>506
ありがとうございますそういう感じですちなみに標準にないんですか
0508デフォルトの名無しさん2016/06/30(木) 00:36:35.08ID:uDwmkKfi
>>507
ない
0509デフォルトの名無しさん2016/06/30(木) 00:49:51.15ID:aJhDPYkr
>>508
マジC++糞やなこいつboostないとなんもできんのな
boost入れなおすのマジ面倒だわ
0510デフォルトの名無しさん2016/06/30(木) 01:18:36.16ID:pUarj3m7
んんwww
0511デフォルトの名無しさん2016/06/30(木) 01:30:59.01ID:p/mdjyYJ
>>510
あ?なんだてめぇ
0512デフォルトの名無しさん2016/06/30(木) 01:51:43.13ID:pUarj3m7
>>511
なんや!
0513デフォルトの名無しさん2016/06/30(木) 02:04:36.25ID:SBiWo6W8
おまいら今日も仲ええな
0514デフォルトの名無しさん2016/06/30(木) 07:22:26.35ID:Mm6Buzd+
>>509
map 2個使えばいいだけだろ
0515デフォルトの名無しさん2016/06/30(木) 07:25:12.59ID:Z6K5a+yW
すいません、別スレで質問したんですが答えてもらえそうにないのでここで質問させてください。

visualstudio2015communityをインストールしたんですが,
C++の項目にプロジェクトが何も表示されなくて(空のプロジェクトも)
何回アンインスコ試しても表示されなくてもう参ってしまったので別の実行環境を使いたいのですが
他に使えるC++の実行環境はありますか?
0516デフォルトの名無しさん2016/06/30(木) 07:38:45.70ID:16dhmQUH
↓質問者の期待を無視して上から目線で症状を聞いてくる奴
0517デフォルトの名無しさん2016/06/30(木) 09:26:18.96ID:K9CZSD9Z
実行環境は普通どのパソコンにも標準で入ってますっ てか

インストール時にc++にチェック入れてないとかじゃないよな
0518デフォルトの名無しさん2016/06/30(木) 09:48:30.29ID:8Hd8UhzT
>>515
ユーザ登録してもだめだったの?
0519デフォルトの名無しさん2016/06/30(木) 10:09:04.57ID:5NDkTHWH
実行環境はその箱だろ ってのはおいといて
http://codepad.org/ とか
http://ideone.com/ とか

開発環境なら
g++ (Mingw32 Cygwin etc..) とか

http://www.arubeh.com/archives/1060
0520デフォルトの名無しさん2016/06/30(木) 10:15:44.01ID:bSccWkK0
>>515
デフォルトインストールだと C++ が選択されてないから
もしチェックした覚えがないならやり直し
0521デフォルトの名無しさん2016/06/30(木) 11:17:52.81ID:hqk99Yip
>>514
コードが汚い管理が面倒
0522デフォルトの名無しさん2016/06/30(木) 12:55:57.92ID:7W55QuS4
>>521
そういうクラスを作る
って言う発想はないんかよ
0523デフォルトの名無しさん2016/06/30(木) 13:50:23.22ID:aQ8WO8QR
オブジェクト脳!
0524デフォルトの名無しさん2016/06/30(木) 14:36:47.57ID:VfoHJ+ui
そもそもゆとり脳はC++に手を出しちゃあかん
0525デフォルトの名無しさん2016/06/30(木) 16:00:56.66ID:I86oszq6
#include <bits/stdc++.h>

class hoge {
public:
 void aho() { std::cout << "ahooo" << std::endl; }
};

int main()
{
 /*
 hoge h;
 std::thread th(&hoge::aho, h);
 */
 std::thread th(&hoge::aho, std::move(hoge{}));

 th.join();

 return 0;
}

すみません、質問させてください。
右辺値参照の使い方がぼんやりとしかわからず…
スレッドにメンバ関数を渡したいとき一時オブジェクトを作る代わりに右辺値参照を利用する
上記のような使い方は正しい使い方でしょうか。
0526デフォルトの名無しさん2016/06/30(木) 16:25:05.04ID:I86oszq6
すみません自己解決しました

std::moveなくても右辺値ですね(;´Д`)

#include <bits/stdc++.h>

class hoge {
public:
 hoge(){std::cout << "ctor" << std::endl;}
 hoge(const hoge&){std::cout << "cctor" << std::endl;}
 hoge(hoge&&){std::cout << "mtor" << std::endl;};
 hoge& operator=(hoge&&){std::cout << "mctor" << std::endl; return *this;};
 ~hoge(){std::cout << "dtor" << std::endl;}
 void aho() { std::cout << "ahooo" << std::endl; }
};

int main()
{
 // 出力はどちらも同じ
 std::thread th(&hoge::aho, hoge{});
 //std::thread th(&hoge::aho, std::move(hoge{}));

 th.join();

 return 0;
}
0527デフォルトの名無しさん2016/06/30(木) 16:39:37.88ID:Wn+wYZQN
>>522
boostにあるレベルのことなんで自作するねん
>>524
老害言語ってわけですね
0528デフォルトの名無しさん2016/06/30(木) 17:37:16.43ID:ZrMqvFvD
boostみたいな糞に手を出しちゃあかん
0529デフォルトの名無しさん2016/06/30(木) 18:47:50.98ID:ZL4MrxT2
>>526
>std::moveなくても右辺値ですね
そのとおりだが、ちなみにmoveが無いと右辺値参照ではなくなるぞ
0530デフォルトの名無しさん2016/06/30(木) 19:19:35.38ID:7W55QuS4
>>527
boost なんて入れたくないからだろ
0531デフォルトの名無しさん2016/06/30(木) 20:07:46.33ID:lREvvlJC
>>516-520
回答ありがとうございます。
デフォルトインストールでやってたので、いれてませんでした。
今度はカスタムインストールで全部入れます
わざわざすいませんでした
0532デフォルトの名無しさん2016/06/30(木) 21:06:51.98ID:I86oszq6
>>529
!?

hoge(hoge&&){std::cout << "mtor" << std::endl;};
ここの引数(今はないけど)が左辺値になってしまうということですか?
std::moveがある場合と比べて余分なコピーが発生するのでしょうか?
質問ばっかですみません。
05335322016/06/30(木) 21:07:37.99ID:I86oszq6
左辺値→左辺値参照
0534デフォルトの名無しさん2016/06/30(木) 21:18:22.64ID:SBiWo6W8
>>529
それ本当か?
>>526のコードなら明らかにmoveはいらないケースだと思うけど。
0535デフォルトの名無しさん2016/06/30(木) 21:19:33.20ID:ZL4MrxT2
>>532
>が左辺値になってしまうということですか?
>左辺値→左辺値参照
「右辺値」に対して「その通り」だと言っているのにどうしてそうなるのか。
左辺値参照のオーバーロードが呼ばれることはない

>std::moveがある場合と比べて余分なコピーが発生するのでしょうか?
右辺値なのだから余分なコピーが発生することはない
0536デフォルトの名無しさん2016/06/30(木) 21:24:55.58ID:ZL4MrxT2
>>534
確認してないけど、間違ってる?
式 std::move(hoge{}):
 右辺値参照型の右辺値(xvalue)
式 hoge{}:
 非参照型の右辺値(prvalue)
0537デフォルトの名無しさん2016/06/30(木) 21:46:51.44ID:k4sIbdf3
boostはまだ許せる
Lokiとか生産技術部門の俺ライブラリを
持ってこられた日にはブチ切れ
0538デフォルトの名無しさん2016/06/30(木) 21:53:58.14ID:egmzyGVl
boostは大きくてコンパイル時間が掛かるけど、便利だと思いますけど。
次期STL予備軍だし。
0539デフォルトの名無しさん2016/06/30(木) 21:54:34.86ID:SBiWo6W8
>>536
いや、ごめん、俺も>>535で理解した。

てっきり「move コンストラクタが呼ばれないぞ」って言ってるものかと勘違いした。
0540デフォルトの名無しさん2016/06/30(木) 22:41:39.95ID:zjJ2vHgd
C++で構造体使うメリットって何?
参考書に構造体で書いてあったけど別にクラスで書いてもいいよね?
0541デフォルトの名無しさん2016/06/30(木) 22:50:41.69ID:egmzyGVl
同じものだと思いますけど、だめすか
0542デフォルトの名無しさん2016/06/30(木) 23:06:42.41ID:xLadhBSR
暗黙のうちに開幕publicか開幕privateがついてる以外に構造体とクラスには全く違いがないと思ってました
0543デフォルトの名無しさん2016/07/01(金) 00:13:31.71ID:UWzkmdJM
違いあるんすか!?
0544デフォルトの名無しさん2016/07/01(金) 02:15:56.07ID:P/KajcTo
Googleのスタイルガイドで言及されてたな
何書いてあったかは忘れたが
0545デフォルトの名無しさん2016/07/01(金) 06:47:59.98ID:tm+bfi5q
個人的には
メソッド含むなら class
含まないなら struct
0546デフォルトの名無しさん2016/07/01(金) 07:39:30.43ID:f7dyo82+
構造体の場合はこの例のようにメンバにポインタが含まれる場合はmemcpyで高速コピーができないけど
http://azurine.pupu.jp/blog/?p=246
同じ理由でクラスには関数ポインタが含まれるからmemcpyが使えないというのがあった気がする
0547デフォルトの名無しさん2016/07/01(金) 07:47:29.76ID:4UXXaCaB
>>545
自分はメンバ変数がpublicならstruct
privateならclassだな、あと継承する(される)場合もclass
0548デフォルトの名無しさん2016/07/01(金) 08:13:23.36ID:HU8djk9+
>>546
残念ながらオマエの言う構造体の定義は他のレスと違うようだ。
オマエだけではないが、定義の不明瞭な用語を使い続ける前にはっきりさせた方がいいぞ
0549デフォルトの名無しさん2016/07/01(金) 08:25:46.76ID:tm+bfi5q
>>546
C++ は構造体にメソッド持てるし継承もできるからその話は全く関係ない
0550デフォルトの名無しさん2016/07/01(金) 08:30:12.53ID:HU8djk9+
>>542
糞サイトの糞説明にだまされたんだなかわいそうに
0551デフォルトの名無しさん2016/07/01(金) 08:32:32.90ID:WwKkDevU
>>540
(podを)Cと共有する時
0552デフォルトの名無しさん2016/07/01(金) 08:40:54.66ID:cdlxDERk
罵倒するだけで何の説明もしない奴は自分の考えが間違ってた時のことが怖いのかな?
0553デフォルトの名無しさん2016/07/01(金) 08:44:45.54ID:cdlxDERk
それとも自分の言葉で説明出来るほどの理解が無いのかな?
0554デフォルトの名無しさん2016/07/01(金) 11:43:21.31ID:WTZiSjiu
今までの意味のあるレスを総合するとprivateとpublic以外に違いは無いという話になるけど
他に何か具体的な例はないの
0555デフォルトの名無しさん2016/07/01(金) 12:35:31.78ID:c/ihY094
どの本見てもそうとしか書いてないので。
関数オブジェクトもstructで書けるんかなぁw
0556デフォルトの名無しさん2016/07/01(金) 12:41:31.05ID:lnc2Ue0t
ヘタクソでよくわからんのだが
ベクタに構造体ぶっこみたくなるのはやっぱおかしいよな?
0557デフォルトの名無しさん2016/07/01(金) 14:07:47.43ID:8U4Iz7n9
ただの構造体なら良いんじゃね?
移動コストの高いオブジェクトを突っ込むのはやめたほうが良い
0558デフォルトの名無しさん2016/07/01(金) 14:15:41.35ID:c/ihY094
そんな時こそ右辺値参照テクですか。
0559デフォルトの名無しさん2016/07/01(金) 14:27:19.38ID:HYkfDzbE
opencvの存在を知らずにどうにかビットマップを読み込んでなんやかんやしようとして
ノリでビットマップのクラスを作ってみたけれどコジャナイ感が迸る
自分で作ったので処理の過程でイロイロ弄れるトコは勉強になった

ただビットマップのクラスに平滑化とかする機能がついとるのはおかしい
絶対におかしい
0560デフォルトの名無しさん2016/07/01(金) 15:33:52.88ID:t5b8D9cY
普通にunique_ptrのカスタムデリータとかstructで書いてるが
あかんのか
0561デフォルトの名無しさん2016/07/01(金) 15:47:48.03ID:gRLB76qD
>>560
なんも悪くない
std::less だってstructさ
0562デフォルトの名無しさん2016/07/01(金) 17:57:40.92ID:HU8djk9+
>>554
>今までの意味のあるレスを総合するとprivateとpublic以外に違いは無いという話になるけど

どのレスを総合したらそうなった?
「privateとpublic以外に違いは無い」は一応誤りではない
0563デフォルトの名無しさん2016/07/01(金) 18:10:01.76ID:ExGMotnu
structはデフォルトpublicになるclassと言うのは規格通りのc++ならその通りだけど、MSの似たようなものは規格通りじゃないから、classで前方宣言してstructで定義すると警告が出たりリンクが通らなかったりする。
0564デフォルトの名無しさん2016/07/01(金) 18:29:05.06ID:HU8djk9+
2箇所ほど論理的におかしな点が見られるが
マイクロソフトが嫌いで怨嗟に満ちたFUDを繰り返していると脳の機能が低下するようだ
0565デフォルトの名無しさん2016/07/01(金) 18:38:25.61ID:ExGMotnu
規格だとstructで宣言してもclassで宣言してもクラスとして扱い、定義で異なる側を使っても問題が起こらない事になっている。

MSのコンパイラはマングリング時にわざわざ別物として扱うせいで問題が出てくる。
0566デフォルトの名無しさん2016/07/01(金) 19:05:51.01ID:UWzkmdJM
こんな時は江添に訊こう
0567デフォルトの名無しさん2016/07/01(金) 20:32:28.21ID:tm+bfi5q
>>565
マンダリング?
いまいちよくわからんからおかしくなるコード示してくれ
0568デフォルトの名無しさん2016/07/01(金) 21:38:13.00ID:zP6RHcqw
次はstructとclassかw
0569デフォルトの名無しさん2016/07/01(金) 21:41:50.38ID:9AhyjXN+
構造体とクラス
構造体に関数くっつけたくらいのモノって雰囲気
0570デフォルトの名無しさん2016/07/01(金) 22:20:27.61ID:OPXJaySG
雰囲気とかいいから! 厳密に!
0571デフォルトの名無しさん2016/07/01(金) 22:21:33.77ID:1Uj9mXBn
namespaceは?
0572デフォルトの名無しさん2016/07/01(金) 22:45:14.74ID:ExGMotnu
>>567
https://alfps.wordpress.com/2010/06/22/cppx-is-c4099-really-a-sillywarning-disabling-msvc-sillywarnings/
0573デフォルトの名無しさん2016/07/01(金) 22:53:10.38ID:i4BlLtx3
>>567
name mangling

静的に決定されるメソッドへのリンケージを指すシンボル名を
クラス名や関数名だけじゃなく戻りの型や引数の型とか色々連結する奴
0574デフォルトの名無しさん2016/07/01(金) 22:54:50.05ID:29bXc8+7
調べたら構造体も関数置けるらしい?
0575デフォルトの名無しさん2016/07/01(金) 22:58:29.23ID:2/fqo0Wr
C++に閉じてるとstructとclassにほとんど違いはない
常識やぞ
0576デフォルトの名無しさん2016/07/01(金) 23:00:00.84ID:lr1NMl2N
意識するほど違いないからむしろ知らないヤツ
0577デフォルトの名無しさん2016/07/01(金) 23:00:43.20ID:lr1NMl2N
適当なの置いとこ
https://msdn.microsoft.com/ja-jp/library/4a1hcx0y.aspx
0578デフォルトの名無しさん2016/07/02(土) 00:40:04.66ID:/9fjL431
structは、メンバをデフォルトでpublicとする、classの事である。 -ハゲ先生-
0579デフォルトの名無しさん2016/07/02(土) 05:15:05.22ID:CYoEjQ+6
自作クラスのメンバー変数に別の自作クラスを使うときはpublicの方がいいの?
何か色々とエラーが起こるたびにpublicにするとエラー取れるんだけど
0580デフォルトの名無しさん2016/07/02(土) 06:53:35.28ID:D6tdSGjp
>>570
structもclassもどちらも等しくクラス。
以前はstructで宣言したら(仮想関数が有っても)構造体ということになっていたがC++11で消された。
ただ構造体という言葉の定義が無いまま用語が使われている箇所が残っている状態。
現規格では代わりにPOD、標準レイアウト、トリビアル、POD構造体などの細分化された分類が使用される
0581デフォルトの名無しさん2016/07/02(土) 09:59:24.05ID:/9fjL431
PODってなんだい
0582デフォルトの名無しさん2016/07/02(土) 15:32:10.34ID:5caQg1Ad
iPodを想像すればわかるだろ
0583デフォルトの名無しさん2016/07/02(土) 15:53:06.41ID:RKIHWAuM
perl podとは別だからな
0584デフォルトの名無しさん2016/07/02(土) 16:37:18.07ID:nfE7kzVY
podとは:(エンドウなどの)さや、さや状のもの、(蚕の)まゆ、(イナゴの)卵袋、ポッド、(宇宙船の)離脱部、(アザラシ・クジラなどの)小群

つまりそういうこと
0585デフォルトの名無しさん2016/07/02(土) 16:40:19.27ID:I5ZEPD/K
ナルホドナー
0586デフォルトの名無しさん2016/07/02(土) 16:52:31.13ID:/9fjL431
勉強になりました
0587デフォルトの名無しさん2016/07/02(土) 18:08:42.41ID:e6MV0/B3
C/C++ではPODはplain old data。C言語と互換性があるデータのこと。
0588デフォルトの名無しさん2016/07/02(土) 18:12:56.01ID:q+5yBnDd
>>587
>C言語と互換性があるデータのこと
それは規格のどこに書いてあるのですか
0589デフォルトの名無しさん2016/07/02(土) 18:20:50.18ID:VHqvSqJ5
>>588
どこに書いてあるか見つけられないなら、そのように書いて質問しなさい。
0590デフォルトの名無しさん2016/07/02(土) 18:23:28.99ID:q+5yBnDd
>>587
その様な記述は私めには見つけられませんでした
恐縮ではございますが、規格のどこに書いてあるのか教えていただけませぬか?
0591デフォルトの名無しさん2016/07/02(土) 18:31:43.85ID:e6MV0/B3
>>590
ISO C++規格の9.4
0592デフォルトの名無しさん2016/07/02(土) 18:37:17.90ID:lSWKgORp
>>588
n3092の

POD structとは以下のすべてを満たすclassである
・trivial classである
・かつstandard-layout classである
・かつ非静的メンバ変数に、非POD structや非POD union(あるいはこれらのような型の配列)を持たないcalssである

みたいなことが書いてあるとこ
訳の品質、文書の所在位置、これが本質的にどういう意味であるかに関して返答はしない
0593デフォルトの名無しさん2016/07/02(土) 18:41:04.00ID:q+5yBnDd
>>592
それは存じております
それに該当する規格の箇所を読んた上で、「Cとの互換性があるデータ」に該当するのはPODでなく標準レイアウトだと思っていたため、
僭越ながら糞レスを投稿させていただいた次第にございます
0594デフォルトの名無しさん2016/07/02(土) 18:44:23.15ID:lSWKgORp
俺も詳しくないから今後のためになるかと思って必死こいて探してきたんだけどさ
知ってることがあるなら予め詳しく書いてくれてもいいんじゃないの
0595デフォルトの名無しさん2016/07/02(土) 18:45:22.72ID:lSWKgORp
あ、すまん俺が悪かった
0596デフォルトの名無しさん2016/07/02(土) 18:47:32.75ID:q+5yBnDd
大変申し訳ございません
私めの様な無知な者が嘘を晒して皆様にご迷惑をおかけしてはいけないと思い、あやふやな知識をひけらかすのではなく質問してしまいました
0597デフォルトの名無しさん2016/07/02(土) 18:52:22.12ID:lSWKgORp
誰だって上げ足取られるの嫌だもんな
皆も上げ足取られないように黙ってたり、こんなことも知らないとか哀れだなpgrみたいな態度でいこうな
0598デフォルトの名無しさん2016/07/02(土) 18:55:27.86ID:N0+QBUWP
Cと互換性のある型はstandard layoutかつtrivialな型=podでしょ

http://www.cplusplus.com/reference/type_traits/is_pod/
0599デフォルトの名無しさん2016/07/02(土) 19:01:31.58ID:VHqvSqJ5
>>593
>それに該当する規格の箇所を読んた上で、「Cとの互換性があるデータ」に該当するのはPODでなく標準レイアウトだと思っていたため、

それは、規格のどこに書いてあるんだい?
どこを探しても書いてないんで、教えて欲しいんだが。
0600デフォルトの名無しさん2016/07/02(土) 19:06:12.04ID:N0+QBUWP
ああ、型じゃなくてデータか、ならstandard layoutだけで満たせるな
0601デフォルトの名無しさん2016/07/02(土) 20:19:01.09ID:vyTXfzh3
お前ら仲良くできんのか
罰としてこれからはギャルみたいな顔文字で会話しろ
0602デフォルトの名無しさん2016/07/02(土) 20:25:26.32ID:e6MV0/B3
(・∀・)
0603デフォルトの名無しさん2016/07/02(土) 20:30:19.22ID:2n3wTz3m
何で>>601に命令されなきゃいけないんだ
0604デフォルトの名無しさん2016/07/02(土) 20:31:41.31ID:e6MV0/B3
なっか〜よし〜♪
0605デフォルトの名無しさん2016/07/02(土) 20:36:31.55ID:q+5yBnDd
>>599
規格に直接の記述は無くあくまで私めの想像のため「読んた上で〜思っていた」という書き方をしたのですが、
日本語が糞だったようで申し訳ございません(≧∀≦)ゞ
また「それに該当する規格の箇所」は大嘘で、他にも3節、9節、12節全般を見ておりました重ねてお詫び申し上げます(≧ω≦
0606デフォルトの名無しさん2016/07/02(土) 20:50:51.96ID:e6MV0/B3
(*^_^*)
0607デフォルトの名無しさん2016/07/02(土) 21:12:54.03ID:hJjptbyA
(≧∀≦)ゞ 萎えた小さいカリに注目
(≧ω≦ ふぐりに注目
0608デフォルトの名無しさん2016/07/02(土) 21:24:24.79ID:kLSSqNJi
visualstudioについての質問なのですが
一度win32api空のアプリケーションを作成することは出来るのですが
その後またプロジェクトから新しく空のアプリケーションを作成しようとすると
空のアプリケーションって項目が無いのですが、これってバグってますか?
プロジェクトを開く から一応以前使ったものを開くことはできるのですが・・・
ちょっと説明下手ですいませんが回答お願いします
0609デフォルトの名無しさん2016/07/02(土) 21:27:24.06ID:I5ZEPD/K
無いのかあ
0610デフォルトの名無しさん2016/07/02(土) 22:58:28.45ID:vm/cHCuL
郵便番号の枠内7桁にそれぞれcm単位で指定して数字書き込みたいんだけど、

cm単位で文字を印刷できる開発環境ってないですか・・?
0611デフォルトの名無しさん2016/07/02(土) 23:02:49.42ID:N0+QBUWP
>>601
罵倒の言葉でてなく全然喧嘩してるように見えないけどなんでそう思ったん?
0612デフォルトの名無しさん2016/07/02(土) 23:04:56.96ID:e6MV0/B3
>>610
PDF
0613デフォルトの名無しさん2016/07/02(土) 23:13:37.08ID:RVQIiSGw
>>610
> cm単位で文字を印刷できる環境ってないですか・・?
そういうのを作るためにあるんだが... ⇒ 開発環境
0614デフォルトの名無しさん2016/07/02(土) 23:18:25.16ID:e6MV0/B3
>>610
SVGでもいいよ
0615デフォルトの名無しさん2016/07/02(土) 23:36:51.88ID:e6MV0/B3
二次元画像や印刷に関することは全部PDFに丸投げすればいい。
用紙サイズなども指定できるし、印刷イメージを確認できる。
PDFを出力・印刷するライブラリがそこら辺に転がっているはず。
0616デフォルトの名無しさん2016/07/03(日) 07:02:43.76ID:2TWNRZSm
c/c++にはc#のusingみたいなのは無いのですか?
0617デフォルトの名無しさん2016/07/03(日) 07:12:50.55ID:K32DS1jL
>>616
C#のusingの使われ方はいくつかありますが、なにをするときのusingですか?
0618デフォルトの名無しさん2016/07/03(日) 07:20:30.83ID:2TWNRZSm
usingの構文をc/c++で使う感じでお願いします
0619デフォルトの名無しさん2016/07/03(日) 08:34:52.43ID:B6etB31D
>>611
>>589も>>590も相手を挑発してんだろ
0620デフォルトの名無しさん2016/07/03(日) 09:07:45.44ID:GHSyq4ku
>>619
穿った見方しすぎじゃね?w (^0^;)
0621デフォルトの名無しさん2016/07/03(日) 09:12:06.01ID:GfbAs34G
stage 1. C++規格の巨大さと複雑さによりイライラがつのる
stage 2. 攻撃的な言動が現れてくる
stage 3. ストレスによりハゲる
0622デフォルトの名無しさん2016/07/03(日) 09:19:18.63ID:GHSyq4ku
stage 1. C++規格の巨大さと複雑さによりイライラがつのる
stage 2. 些細な事でも攻撃しているように見えてくる
stage 3. ストレスによりハゲる

も多少はあるじゃなかろうか。
挑発しかしないやつがここに居座ってることは否定しないが
0623デフォルトの名無しさん2016/07/03(日) 09:39:00.12ID:XmXujGWw
単に、
こんな複雑なC++の仕様を理解した私はきっと特別な存在なのだと感じました。
ハゲは遺伝。
ってことなんじゃないかと。
0624デフォルトの名無しさん2016/07/03(日) 09:49:38.26ID:EfkUt+fo
結局ハゲるんじゃねえか!
0625デフォルトの名無しさん2016/07/03(日) 09:53:36.95ID:j1MbS/oi
だれがハゲだと タコこら
0626デフォルトの名無しさん2016/07/03(日) 10:37:23.07ID:VJWyx2wt
ん?タコって言い方が快いの?
0627デフォルトの名無しさん2016/07/03(日) 10:52:38.75ID:K32DS1jL
>>618
スコープ抜けたときにDisposeを実行するやつのことかな?

C++にusing構文に相当するものはない、というか不要

C#はGCが実行されるまでデストラクタが実行されないから、スコープ抜けたあと直ちにファイルを閉じたりしたいとき、usingを使ってDisposeを間接的に呼び出す

C++は、スコープ抜けたタイミングでデストラクタが実行される
だから、デストラクタ内にC#のDispose相当の処理(ファイル閉じるとか)を書いておけばOK
0628デフォルトの名無しさん2016/07/03(日) 10:55:22.22ID:K32DS1jL
>>618
あ、Cの場合はあきらめて

fopenしたあと、fcloseを呼ぶのはプログラマの責任
0629デフォルトの名無しさん2016/07/03(日) 10:59:55.42ID:2TWNRZSm
>だから、デストラクタ内にC#のDispose相当の処理(ファイル閉じるとか)を書いておけばOK

それを書かないでもよいusingが便利なんですが。
0630デフォルトの名無しさん2016/07/03(日) 11:00:30.73ID:2TWNRZSm
>>628
了解です。fcloseしません。
0631デフォルトの名無しさん2016/07/03(日) 11:05:14.24ID:VJWyx2wt
c++でusing使ったことあるのアレだけだな
std::書くのめんどくさいだな
0632デフォルトの名無しさん2016/07/03(日) 11:09:11.16ID:GHSyq4ku
イミフ
0633デフォルトの名無しさん2016/07/03(日) 11:13:25.89ID:KN6oyAsS
{ auto f = new SomeFile(fname); // using block
// なんとか
// かんとか
}

きっとこうなるに違いない 賭けてもいい
0634デフォルトの名無しさん2016/07/03(日) 11:16:56.06ID:K32DS1jL
>>629
?
自作のクラスだったら、C#でもDisposeの中身は自分で実装するよね?

C++標準のクラスだったらRAIIっていうイディオムに基づいて書かれているから自分で何か書く必要はないよ
std::ifstream(C#のStreamReaderみたいなやつ)とか

https://ja.wikipedia.org/wiki/RAII
0635デフォルトの名無しさん2016/07/03(日) 11:17:08.36ID:GHSyq4ku
C#を使う奴はバカばっかと思わせる工作か何かなのかな?
0636デフォルトの名無しさん2016/07/03(日) 11:33:45.04ID:fZGwSx1V
>>622
自己紹介乙
0637デフォルトの名無しさん2016/07/03(日) 14:47:15.23ID:4DcNaFHa
ありがとうC、C++

他言語の会得が超簡単
しかも何故それがそうなっているか
良くわかる
0638デフォルトの名無しさん2016/07/03(日) 17:14:14.40ID:D8QwY1Oj
むしろ>>637がわかった気になった労害バカを演出する他言語の工作員
0639デフォルトの名無しさん2016/07/03(日) 17:28:02.26ID:GHSyq4ku
>>638
そいつと ID:2TWNRZSm と >>633 は同一人物でしょ
0640デフォルトの名無しさん2016/07/03(日) 18:22:36.88ID:EfkUt+fo
C/C++のライバルはRust
C#のライバルはJava
PythonはRubyを倒した
0641デフォルトの名無しさん2016/07/03(日) 20:07:34.64ID:3P8/YHPT
https://gyazo.com/bc6a24ee863d7a0677669ce7b664786a
新規作成でwin32apiコンソールが無いんですがこれは普通の状態ですか?
>>608なんですけど・・・
0642デフォルトの名無しさん2016/07/03(日) 21:28:57.69ID:86JIH385
それBlendっつー別なソフトでは
0643デフォルトの名無しさん2016/07/03(日) 21:38:17.67ID:JUlnPaJm
その発想は無かったw
UWPがC++で書けるからBlendが反応するのか
0644デフォルトの名無しさん2016/07/03(日) 22:01:36.24ID:3P8/YHPT
>>642
レスありがとうございます
たしかにblendという名前みたいですが,visualstudioとblendは別々の物なんですか?
https://www.visualstudio.com/ja-jp/products/visual-studio-express-vs.aspx ここでDLしたんですが
間違えてますかね・・・
0645デフォルトの名無しさん2016/07/03(日) 22:08:32.17ID:2TWNRZSm
>>644
communityを入れるといいよ
0646デフォルトの名無しさん2016/07/03(日) 22:26:15.93ID:3P8/YHPT
>>645
よくPC調べたらセットで入ってました
もうだめだ・・・ありがとうございました。
0647デフォルトの名無しさん2016/07/03(日) 22:26:32.51ID:hiZOMQsY
std::shared_ptr<std::vector<std::unique_ptr<Mymodule::FooClass> > > foo;
0648デフォルトの名無しさん2016/07/03(日) 22:30:35.21ID:86JIH385
>>644
BlendはVisual Studio入れると一緒に入ってくるやつ
タスクバーの「すべてのアプリ」を開いて「B」のとこにBlendがあって、「V」のとこにVisual Studioが入ってるはず
0649デフォルトの名無しさん2016/07/04(月) 21:07:49.26ID:xIvutS2m
visualじゃないC++でコマンドラインオプションってみんなどうしてますか?
Cのgetopt使ってますか?
0650デフォルトの名無しさん2016/07/04(月) 21:18:11.03ID:NfMIw++W
Makefile に書いてますよ
0651デフォルトの名無しさん2016/07/04(月) 21:23:25.52ID:6KxsVri8
まじかよエスパーだな
0652デフォルトの名無しさん2016/07/04(月) 21:46:51.62ID:0RWmorvn
コマンドライン解析をどうすんのかと思ったらそう来たか
0653デフォルトの名無しさん2016/07/04(月) 21:49:32.80ID:t8+2DfQb
あー コンパイラへのオプション指示か < makefileに書いてある
0654デフォルトの名無しさん2016/07/04(月) 21:51:19.44ID:GYGqEUqk
知的労働者は言葉を正確に使いましょう。
0655デフォルトの名無しさん2016/07/04(月) 21:54:13.23ID:leDQ2hhA
VisualじゃないC++っていうから俺も一瞬そっちかと思ったよ
argc argvのコマンドライン引数の方ならVisual関係ないよね。
0656デフォルトの名無しさん2016/07/04(月) 22:01:04.78ID:PPrRFDPY
聞き方が逆だな
VCでgetoptみたいなことをやりたい場合何を使っていますか?だろ
0657デフォルトの名無しさん2016/07/04(月) 22:04:22.86ID:t8+2DfQb
GetCommandLine から自前でパース(ダブルクオートでくくる例外有で LWSP をセパレーターに)
0658デフォルトの名無しさん2016/07/04(月) 22:06:09.04ID:GYGqEUqk
__targv
0659デフォルトの名無しさん2016/07/04(月) 22:25:52.51ID:wq7m5CJ5
boost::program_options

……使ったことないな
0660デフォルトの名無しさん2016/07/04(月) 22:53:18.08ID:NfMIw++W
オプションの解析なら、ちとムズイっすよ。getopt使おうと何しようと。
0661デフォルトの名無しさん2016/07/05(火) 03:51:02.29ID:5Z8M15AM
コンテナを10以下の偶数で小さい順に初期化
std::vector<int> vi{2,4,6,8,10};
これを手打ちではなくconstexprを使ってコンパイル時に行いたいのですが
どう書いたら良いでしょうか。
c++14以降でやろうとしてます
0662デフォルトの名無しさん2016/07/05(火) 07:33:02.54ID:LC918cVr
C++スレで聞け
0663デフォルトの名無しさん2016/07/05(火) 08:11:34.68ID:3Cw/5VNX
一応c++もOKスレやん
0664デフォルトの名無しさん2016/07/05(火) 08:35:39.53ID:upKF0xwf
そういうギャグだよ多分
0665デフォルトの名無しさん2016/07/05(火) 11:10:50.84ID:ZPJIaBn1
>>661
vectorはconstexprにできないみたいよ
コンストラクタがconstexprになってないから
それ以前にどうせ定数ならただの配列じゃだめなの?それならconstexprつけれるよ
0666デフォルトの名無しさん2016/07/05(火) 14:34:13.80ID:hrikNUEL
>661
ヒープにバッファを取るコンテナはコンパイル時に生成できない。
std::arrayにする。
0667デフォルトの名無しさん2016/07/05(火) 16:46:30.20ID:uqtC8UHW
>>655
それです
0668デフォルトの名無しさん2016/07/05(火) 17:50:57.93ID:V/YUiinK
constexpr はよくわからん
0669デフォルトの名無しさん2016/07/05(火) 18:00:02.55ID:elMqi8sI
C++14になってよくわからん要素殆ど無くなったと思うけど。MSVCは対応してないけどな!
0670デフォルトの名無しさん2016/07/05(火) 20:57:28.90ID:A/5vsUhK
アンチVCはいつもFUDばかり
具体的な内容は出てこないよな
0671デフォルトの名無しさん2016/07/05(火) 21:27:44.53ID:gqIrbwQ1
MSVCはC++11 constexprには対応してるから……
0672デフォルトの名無しさん2016/07/05(火) 21:37:25.18ID:EZq07/Ex
MSVCへの文句は使っているからこそ出てくるものだろ。
constexprでsinとか呼べなかったり、規格とは別に制限があるから実際よくはまるんだよ。
0673デフォルトの名無しさん2016/07/05(火) 21:48:07.15ID:A/5vsUhK
>constexprでsinとか呼べなかったり
>よくはまるんだよ
何だただのバカかよwww
0674デフォルトの名無しさん2016/07/05(火) 21:59:53.53ID:S1GDXYIL
どう馬鹿なのかよくわからん
0675デフォルトの名無しさん2016/07/05(火) 22:18:26.39ID:A/5vsUhK
アンチVCは自分がヴァカであることを自覚できないバカ
ということを証明してしまったなwwww
0676デフォルトの名無しさん2016/07/05(火) 22:23:16.01ID:qwK3ZrRl
というか、constexperの使い道が思い浮かばん
0677デフォルトの名無しさん2016/07/05(火) 22:28:46.60ID:N9Q3ESXW
まあ、ここは初心者用ということで
0678デフォルトの名無しさん2016/07/05(火) 22:36:16.62ID:61MxF96h
すまんがどう馬鹿なのか教えてくれ
0679デフォルトの名無しさん2016/07/05(火) 22:39:26.10ID:V/YUiinK
> というか、constexperの使い道が思い浮かばん

私もそうなのです。不勉強だけなのかもしれませんが。 @g++使い
0680デフォルトの名無しさん2016/07/05(火) 22:55:14.28ID:3Cw/5VNX
型付きでコンパイル時定数作るにはconstexprしか無いと。
0681デフォルトの名無しさん2016/07/05(火) 22:56:37.23ID:YA2E4xFq
>>678
>>670の『具体的な内容』とは「MSVCが対応していないC++14の機能」のことだろう。
それがただの「MSVCへの文句」にすり替わってしまっているようだ
0682デフォルトの名無しさん2016/07/05(火) 23:11:54.11ID:N9Q3ESXW
>>679
結果ではなく行為に意味がある、と言ってコンパイル時にレイトレーシングするキワモノも日本に存在する。
なんとその者の本業は陶芸家だというから、世界は広い
0683デフォルトの名無しさん2016/07/05(火) 23:26:04.31ID:kUnpBo75
>>670
俺物凄く具体的にC++14のconstexprに対応してないって言ってると思うけど?
0684デフォルトの名無しさん2016/07/05(火) 23:44:48.18ID:kUnpBo75
その後の発言見て理解したから返事なくて構わない
0685デフォルトの名無しさん2016/07/06(水) 00:33:28.12ID:yOLH0MKc
constexprってボレロとか江副みたいな、メタプログラミングで遊んでる連中のためのオモチャでしょ
業務で使い物になる代物じゃない、解散
0686デフォルトの名無しさん2016/07/06(水) 00:39:30.12ID:2xc1YUig
これこそ具体性のないFUDだな
0687デフォルトの名無しさん2016/07/06(水) 00:49:40.03ID:MUSItuhL
constexprのsinとか言い出すからバカだって言われるんだよ
そんなもの規格に存在しないから
0688デフォルトの名無しさん2016/07/06(水) 01:50:30.30ID:bWP52uID
constexrのsinすらできないconstexprの存在意義って……
0689デフォルトの名無しさん2016/07/06(水) 02:20:11.12ID:6QRf0KAb
C++て将来どうなるんだろうね。
破滅の道しか見えねぇ
0690デフォルトの名無しさん2016/07/06(水) 03:42:11.99ID:MUSItuhL
>>688
欲しけりゃ自分でやりゃいーじゃん
何でも天から降ってくると思ってる奴はC++使うな
そもそも他の言語で実行前sin計算をサポートしてるのなんてあるのかね
>>689
C++より先にお前が破滅するから気にしなくていーよ
0691デフォルトの名無しさん2016/07/06(水) 07:15:12.77ID:svlco4IY
存在意義を考えるにあたっては
変数のconstexprなのかただの関数のconstexprなのか
コンストラクターのconstexprで導入されるリテラル型なのかを区別したほうがいい
0692デフォルトの名無しさん2016/07/06(水) 08:23:36.80ID:cEXpDLlT
#define A1 100
#define A2 200
#define MYMAX(i1,i2) ((i1)<(i2)?(i2):(i1))
#define A MAX(A1,A2)

constexpr int A1 = 100;
constexpr int A2 = 200;
constexpr int MYMAX(int i1,int i2) {return i1<i2?i2:i1;}
constexpr int A = MYMAX(A1,A2);

constexpr否定派は前者の書き方を好むの?
0693デフォルトの名無しさん2016/07/06(水) 10:28:58.84ID:BMWjC5Mr
const 参照じゃだめですか。
0694デフォルトの名無しさん2016/07/06(水) 10:31:24.79ID:G+pFTp0+
マクロじゃなくTMPにしてくれ
0695デフォルトの名無しさん2016/07/06(水) 10:32:45.96ID:bWP52uID
>>690
とりあえずd言語ではコンパイル時sinできるな
どうせ同じようなの目指してるくせにconstexprは使い勝手が良いとは言い難い状況だと思うぞ
あとsinレベルから自分で実装したくない人はC++使うなって意見には恐れ入るわ
0696デフォルトの名無しさん2016/07/06(水) 11:02:09.19ID:kLlvdTaf
マクロはなんかハックって感じで危なっかしいのでなるべくなら正式な言語サポートを受けて胸を張ってコーディングしたいところ
0697デフォルトの名無しさん2016/07/06(水) 11:07:16.87ID:BMWjC5Mr
const int aaa=100;
const int bbb=200;
const auto &&ccc=aaa+bbb;

こんなのはどおですか。
流行の右辺値参照式w
0698デフォルトの名無しさん2016/07/06(水) 11:07:33.11ID:MUSItuhL
>sinレベルから自分で実装したくない人はC++使うな
そんなこと言ってないが?
欲しいものが何でもかんでも標準で揃ってないからってぶーたれる奴は
C++使うなって言ってるんだよ
D言語は知らんがコンパイル時sinなんてどうせ定数引数でしか出来ないんだし
0699デフォルトの名無しさん2016/07/06(水) 11:18:23.88ID:2xc1YUig
標準ライブラリのconstexpr化が進まないのは文句言って早く標準に取り入れてもらうべきでしょ
0700デフォルトの名無しさん2016/07/06(水) 13:15:44.06ID:BID/ZwR3
constexprなんてなくてもコンパイラはそれが定数かどうか
静的解析してだいたいは判断できるよね
だからほとんどの場合は不要なことの方が多くない?
0701デフォルトの名無しさん2016/07/06(水) 17:28:32.42ID:dN+qsiOY
double a=asin(0.5);
g++はconstexprにさせてくれる。
clang++はダメ。
0702デフォルトの名無しさん2016/07/06(水) 19:14:13.86ID:cEXpDLlT
int a = 0.5;
constexpr double b = std::asin(0.5);
if (std::asin(a)==b)
どうせこういうのが偽になるんでしょ?
実数を比較するのはNGとはいえ
糞ファッキンだな
0703デフォルトの名無しさん2016/07/06(水) 19:27:17.05ID:M/EGIEaV
>>702
何言ってるのか解らない
0704デフォルトの名無しさん2016/07/06(水) 19:37:25.47ID:mPolJXZ0
>>693
>>697
ダメ。
それだとあくまで変数なので配列定義に使えない。
0705デフォルトの名無しさん2016/07/06(水) 19:44:15.17ID:M/EGIEaV
>>704
この人そういう話をしてたの?
何について話してるのか解らないからスルーしてたけど。
0706デフォルトの名無しさん2016/07/06(水) 20:31:56.68ID:s9ecTOGA
子供が車の隙間から飛び出してくるかも知れない運転

コンパイラが静的解析で定数化してくれないかも知れないコーディング
0707デフォルトの名無しさん2016/07/06(水) 20:44:49.29ID:BMWjC5Mr
>>704
ダメなコード書いてみてください
0708デフォルトの名無しさん2016/07/06(水) 21:35:30.60ID:yfuPLOFW
>>694
ほれ
http://ideone.com/O7ATyw
0709デフォルトの名無しさん2016/07/06(水) 21:38:30.93ID:yfuPLOFW
>>707
ほれ
http://ideone.com/NCrszE
0710デフォルトの名無しさん2016/07/06(水) 21:57:08.25ID:svlco4IY
>>706
>子供が車の隙間から飛び出してくるかも知れない運転
つまりそれはどういう運転なんだ?
0711デフォルトの名無しさん2016/07/06(水) 22:23:08.31ID:s9ecTOGA
フェールセーフ
0712デフォルトの名無しさん2016/07/07(木) 08:57:06.80ID:XcAwSgw+
子供が車の隙間から飛び出してくるかも知れない(と予知・想定する)運転
0713デフォルトの名無しさん2016/07/07(木) 10:46:38.46ID:q2Pf1ow9
>>702
?
0714デフォルトの名無しさん2016/07/07(木) 15:00:36.81ID:VcEC42ue
初心者で申し訳ないのですが、
使いやすい開発環境がありましたらお教えください。
0715デフォルトの名無しさん2016/07/07(木) 16:47:31.24ID:PrkpLbvv
>>714
visualstudio一択

マックPCしか持ってなかった場合はわからん
0716デフォルトの名無しさん2016/07/07(木) 17:03:42.49ID:u2nvsEbT
>>710
車の例えばドアのすき間から子供がにゅるんと飛び出してくるのかと思ったよね
0717デフォルトの名無しさん2016/07/07(木) 17:16:11.81ID:2z1Dkoy4
もはや心霊動画
0718デフォルトの名無しさん2016/07/07(木) 20:13:48.55ID:2OqMTLKT
ハハワロス
0719デフォルトの名無しさん2016/07/07(木) 22:25:46.22ID:XkRar8u9
>>714
CLion
0720デフォルトの名無しさん2016/07/08(金) 01:21:35.37ID:wvqVojA5
Windows:
-VisualStudio(Community)
- コンパイラはイマイチ。
-エディタは癖が無く使いやすい。
- CPUプロファイラも使いやすい。
-メモリプロファイラはあるがリーク検出はない
mac:
-Xcode
-コンパイラが優秀。
-エディタ部分は人によって好みが別れる気がする。
-AddressSanitizerでメモリエラー検出などか出来る(初心者がCやC++を使うならこれ重要)
-CPUプロファイラも使いやすい。
-メモリプロファイラも使いやすい。メモリリークも表示可能

クロスプラットフォーム:
-CLion
-有料
-つかたことない
0721デフォルトの名無しさん2016/07/08(金) 01:23:17.61ID:wvqVojA5
せっかくyaml風にインデント揃えたのに無視されるのな
今まで知らなかったわ
0722デフォルトの名無しさん2016/07/08(金) 02:31:31.41ID:Cs2IVz6g
>>721
専ブラならインデント表示されてるよ
0723デフォルトの名無しさん2016/07/08(金) 02:37:45.32ID:TpnIQ46O
イ
  ン
    デ
      ン
        ト
0724デフォルトの名無しさん2016/07/08(金) 05:58:08.90ID:Gnk4qhfx
QtCreator良いよ
0725デフォルトの名無しさん2016/07/08(金) 07:11:56.40ID:AB/3IDvJ
『専ブラならインデント表示されてるよ』
「ボクのPCでは動いたよ!」と似ている
0726デフォルトの名無しさん2016/07/08(金) 10:31:41.56ID:9pHG3Ipk
linuxのg++でシコシコも楽しいよ。
0727デフォルトの名無しさん2016/07/08(金) 11:50:10.00ID:dvK0TIAm
>>714です
ありがとうございました。
早速試してみます
0728デフォルトの名無しさん2016/07/09(土) 05:17:12.87ID:MjGawMki
c++で仕事探し始めて4ヶ月…
boost, c++11,STL使いこなせるのに仕事見つからず( ;´Д`)
もう都内のバイトまで含めた全部の応募に落ちそう
不採用理由はスキル不足だそうな
0729デフォルトの名無しさん2016/07/09(土) 05:46:21.14ID:Mz5tnssE
>>728
とにかくソフトを作りまくれ
0730デフォルトの名無しさん2016/07/09(土) 08:33:10.92ID:OBptfGOh
>>728
Boost、あんなに無数のライブラリ群、粗方使いこなせるのかすげえな。技術英語や数学もお手の物だろ
0731デフォルトの名無しさん2016/07/09(土) 08:40:16.16ID:cNqa9fRP
>>728のオツムの弱さに同情
どうせその自己アッピルをして
日本で仕事をさがしたんだろ
0732デフォルトの名無しさん2016/07/09(土) 08:53:04.42ID:yutPJwmv
使いこなせてないから仕事がないんだろ
0733デフォルトの名無しさん2016/07/09(土) 09:45:58.85ID:8Lgp+qS1
採用は実務経験が物を言う
0734デフォルトの名無しさん2016/07/09(土) 09:49:19.63ID:T6O6qyzf
面接でスキル不足がわかるってどゆ事だ?
やった事ないって事か。
0735デフォルトの名無しさん2016/07/09(土) 19:45:48.06ID:LztxKsG4
>>720
vsでもメモリリーク検出出来るよね?
0736デフォルトの名無しさん2016/07/09(土) 20:35:03.67ID:JRD6p7Lu
できるよ
0737デフォルトの名無しさん2016/07/09(土) 20:56:18.62ID:3CUWSYwC
>>735
ある?見当たらないけど
コード書き換えてその間に解放されなかったものとか
スナップショット2回とって差分見るとかいう原始的なものじゃないよ?
0738デフォルトの名無しさん2016/07/09(土) 21:08:53.38ID:wTI3H7Ic
原始的だろうとリーク検出には違いないと思うが、ちゃんとメモリブロックごとに
解法漏れを検出できる機能があるよ。
0739デフォルトの名無しさん2016/07/09(土) 21:10:48.40ID:3CUWSYwC
検出機能じゃなくてメモリリークを発見するのを補助するツールだよね
0740デフォルトの名無しさん2016/07/09(土) 21:42:29.44ID:wTI3H7Ic
あんたの「検出機能」と「補助するツール」の定義の違いがわからん。
0741デフォルトの名無しさん2016/07/09(土) 22:03:00.38ID:3CUWSYwC
>>740
Xcodeのメモリリークツール使ったことある?
0742デフォルトの名無しさん2016/07/09(土) 22:23:29.30ID:wTI3H7Ic
つまり、Xcodeが備えている機能こそが「検出機能」であって、それ以外は単なる「補助するツール」だと。
0743デフォルトの名無しさん2016/07/09(土) 22:30:59.69ID:3CUWSYwC
>>742
誰もそんな事言ってないけど
使ったことあってVSにも遜色ない機能があるというなら俺の見つけてない場所に機能が隠れてるんだなってだけ。
使ったことないなら違いが解らなくても仕方ないのかな
0744デフォルトの名無しさん2016/07/09(土) 22:42:27.16ID:Pl+20dBD
>>737 が Visual Studio に見つけられなくて
Xcode にある機能が ID:3CUWSYwC が言う検出機能なんだろ
どんな素晴らしい機能か知らんけどいちいちもったいぶってる奴の言うことなんてどうでもいいや
0745デフォルトの名無しさん2016/07/09(土) 22:46:41.59ID:Cwu0vuEx
正直、俺も>>741の一言は、>>742だと思った
0746デフォルトの名無しさん2016/07/09(土) 23:05:13.65ID:wTI3H7Ic
>>743
いや、だから、その「遜色ない機能」ってのがあんたの言う「検出機能」なんだろ?
わけわからんな。
0747デフォルトの名無しさん2016/07/09(土) 23:05:36.44ID:3CUWSYwC
実行してメモリリークしたアロケーションの場所を表示するだけの機能ですけど
ググってもVSに同等機能見つけれなかったよ。
どうやんの?
0748デフォルトの名無しさん2016/07/09(土) 23:07:14.37ID:3CUWSYwC
>>746
例えばvalgrindなんかはメモリリーク検出機能って言えるけどXcodeが備えてる機能じゃないよ
0749デフォルトの名無しさん2016/07/09(土) 23:11:15.52ID:3CUWSYwC
メモリリークと判断するのがツールなのか人間なのかって話なんだけど。VSはメモリリークと判断してくれる機能ある?
0750デフォルトの名無しさん2016/07/10(日) 00:33:39.69ID:Di6VIZiJ
>>749
その聞き方が人を小馬鹿にしてるみたいで不評だと気付きなよ…
典型的な炎上系発言だよ…

あと多分こちらの方が適切だと思うよ↓
Visual Studio 2015 Part5©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1463267100/
0751デフォルトの名無しさん2016/07/10(日) 00:44:07.35ID:7bNQZoic
>>750
いや、俺は無いと思ってるから720に書いたらあるとつっこまれたから返してるだけで特に続けたい話題でもないから
0752デフォルトの名無しさん2016/07/10(日) 04:22:50.78ID:gbsigde5
いろいろ突っ込もうと思ったら>>742で終わってた
0753デフォルトの名無しさん2016/07/10(日) 05:35:26.90ID:Sw0fYTeN
>>750
> 典型的な炎上系発言だよ…
どう見てもわざとやってると思う
Xcode は知らんけど >>737 辺りのレス見るとコード書き換えとかの話をしれっと入れてるからコンパイルオプションとかで設定できるんじゃね?
で、https://msdn.microsoft.com/ja-jp/library/x98tx3cf.aspx とか出したらそんな面倒なんじゃダメ
Xcode ならこんなに簡単
って言いたいだけかと
マカーにありがちな行動なのでスルーでよろしく
0754名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 07:03:50.35ID:yNmq0uE7
3CUWSYwCの人気に嫉妬
0755名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 08:27:58.14ID:E0XSw+IH
_CrtSetReportMode()
_CrtSetReportFile()
_CrtSetDbgFlag()
を使えで終わるのに
0756名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 08:47:46.88ID:7bNQZoic
>>753
コンパイルオプションすら必要無いんだけど
0757名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 09:26:49.99ID:7bNQZoic
結局人間が指定した場所で確保中ならリークのはずだって判断しなきゃならない機能しかないよね?
0758名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 09:54:38.55ID:D0PozWsA
プログラムの終了時点を指定すりゃいいだろ?
それとも、ルート集合から辿れなくなったメモリのみが真のリークと言いたいのかな。
プログラム終了時のfreeを省略するような人でもなきゃ実用上は困らんと思うが。
0759名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 10:05:00.51ID:7bNQZoic
>>758
std::quick_exit使えないね
0760名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 10:20:22.16ID:D0PozWsA
えーっと、つまり、std::quick_exit使ったときに誤検知するようなのはリーク検出機能とは言えないと、
そう言いたいわけかな?
0761名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 10:27:09.89ID:7bNQZoic
>>760
人間が本当にリークしてるのか判断しなきゃいけないようなものはリーク検出機能とはいえない
0762名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 10:42:22.24ID:D0PozWsA
結局そういうことだよね。
あんたが「探しても見つけられなかった」というのは、あんたのその基準に照らして
「リーク検出機能」と言えるものが存在しなかったということで。
0763名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 11:17:35.68ID:7bNQZoic
>>762
そうね。_Crt***も知ってたし
0764名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 12:37:23.62ID:gbsigde5
やっぱり>>742で終わってた
0765名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 13:46:37.67ID:0ouB/fQJ
> Xcode ならこんなに簡単
> って言いたいだけかと
図星過ぎて笑える
お前は予言者か
0766名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 14:11:49.44ID:D0PozWsA
そういえば>>759読んで、この人はいろいろ機能にこだわりがあるわりに、そもそもなんのために
リークチェックやってるんだろうと思った。
0767名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 14:38:40.51ID:7bNQZoic
VSしか使ったこと無い奴らがそれで十分なんだと必死だなぁ
0768名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 14:51:48.43ID:6+/m8D+A
スルー検定実施中
0769名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 16:28:44.51ID:E0XSw+IH
実際知らなかったけど無理やり知ってた事にしたいんだよキッズ
0770名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 17:44:24.91ID:7bNQZoic
>>769
スタックトレースすら表示出来ないVC6の時からほぼ変わってないとは知らなかったよ
0771名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 17:49:47.92ID:nHF5Eez1
#includeでインクルードしたファイルを文字列として扱う方法はあるでしょうか?
イメージとしては以下のような事がしたいのですが

static const char text_data[] = "
#include "text.txt"
";
0772名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 17:58:30.19ID:7bNQZoic
>>771
ない。
予めテキストをchar配列かraw string として解釈出来る形に変換しておくしか
0773名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 18:00:09.99ID:l4QcjVDg
\ とか トライグラフとか (非表示可能文字とか) パーサーさんに厳しい要求やね
0774名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 18:13:06.08ID:vClNR34Z
>>770
エディットアンドコンティニューがどうしたって?
0775名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 18:14:55.43ID:nHF5Eez1
>>772
char配列として解釈できる形に何とかしようかと思います。
ありがとうございました。
0776名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 19:34:04.07ID:S+kSiVGt
>スタックトレースすら表示出来ないVC6の時から

表示のさせ方がわからず、調べることすらできなかったことを自慢されても…
0777名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 19:36:01.24ID:E0XSw+IH
>>770
ボロが出すぎなような・・・
0778名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 19:41:38.20ID:7bNQZoic
>>776
えっ
https://msdn.microsoft.com/ja-jp/library/x98tx3cf.aspx
に書いてないけど出来るの?
0779デフォルトの名無しさん2016/07/10(日) 20:15:36.96ID:Sw0fYTeN
どうせ「俺が思ってるスタックトレースと違う」ってオチでしょ
Xcode とやらが素晴らしいのはわかったからおとなしく使っときゃいいのに...
0780デフォルトの名無しさん2016/07/10(日) 20:17:27.17ID:skDMLrQ9
スタートレックの話しようぜ
0781デフォルトの名無しさん2016/07/10(日) 20:25:12.79ID:7bNQZoic
>>779
もったいぶるね
0782デフォルトの名無しさん2016/07/10(日) 20:27:49.59ID:S+kSiVGt
>>778
VC6のスタックトレース表示機能の話かと思ったが、
VC6のメモリリーク検出機能に於けるメモリ確保箇所のスタックトレース表示のつもりだったのか?
0783デフォルトの名無しさん2016/07/10(日) 20:28:58.37ID:7bNQZoic
>>782
ずっとその話しかしてないよ俺
0784デフォルトの名無しさん2016/07/10(日) 20:30:33.34ID:7bNQZoic
というかスタックトレース表示するだけが出来ないって言ってると思うってどんだけ相手がバカだと思ってんだよw
0785デフォルトの名無しさん2016/07/10(日) 20:36:48.98ID:6OGJlvB4
メモリーリーク起こしたnewやmallocの箇所さえ分かれば十分で
呼出履歴なんて欲しいと思ったことないなあ
もっともC++でRAII徹底してるからメモリリークなんてよっぽどの
ことがないかぎり起こさないけど
0786デフォルトの名無しさん2016/07/10(日) 20:46:02.41ID:bFVLlstv
>>784
おまえが馬鹿な事ばっかり書いてるからそれは仕方ない
0787デフォルトの名無しさん2016/07/10(日) 20:55:27.35ID:JadyJf5w
xcodeってなんだ
0788デフォルトの名無しさん2016/07/10(日) 20:56:02.34ID:S+kSiVGt
>>784
一瞬どっちか迷ったけど、>>737の『ある?見当たらないけど』を見ていたら
ただのスタックトレースかと思ってしまった失礼(≧∀≦)ゞ
0789デフォルトの名無しさん2016/07/10(日) 21:02:45.80ID:7bNQZoic
>>785
自分の書いたコードしか見ないならそれでいいんだけどね。
だから普段趣味ではVS使ってるけどリーク検出機能無くても困ってない。CI上で保険の為にやってるvalgrindで間に合ってる。
VS上で検出する気にならないってのもあるけど
0790デフォルトの名無しさん2016/07/10(日) 21:15:39.27ID:D0PozWsA
MacでプログラミングするならXcodeだしWindowsならVSって決まっちゃうんで比較すること自体
意味なかろうとか、自分で作ったものでもない単に使っているだけのツールを自慢して何が
嬉しいのだろうかとか、突っ込みどころはいっぱあるが、

>VSしか使ったこと無い奴らがそれで十分なんだと必死だなぁ

解放忘れのメモリを確保した箇所が特定できればたいていは用が足りるがなぁ。
それで足りないって、普段どんだけリーク起こしてんのかとw
0791デフォルトの名無しさん2016/07/10(日) 21:22:22.70ID:7bNQZoic
>>790
>普段どんだけリーク起こしてんのかとw
そう言い出す奴出てくると思ったわw
普段使わないからこそそのためだけに専用コード突っ込むとか有り得ないわ
0792デフォルトの名無しさん2016/07/10(日) 21:38:12.44ID:3alIB5am
>普段使わないからこそそのためだけに専用コード突っ込むとか有り得ないわ

一見日本語のようだけど
直前の文との繋がりが見えない
0793デフォルトの名無しさん2016/07/10(日) 21:40:31.64ID:l4QcjVDg
お互い相容れるつもりはないんだし はいはいよかったでちゅねー とだけ
0794デフォルトの名無しさん2016/07/10(日) 22:00:43.58ID:D0PozWsA
>コード書き換えてその間に解放されなかったものとか
>メモリリークと判断するのがツールなのか人間なのかって話なんだけど。VSはメモリリークと判断してくれる機能ある?
>結局人間が指定した場所で確保中ならリークのはずだって判断しなきゃならない機能しかないよね?
>普段使わないからこそそのためだけに専用コード突っ込むとか有り得ないわ

解放忘れをチェックしたいところに仕掛けるもんだと思ってたわけか。
0795デフォルトの名無しさん2016/07/11(月) 02:22:26.23ID:S7tBHyCY
不毛すぎw
0796デフォルトの名無しさん2016/07/11(月) 02:51:57.63ID:pcx1KbFM
.h書く→.cppに実装する→中断する
数日後
何やったか何をやるつもりだったか忘れる

これどうにかならん?
いちいち思い出すところからやるのもったいないんだけど
0797デフォルトの名無しさん2016/07/11(月) 03:03:13.78ID:Sg9SGUZ2
まとまった時間がないと厳しいね
何事も
0798デフォルトの名無しさん2016/07/11(月) 06:32:02.50ID:NZ3IHxmF
中断することも前提に置いたコメントをマメに書いては消してするしかあるまい
0799デフォルトの名無しさん2016/07/11(月) 06:48:06.16ID:DHaYiQ8W
俺はTODOコメントを書くよ
VisualStudioやEclipseならTODOリストを表示できるし
0800デフォルトの名無しさん2016/07/11(月) 07:37:40.80ID:R6KLmmvW
>>791
いやメイン関数冒頭で1回指定すればいいだろ
0801デフォルトの名無しさん2016/07/11(月) 10:09:30.33ID:NZ3IHxmF
人が書いてるの真似して俺も// TODO:って書いてたけどVSにそんな機能あるんだ
知らずに書いてたわ
0802デフォルトの名無しさん2016/07/11(月) 10:16:02.42ID:23TvDq/Z
>>796
クイックス知ってる? あれと一緒よ何事も
把握できる範囲でモジュール化する
小さな完成物の組み合わせで少しずつ大きくしていく
欲張って一気に面積塗り潰そうとしたら線引いてる最中に敵に交差されて破綻させられる(←手に負えない仕事のメタファ)
だからといってもじもじしてたら辺を伝ってくる別の敵(納期のメタファ)に殺される
0803デフォルトの名無しさん2016/07/11(月) 12:13:29.49ID:Dm0wnBQZ
塗りつぶさないよう細長く伸ばしていって、最後に一気に取って100%を狙うゲームか
0804デフォルトの名無しさん2016/07/11(月) 14:16:30.71ID:LD9hjR9d
いつ中断しても、その時点で完成品が理想。
とわ言え にんげんだものw
0805デフォルトの名無しさん2016/07/11(月) 14:49:25.66ID:R6KLmmvW
>>796
中断時は必ずビルド通る状態で中断したい
そのために機能毎に分割する
副次的な効果としてメンテナンス性と再利用性の向上
本当はメンテナンス性と再利用性を追求していった結果分割 & 中断時もビルド通過ってのが理想
0806デフォルトの名無しさん2016/07/11(月) 14:52:59.80ID:Sg9SGUZ2
for文って毎回条件式の判定を行うのでしょうか。

例えば
for (auto i = 0; i < 1000; ++i);
これは1000回判定を行う?

これをなくそうと思ったら関数オブジェクトの配列とGOTO文を使う方法しか思いつかなかったのですが
いい方法があったら教えてくだちゃい
0807デフォルトの名無しさん2016/07/11(月) 14:56:32.73ID:R6KLmmvW
>>806
とりあえず>>806が望んでる動作を教えて
08088062016/07/11(月) 15:03:05.68ID:Sg9SGUZ2
>>807
説明不足で済みません。

最適化された後のマシン語レベルでも
比較命令が1000回実行されるのか、
それとも1000回実行する命令に置き換えられるのか

という質問でした
0809デフォルトの名無しさん2016/07/11(月) 15:04:30.30ID:R6KLmmvW
>>808
for() { ここでどういう処理するかによると思う }
0810デフォルトの名無しさん2016/07/11(月) 15:18:59.26ID:+BlNBH22
i の使われ具合: ブロック内では使われない から 書き換えの可能性あり まで
や最適化の有無でかわってくるんでないの
0811デフォルトの名無しさん2016/07/11(月) 15:30:20.41ID:LD9hjR9d
コンパイラのプログラマがガリガリに最適化してると思うから、
ループ数が固定ならレジスタ変数そのまま使ってるんじゃないですかねぇ。適当
0812デフォルトの名無しさん2016/07/11(月) 16:09:35.74ID:rP8ubZEM
お前ら普段なに作ってるの?
0813デフォルトの名無しさん2016/07/11(月) 16:28:40.87ID:duNPuqdM
>>806
1000回だろうと1000万回だろうと大して違わんと思うけど何がしたいの
意味不明に怯えるんじゃなくて測定方法を知るべきじゃないの
0814デフォルトの名無しさん2016/07/11(月) 16:59:30.77ID:rLMr2F9x
>>806
ループアンローリングという高速化手法がある。
0815デフォルトの名無しさん2016/07/11(月) 18:31:55.76ID:xAqvosA3
ループアンローリングと言う単語を出せるかどうかを見て出せなかったらバーカバーカと言い出す釣りだと思っていた
0816デフォルトの名無しさん2016/07/11(月) 19:51:40.38ID:Q/53K9NX
修辞質問でその実上から知識をひけらかすだけのゴミクズが来てると聞きました
0817デフォルトの名無しさん2016/07/11(月) 19:57:12.05ID:BOCVQw3X
>>815
メモリーリーク検出の次はループアンローリングかよ w
0818デフォルトの名無しさん2016/07/11(月) 20:17:23.85ID:e/xpOtmY
>>808
マシン語レベルに「1000回実行する命令」はない
0819デフォルトの名無しさん2016/07/11(月) 20:24:57.30ID:MlAKlWk4
まじかよ
x86のF3は繰り返し命令だと信じていたぜ
0820デフォルトの名無しさん2016/07/11(月) 20:38:05.18ID:BOCVQw3X
LDIR
0821デフォルトの名無しさん2016/07/11(月) 20:38:07.64ID:O0wDeDe6
F3だけで1000回実行するよ。
0822デフォルトの名無しさん2016/07/11(月) 21:37:22.25ID:NhS7LYWb
quick_exitでも正しくメモリリーク検出して
くれるXcodeならそんなのペッだろ
0823デフォルトの名無しさん2016/07/11(月) 21:53:28.45ID:e/xpOtmY
string命令は確かにそうゆうものだったね
string命令で書けるよっぽど単純な処理じゃない限り、一般の処理の繰り返し命令は存在しないに訂正
0824デフォルトの名無しさん2016/07/11(月) 23:30:28.23ID:iNyodpwK
>>820
Z80…
0825デフォルトの名無しさん2016/07/12(火) 09:17:21.57ID:x9hMoHCp
>>817
いやそれは>>806の事では?
0826デフォルトの名無しさん2016/07/12(火) 10:21:14.51ID:48V9bidN
>>820
むしろ遅くなる伝説の命令かw
0827デフォルトの名無しさん2016/07/12(火) 12:59:01.27ID:JK0X2IjU
単純にレジスタに数値入れて、ループする事にデクリして、ゼロに
なったらジャンプじゃないんですか。
0828デフォルトの名無しさん2016/07/12(火) 15:43:51.62ID:T1H5Dpok
第2回 「締め切りは絶対に守るもの」と考えると世界が変わる
http://gihyo.jp/lifestyle/serial/01/software_is_beautiful/0002
0829デフォルトの名無しさん2016/07/13(水) 12:02:05.32ID:4iIZ9n0P
MS visual c++で.net使うのって他言語(c#とか)から使った場合と比べてメリットはあるんでしょうか?
アンマネージドの場合、MFCを使った事あるんですが最近はもっと使いやすい環境があるんでしょうか?
0830デフォルトの名無しさん2016/07/13(水) 13:41:08.78ID:jyyAd6hv
C++/CLIとかいうC++ですらない謎言語を使うことになるんだけど
これはC++と.Netの両方に精通していないと使いこなすことは困難だよ
少なくとも、ここで、そういった質問をしている人が使うような言語ではない
何もかも分かったうえで仕方なしに使う言語
チャレンジしてみてもよいけど、すぐに辞めたくなると思うよ
.Netが使いたいなら、基本C#で書いて、処理速度がほしい部分はC++で書いたDLLを呼び出すとかにしたほうが良いかも
0831デフォルトの名無しさん2016/07/13(水) 14:04:08.03ID:FTmLpuGB
C++CLI使う用途ってアンマネージドC++と.netアプリのつなぎに使うこと以外思いつかない。
08328292016/07/13(水) 14:21:26.76ID:4iIZ9n0P
>>830-831
なるほど、以前MFCを触った時はGUI周りの記述とかが結構繁雑でまいってました
他言語と連携する方向で使ってみます
有り難う御座いました
0833デフォルトの名無しさん2016/07/14(木) 09:55:26.49ID:wVrQJFl3
無料で使える(または体験版が提供されている)プロファイラーを教えて下さい
私の環境は、言語は C/C++0x で、コンパイラはVisualStudio2010Expressです。
0834デフォルトの名無しさん2016/07/14(木) 10:15:36.87ID:Pn0k4xX0
使ったこと無いけどAMD CodeAnalystとか?
0835デフォルトの名無しさん2016/07/14(木) 12:00:56.41ID:IOgXMudO
ぷ プロファイラってなんだ サイコメトラみたいなもんか
0836デフォルトの名無しさん2016/07/14(木) 12:06:49.81ID:48m1um87
VisualStudio2010Express プロファイラ でぐぐると何か出てくる
0837デフォルトの名無しさん2016/07/14(木) 12:07:26.59ID:XrC0/rFw
>>835
ここお前のTwitterじゃないと思うよ。
0838デフォルトの名無しさん2016/07/14(木) 12:22:15.34ID:IOgXMudO
>>836
とん vcのツールね。2015コミュにあるか調べてみる。
>>837
わり
0839デフォルトの名無しさん2016/07/14(木) 22:19:03.54ID:ISGZXvS2
暇だ
新たなスルー検定はまだですか
0840デフォルトの名無しさん2016/07/14(木) 23:55:54.45ID:Pn0k4xX0
>>839
お前それスルーする気ないやん
0841デフォルトの名無しさん2016/07/15(金) 00:04:05.35ID:oakmbfUf
read-modify-wrtie!!
PostMessage!!
0842デフォルトの名無しさん2016/07/15(金) 00:39:36.83ID:5lg5r5GV
またエビデンス要求してもいいんだが俺にしてもネタがないとなかなかな
0843デフォルトの名無しさん2016/07/15(金) 01:45:05.74ID:/n6WdnML
>>841
端から見ててもいつまでひっぱってんだ気持ち悪いと感じるよ
0844デフォルトの名無しさん2016/07/15(金) 02:42:58.62ID:tgDbQPYm
ここで募集するのも筋違いだとおもうけど、SQLの文を書いたのを訂正してほしい・・・
中級者には30分ほどでおわる内容かも。
謝礼は7000で、
多分、チョー簡単。
詳しくは
[email protected]
日曜までとりあえず募集します。
メールで内容確認だけでも良いです/
0845デフォルトの名無しさん2016/07/15(金) 03:27:07.91ID:9GIMlFkW
if(true)
int a=1;
else
int a=0;
cout<<a<<endl;
これコンパイルエラーになるのね。ハジー
0846デフォルトの名無しさん2016/07/15(金) 04:00:41.94ID:CRVe43Br
VC6.0以外のC++は初めてか?力抜けよ
0847デフォルトの名無しさん2016/07/15(金) 05:49:49.89ID:QVui+Lon
どっちにしてもエラーじゃないの?
0848デフォルトの名無しさん2016/07/15(金) 06:23:56.38ID:3YaEzIU8
アンチVCはいつもFUDばかりだからな
0849デフォルトの名無しさん2016/07/15(金) 09:52:52.44ID:kBkiG3Sk
VC信者は具体的に駄目なところ挙げても認めないからな
0850デフォルトの名無しさん2016/07/15(金) 13:42:37.62ID:VjVb35Nf
It is by design.
0851デフォルトの名無しさん2016/07/15(金) 18:28:02.22ID:embMfOEF
>>849
そんなことを言ったところで>>849みたいな
アンチVCによるFUDの事実が無くなる訳じ
ゃないぞプ
0852デフォルトの名無しさん2016/07/15(金) 21:32:29.51ID:a56D59S2
vs2012使ってる初心者です
他プロジェクトでプレコンパイルしたobjファイルをリンクさせたいのですが
プロパティで他の依存ファイルとライブラリパスを設定してもうまくいきません
何か根本的に間違っているんでしょうか?
0853デフォルトの名無しさん2016/07/15(金) 21:38:54.87ID:TUH2BSfp
はい次の人どうぞ
08548522016/07/15(金) 22:59:41.96ID:a56D59S2
なんとなく自己解決しました
objファイル自身がプロジェクト内で依存関係を解決出来てない事があるからっぽいですね
素直にlibにして使うことにします
0855デフォルトの名無しさん2016/07/16(土) 04:06:59.69ID:vLlJYbDK
初心者はプレコンパイルなんて言わない……
0856デフォルトの名無しさん2016/07/16(土) 06:18:58.33ID:T3tJRIKZ
ひやかしは帰って、どうぞ
0857デフォルトの名無しさん2016/07/16(土) 13:25:37.53ID:ijfIR7jc
libにしたら解決するんだろうか
可能性は無くはないが
0858デフォルトの名無しさん2016/07/16(土) 19:26:02.65ID:rIH/G1H8
>>843
何を議論してたのかも思い出せんが
なんか盛り上がったよな
どっちの人?
0859デフォルトの名無しさん2016/07/17(日) 09:35:54.90ID:KssOz/jK
WindowsのCかC++でutf8文字列を正規表現で置換したいんだけどどうするのがいいかな?

std::reg → utf8 はバイト列としてしか扱えなかった
std::wregex → 日本語ロケールは CP932 しか使えない? すくなくとも ja_JP.UTF-8 とかは受け付けない
鬼車 → 置換がライブラリに入ってなかった

置換対象の文字列は短くて応答速度はそれほど重要ではないです
比較的メジャーで静的ライブラリであることと Visual Studio から使いやすいことを重視してます
0860デフォルトの名無しさん2016/07/17(日) 09:37:45.63ID:KssOz/jK
× std::reg
○ std::regex
0861デフォルトの名無しさん2016/07/17(日) 09:41:22.18ID:nNFMiWcY
UTF-16LEに変換してからってのはダメなん?
0862デフォルトの名無しさん2016/07/17(日) 09:51:35.36ID:KssOz/jK
ダメではないです

その場合はどのライブラリを使うことになるのでしょうか
0863デフォルトの名無しさん2016/07/17(日) 10:09:15.14ID:nNFMiWcY
ライブラリは使った事無いからわからない
Win32APIのMultiByteToWideCharでできる
0864デフォルトの名無しさん2016/07/17(日) 10:54:19.58ID:fdER2k4a
なぜUTF-16でなくUTF-16LEがこんな所で出てくるのか
0865デフォルトの名無しさん2016/07/17(日) 10:59:31.48ID:nNFMiWcY
>>864
UTF-16で調べてLEとBEどっちってならないように
0866デフォルトの名無しさん2016/07/17(日) 11:08:23.05ID:fdER2k4a
バイト単位のエンコーディングであるUTF-16LEに変換しても問題は解決しないのだが。
それともUnicode規格のencoding schemeとencoding formの区別がついていないのか
0867デフォルトの名無しさん2016/07/17(日) 11:15:22.29ID:to7vCM3Q
てか、置換するだけならなんでbyte単位じゃ駄目なの?
0868デフォルトの名無しさん2016/07/17(日) 11:29:59.63ID:fdER2k4a
確かにそんな気もする。
だがそれだと連続する二つの16ビット単位にまたがったパターンにミスヒットするのでは?
0869デフォルトの名無しさん2016/07/17(日) 11:34:25.83ID:nNFMiWcY
>>866
何か勘違いしてる?
MultiByteToWideCharではUTF-16に変換した場合BEじゃなくLEで出力でしょ?
0870デフォルトの名無しさん2016/07/17(日) 11:36:27.81ID:tHA9CG/Z
wchar_tならLE/BEの区別はないだろうと、そういうこと?
0871デフォルトの名無しさん2016/07/17(日) 11:46:24.14ID:KssOz/jK
UTF-16ならunicodeで正規表現を扱えるのであれば変換が入っても構わないですが
正規表現のパターンにもunicodeは出てくるのでそれを正しく扱えるライブラリを探してます

バイト単位の処理ならstd::regexでutf8を通せるので
0872デフォルトの名無しさん2016/07/17(日) 11:49:32.90ID:naDslXcm
UTF-8をstd::regexに通してなんの問題もないだろ
0873デフォルトの名無しさん2016/07/17(日) 11:53:47.33ID:KssOz/jK
>>872
例えば文字境界を正しく解釈できないという問題があると思うのですが
0874デフォルトの名無しさん2016/07/17(日) 12:24:02.61ID:fdER2k4a
>>869
変換する手段などどうでもよくて
UTF-16LEに変換することがおかしいのでは?と言ってるのだが、
MultiByteToWideCharの結果がUTF-16LEと言われても。
因みToWideCharという名前から察するにchar配列(UTF-16LE)ではなくwchar_t配列(UTF-16)に変換する関数なのではないのか
0875デフォルトの名無しさん2016/07/17(日) 12:25:24.81ID:OPED9KqB
>>873
utf8はエンコードの方式上、charで扱っても文字境界を間違えることはないはずだよ
どうエンコードしてるか調べてみれば分かる
0876デフォルトの名無しさん2016/07/17(日) 12:34:42.17ID:fdER2k4a
>>870
その通り。
UTF-16LEはencoding schemeの一つで、バイト単位のシリアライズの方式。バイトオーダーの区別がある。
UTF-16はencoding formの一つで、16ビット単位の表現方式。バイトオーダーの概念はない。
wchar_tは後者かと
0877デフォルトの名無しさん2016/07/17(日) 12:38:13.48ID:nNFMiWcY
>>874
Windowsのって話だから文字コードがユニークなUTF-16を推した
UTF-16LEはcharでは無くwchar_tでは?
Windows標準のメモ帳で言う所の
 ANSI・UTF-8をUnicodeに変換する関数で
 UnicodeはUTF-16LE
 Unicode big endianはUTF-16BEになる
08788762016/07/17(日) 13:18:59.48ID:QsgH89uU
>>877
>UTF-16LEはcharでは無くwchar_tでは?
もしVisual C++固有の用語か何かだったら知らんが、
少なくともUnicode規格上の定義ではあり得ない。
あと、バイト単位で読み書きするファイルとプログラミング言語上の型wchar_tとを同列に扱っちゃ駄目
0879デフォルトの名無しさん2016/07/17(日) 13:39:23.97ID:KssOz/jK
>>875
?
ライブラリがutf8として正しく扱っているかどうかの話なのですが
0880デフォルトの名無しさん2016/07/17(日) 13:46:43.54ID:nNFMiWcY
>>878
プログラム内でそのままwchar_tとして扱えるからさ
言い換えればbig endianの場合は反転させないと意図した文字として扱えない
0881デフォルトの名無しさん2016/07/17(日) 14:16:52.59ID:lAgLj6qR
>>879
\dとか\sにascii以外も含めたいってこと?確かにそれは無理だよ
あと例えば あ+ じゃなくて (あ)+ って書かなきゃいけなかったりで使えない場面があるから
そういう場面で使うならwstringに変換したら?
std::wstring_convert<std::codecvt_utf8<wchar_t>,wchar_t> cv;
auto wchar_str=cv.from_bytes(utf8_str);
で変換できるよ
0882デフォルトの名無しさん2016/07/17(日) 14:59:17.95ID:NOws1PxP
有名なところでpcreでも使っとけ
0883デフォルトの名無しさん2016/07/17(日) 15:01:28.67ID:KssOz/jK
>>881
> \dとか\sにascii以外も含めたいってこと?確かにそれは無理だよ
> あと例えば あ+ じゃなくて (あ)+ って書かなきゃいけなかったりで使えない場面があるから

そう >>859 には書いたつもりだったんですが
表現がまずくて伝わっていなかったら申し訳ない
文字境界は例として出しただけでPOSIX文字クラスとかunicodeに対応してくれてないと困ります

> そういう場面で使うならwstringに変換したら?

windowsの visual studio 付属の標準ライブラリだと
ワイド文字用の std::wregex はunicodeに対応してないっていうのも >>859 に書いたつもり
0884デフォルトの名無しさん2016/07/17(日) 16:25:16.02ID:KssOz/jK
>>882
pcre が定番ということになるんでしょうか
ちょっと古そうなのと Visual Studio で使いづらそうだったので敬遠してたのですが
候補として検討してみます
0885デフォルトの名無しさん2016/07/17(日) 16:55:15.16ID:tHA9CG/Z
std::wregexなら普通にstd::wstringやwchar_t*で使えるぞ。
そもそもw使うのにロケールがどうとか言っている時点で何か勘違いしている。
0886デフォルトの名無しさん2016/07/17(日) 18:15:42.49ID:KssOz/jK
>>885
使えるというのはどういうレベルで?
UTF-16がエラーなく通ればいいというのではなくてunicode文字集合を対象とした正規表現をきちんと処理できないと意味がないのですが
0887デフォルトの名無しさん2016/07/17(日) 18:57:57.84ID:0IF3o7Xe
>>859
「きちんと処理」を具体的に言ったほうがいい
たとえば[[:digit:]]が全角数字にもマッチすることなら
正規表現エンジンがunicode対応していればできるかもしれない。

自分もboost_regexで似たようなことに悩んだんだけど、
結局バイト列で扱えるよう、正規表現の記述の方を書き換えることにした
例えば、[0-9](全角数字)は、\xef\xbc[\x90-\x99] という感じ
0888デフォルトの名無しさん2016/07/17(日) 18:59:29.36ID:0IF3o7Xe
レス番号が違った。分かると思うけど
>>886
0889デフォルトの名無しさん2016/07/17(日) 18:59:36.08ID:0RK4DKFX
Unicode文字集合の意味する事が、UTF16のサロゲートペアとか含むのなら wregex ではダメだろうね。
UTF32対応のライブラリ探すべきかと。
ただ wregex の日本語ロケールがとか言ってる人がどれだけ理解してるのか、甚だ疑問ではある。
0890デフォルトの名無しさん2016/07/17(日) 19:32:37.68ID:QsgH89uU
>>889
>wregex の日本語ロケールがとか言ってる人が
別に変じゃないだろう
ロケールに応じて「1(全角)」や「〇」が\dにヒットするかどうかが変わってもおかしくはない
0891デフォルトの名無しさん2016/07/17(日) 19:34:39.76ID:QsgH89uU
そう言えばC#(.NET)の正規表現の\dはロケールによらず全角の数字も反応したような
0892デフォルトの名無しさん2016/07/17(日) 19:42:18.44ID:KssOz/jK
>>887
ありがとうございます
日本語ロケール下で[[:digit:]]が全角数字にもマッチするような感じです
文字範囲を指定するのにコードで指定するのはきついので
ascii以外の文字についてもある程度基本的な文字クラス指定はほしいと考えています

>>889
サロゲートペアは扱えなくてもいいです
正規表現の動作はロケール依存だと思っていたのですが違うのですか?
0893デフォルトの名無しさん2016/07/17(日) 19:47:23.59ID:KssOz/jK
どうも質問のしかたが悪かったようですみません
質問しなおします

Visual Studio から使いやすい unicode 対応の正規表現エンジンは何がおすすめですか?
文字クラスでの指定がある程度できて静的ライブラリで使えることが条件です
0894デフォルトの名無しさん2016/07/17(日) 20:12:46.29ID:Jns/6RZr
>>890
>ロケールに応じて「1(全角)」や「〇」が\dにヒットするかどうかが変わってもおかしくはない
いやー、これは初耳だわー、びっくりだわー
なんて言うカテゴリで変わるんだ?
0895デフォルトの名無しさん2016/07/17(日) 20:16:27.09ID:QsgH89uU
>なんて言うカテゴリで変わるんだ?
そこで言う「カテゴリ」の定義は?
0896デフォルトの名無しさん2016/07/17(日) 20:18:28.14ID:QsgH89uU
>>893
Win32APIでUTF-8をwchar_t配列に変換してstd::wregexで判定しとけ
0897デフォルトの名無しさん2016/07/17(日) 20:27:05.92ID:QsgH89uU
>>893
ほれ
http://ideone.com/2SvZBY
0898デフォルトの名無しさん2016/07/17(日) 21:01:43.75ID:0RK4DKFX
>>897
で、このサンプルはどのロケールに対応してるの?w
0899デフォルトの名無しさん2016/07/17(日) 21:02:29.83ID:Jns/6RZr
>>895
>そこで言う「カテゴリ」の定義は?
ロケールの話題でカテゴリの定義を求められるとは思っても見なかったわー、びっくりだわー

ISO Cで定義されてるsetlocaleの第1引数以外にどんな「カテゴリ」想像したんだろー、謎だわー、すげー知りたいわー
0900デフォルトの名無しさん2016/07/17(日) 21:42:19.95ID:QsgH89uU
>>898
どうしたいきなり
ロケールがどうとか、>>893との繋がりが見えないぞ
0901デフォルトの名無しさん2016/07/17(日) 22:02:12.76ID:0RK4DKFX
おいおい。自分で
>ロケールに応じて「1(全角)」や「〇」が\dにヒットするかどうかが変わってもおかしくはない
とか言い出したんだ、責任持てよ。

で、そのサンプルは「〇」が\dにヒットするのかい?
もしくはヒットさせるにはどのロケールに設定すればいいのかい?

UNICODEにロケールとか無いんだけどな。というか、ロケール依存をなくすためのUNICODEなんだけどな。
0902デフォルトの名無しさん2016/07/17(日) 22:20:46.36ID:KssOz/jK
>>896
とりあえずこれでしばらくやってみようと思います
わたしのほうにも思い込みや誤解がありましたがいろいろとわかりましたありがとうございます
0903デフォルトの名無しさん2016/07/17(日) 22:27:19.57ID:QsgH89uU
>>901
ワイド版正規表現とロケールの関係を全否定するかのようなレスが有ったので可能性について言及しただけだが、
>>897がその例だと思ってしまうなんてアスペこじらせ過ぎにもほどがあるぞ。
実例は知らんがISO/IEC 9899:2011でisw????系関数はロケールのLC_CTYPEカテゴリの影響を受けると規定されているんだから
ロケールに影響されてもおかしくはないだろう
0904デフォルトの名無しさん2016/07/17(日) 22:39:58.87ID:QsgH89uU
>UNICODEにロケールとか無いんだけどな

どうしてこう息を吸ってはくように嘘がつけるのか。
The Unicode Version 8.0 - Core Specificationの5.18章とか図入りでロケール依存を説明しているのに
0905デフォルトの名無しさん2016/07/18(月) 01:43:58.16ID:hrQEPaIw
>どうしてこう息を吸ってはくように嘘がつけるのか。

また出たー
知識はあるのに社会性のない残念な人
このセリフ出たら要注意な
この人しつこいから
0906デフォルトの名無しさん2016/07/18(月) 01:49:22.12ID:tcI2SnQw
後ろにちゃんと情報が付いてるから、その人とは違うんじゃない?
0907デフォルトの名無しさん2016/07/18(月) 06:36:07.78ID:5c695oD9
http://ideone.com/hUtXUG
これMSVC2015でエラーになるんだけど回避方法ある?
プリプロセッサメタプログラミングに使ってるから関数に置き換えとか無意味なのでナシで
0908デフォルトの名無しさん2016/07/18(月) 09:39:43.40ID:+UjiZUGj
>>907
結構FAQ
#define X(...) __VA_ARGS__
#define OUTSECOND(A,B,...) std::cout << B << std::endl;
#define OUT(A,...) X(std::cout << A << std::endl; OUTSECOND(A, __VA_ARGS__))
0909デフォルトの名無しさん2016/07/18(月) 10:44:16.37ID:YhFrYDip
const intとint constってどっちがいいの?
理由を含めて教えて
0910デフォルトの名無しさん2016/07/18(月) 10:57:10.48ID:5c695oD9
>>908
サンキュー!
なんでこれで通るようになるのか全然意味分かんないけど助かった。
0911デフォルトの名無しさん2016/07/18(月) 12:41:12.94ID:MNeX88sk
>どうしてこう息を吸ってはくように嘘がつけるのか。

この書き方は下手だな。そもそも『嘘を吐く』と『息を吐く』の『吐く』が、読みは違えど同じ漢字を書くことによる言い回しなのだ

『どうしてこう息を吐くように嘘を吐けるのか』と、漢字を開かずに書くのが正しい用法
0912デフォルトの名無しさん2016/07/18(月) 13:21:21.77ID:rCzir4eP
>>911
お前はスレの用法を間違ってるけどな
0913デフォルトの名無しさん2016/07/18(月) 13:21:33.72ID:SnoZw7rB
PCから書いたら sc に書いちゃったよ。。。

>>903
それは実装依存というんだぞ。ロケール依存じゃないぞ。違い分かってる?
「1」は全角数字の1だ。数字だから \d にマッチさせるかさせないかは実装依存だ。
「〇」は白丸(U+25CB)だ。と勘違いしてた。
U+3007の漢字の0だったのね。正直見間違えてた。スマン。
\d にマッチする実装があってもおかしくはないね。
ロケールは関係ないけど。

>>904
こちらも正しておこう。5.18章で言ってるのは他のキャラクターセットに変換するときの話だ。
The case mappings in the Unicode Character Database (UCD) are normative.
というのはUnicodeのマップは一意に決まってるってこと。ロケールによって変わったりはしない。
他のコードセットに変換するときにロケールによってマップが違うから、それは
the Unicode Common Locale Data Repository (CLDR) を参照してね、と書いてある。

ja_JP.UTF8 とかからUnicodeに日本語ロケールが〜とか勘違いするのかなー。
0914デフォルトの名無しさん2016/07/18(月) 13:39:23.88ID:e1itqoiw
0-9 を digit としてさらに
0-9 零-九 �T-�\ がマッチしてほしいのか否か
0915デフォルトの名無しさん2016/07/18(月) 14:02:31.48ID:V8MPLMCF
\d が 0から9にマッチするのはいいが、 零-九 �T-�\ にマッチさせるには
正規表現ライブラリの選択肢ガ殆ど無いだろうな
0916デフォルトの名無しさん2016/07/18(月) 14:27:28.00ID:IjQRgu9E
\dに含めるかは別として、Unicodeのカテゴリを指定できる実装ならそれなりにありそうだが。
ただ、零はNumberに含まれてないんだな。
0917デフォルトの名無しさん2016/07/18(月) 14:54:42.58ID:e1bKwy5k
>>913
>ロケールは関係ないけど
ISO規格を理由にロケールが関係する可能性を説明した俺に対して
「ロケールは関係ない」を連呼するだけで何の根拠も述べないお前は、どれだけアフォなんだ

>5.18章で言ってるのは他のキャラクターセットに変換するときの話だ
いやタイトルも中身も全然違うぞ文盲か?

そろそろ自分がロケールを「文字コード変換のモードか何か」だと勘違いしていることに気付いた方がいい
0918デフォルトの名無しさん2016/07/18(月) 15:02:02.35ID:rCzir4eP
煽り言葉が含まれていると何言っても台無し
0919デフォルトの名無しさん2016/07/18(月) 15:47:58.84ID:e1bKwy5k
>>913
MSDNの説明にも、一部の文字の照合順序はロケールのコレーションに依ると読める記述を見つけました。
正規表現の動作がロケール依存でなく実装依存に過ぎないとお考えの理由を、私めに教えていただけないでしょうか

https://msdn.microsoft.com/en-us/library/bb982727.aspx#regexgrammar
『when locale-sensitive ranges are used, the characters in a range are determined by the collation rules for the locale. 』
0920デフォルトの名無しさん2016/07/18(月) 15:58:11.51ID:uzjXFfJb
で、つまらんやり取りはいつ終わるんだ?
0921デフォルトの名無しさん2016/07/18(月) 21:29:31.53ID:XAvaagXr
そんなことより>>909
0922デフォルトの名無しさん2016/07/18(月) 21:51:27.09ID:MTzIqlad
int constじゃない?
int const*、int* const,int const* const
0923デフォルトの名無しさん2016/07/18(月) 22:04:46.19ID:e1bKwy5k
const int:よく見かける
int const:constを使う他の構文と似ている
好みとしか言いようがない

const int *const p = nullptr;
の二つのconstはtype specifierとポインターのqualifierとで位置付けが大きく異なるので、これを理由に位置の統一は説得力が微妙
0924デフォルトの名無しさん2016/07/18(月) 22:19:19.09ID:aiTLwZDs
"const"は型の前と後のどちらに置いたほうがよいですか
http://www.libjingu.jp/trans/bs_faq2-j.html#constplacement
http://www.stroustrup.com/bs_faq2.html#constplacement
0925デフォルトの名無しさん2016/07/18(月) 22:55:42.18ID:MTzIqlad
好みか。一般的な前置きconstの方が無難だな。
constを前にしか書けないと思い込んでて、ポインタを定数にできないと思ってた時期があったのを思い出した。
0926デフォルトの名無しさん2016/07/18(月) 23:16:00.32ID:DGcnITue
>int const:constを使う他の構文と似ている

具体的にはどの構文?
0927デフォルトの名無しさん2016/07/18(月) 23:25:33.61ID:e1bKwy5k
>>926
void () const 関数のconst
int *const ポインターのconst
int p[const]//C ポインターのconst

const以外でも右から掛かるものは多い
 struct A final {}; 右からfinal
 void mf() noexcept; 右からnoexcept
 void mf() final; 右からfinal
 void mf() override; 右からoverride
 []() mutable {} 右からmutable
 []() constexpr {}//N4582 右からconstexpr
 int i [[iに対する属性]];
0928デフォルトの名無しさん2016/07/19(火) 07:04:00.40ID:8Ralg5Y0
スッポスッポ先生はポインタは一行ごと宣言すれば
型名にくっつけてokとかいっちゃう人だからなあ
0929デフォルトの名無しさん2016/07/19(火) 07:21:29.74ID:pfxIVr9e
integer constant より constant integer の方がしっくりくるから
const int 一択
0930デフォルトの名無しさん2016/07/19(火) 09:24:52.35ID:xHZZFCml
>>928
いかんのか?
0931デフォルトの名無しさん2016/07/19(火) 11:37:12.66ID:+q6IbwI6
>const以外でも右から掛かるものは多い

これがよくわからないんだけど

int const i = 0;
って、const左からかかってない?
0932デフォルトの名無しさん2016/07/19(火) 11:39:43.26ID:+q6IbwI6
と思ってちょっと調べてみたんだけど
右からかかっているで問題ない様だ
0933デフォルトの名無しさん2016/07/19(火) 13:18:54.76ID:pi2oEETM
右に対するもんでしょ。

const char *p と char const *p みたいな。
0934デフォルトの名無しさん2016/07/19(火) 13:40:34.72ID:mST2nN3w
int *p, q, r;
これはpだけポインタ

じゃあアスタリスク1つでpqr全てポインタにする方法ってあるの?
0935デフォルトの名無しさん2016/07/19(火) 13:48:56.17ID:y/X8LVun
typedef
0936デフォルトの名無しさん2016/07/19(火) 13:51:27.46ID:qZJsh9sY
typedef int *INT_PTR;
INT_PTR p, q, r;
0937デフォルトの名無しさん2016/07/19(火) 13:53:05.64ID:pi2oEETM
昔からそれわーわーやってたねw
一行毎じゃだめすか。
int *p にするか int* p にするかでもいろいろw
0938デフォルトの名無しさん2016/07/19(火) 13:55:04.93ID:mST2nN3w
ありがとう

最初の頃
int* p, q, r; 全部ポインタ
int *p, q, r; qだけポインタ
と思ってたわ
0939デフォルトの名無しさん2016/07/19(火) 13:55:48.98ID:mST2nN3w
>>937
それw
0940デフォルトの名無しさん2016/07/19(火) 14:04:11.87ID:mST2nN3w
>>938 5行目
○ pだけポインタ
× qだけポインタ
0941デフォルトの名無しさん2016/07/19(火) 17:25:29.36ID:9iDji/SZ
スッポスッポ先生ってなんだよ
便器の詰まりかよ
0942デフォルトの名無しさん2016/07/19(火) 20:47:45.17ID:NVpJdz2s
char *p;
char * const p;
char const *p;
char const * const p;

const char * は間抜けにみえる
0943デフォルトの名無しさん2016/07/19(火) 21:23:28.66ID:Km8JKCCB
バカ「const charをtypedefしときゃいい」
0944デフォルトの名無しさん2016/07/19(火) 22:00:24.42ID:9iDji/SZ
ホームレスでも勉強会に参加していいと思う?
0945デフォルトの名無しさん2016/07/19(火) 22:15:50.62ID:VmLA1yz0
その行動に心痛める家族がいなければ
あと風呂入って来い
0946デフォルトの名無しさん2016/07/19(火) 22:37:59.38ID:1kYWKwM2
UNIX-CでFTPって関数ある?
0947デフォルトの名無しさん2016/07/19(火) 22:52:03.36ID:dP68bcIJ
>>946
UNIX-Cって何?規格?
0948デフォルトの名無しさん2016/07/19(火) 23:58:18.41ID:1kYWKwM2
UNIXでって意味。ANSI。
0949デフォルトの名無しさん2016/07/20(水) 00:02:19.75ID:OHJTpdzQ
Cの標準関数に大文字から始まるものはない
0950デフォルトの名無しさん2016/07/20(水) 00:12:54.43ID:Inro4zn0
ftpというシステムコールのライブラリもないなぁ。
socket,send.recvでプロトコル実装する?
0951デフォルトの名無しさん2016/07/20(水) 00:28:43.18ID:wZ9PwyPU
>>950
無いのか…調べても見つかんないから。
ソッケト通信から作る面倒だからシェルをキックしてFTPしてみる。
ありがとう。
0952デフォルトの名無しさん2016/07/20(水) 00:36:28.23ID:Inro4zn0
標準でなければ、当然ライブラリはあると思いますけどね。
ftp鯖に対するクライアントをいちいち作ってられませんもんねw
ならやっぱシェルで済ますか・・・
0953デフォルトの名無しさん2016/07/20(水) 01:32:07.62ID:4Ot32fNQ
>>944
ホームレスの数学者がいたような気がする
数学者に宿を借りて転々と生きてるとか
0954デフォルトの名無しさん2016/07/20(水) 01:51:11.03ID:N6miN2tx
そう言えば秋山仁先生もホームレス経験者だったような。
0955デフォルトの名無しさん2016/07/20(水) 04:52:43.46ID:/LEefS5m
setとかをiterator itrで回してて、x=*itrでxを定義したらやっぱりコピーなんですかね?
参照になってほしいんですが、&x=*itrてしたらVisual Studioに怒られます
0956デフォルトの名無しさん2016/07/20(水) 05:49:37.62ID:4EsFdzm4
>>955
vector<int> v = {1,2,3,4,5};
for(auto itr = v.begin();itr != v.end();++itr) {
    int &x = *itr;
    cout << " " << x;
}

これで行けるけど? エラーの内容が分からないから何とも言えないが、他にミスってるんじゃね?
0957デフォルトの名無しさん2016/07/20(水) 08:05:51.86ID:eewarIQI
set
というヒントが出ているのに
その回答はエスパー力が足りない
0958デフォルトの名無しさん2016/07/20(水) 08:56:07.91ID:4EsFdzm4
あぁ、setってconst返すのか?
だったら int const &x = *itr; とすればいいじゃん?
0959デフォルトの名無しさん2016/07/20(水) 11:35:27.34ID:Inro4zn0
setってなんだっけw使った事ないす
0960デフォルトの名無しさん2016/07/20(水) 11:38:14.91ID:Qbef+EAJ
集合
0961デフォルトの名無しさん2016/07/20(水) 12:07:42.04ID:8IcInpGU
スッポスッポ先生とアクセルホッパーて親戚?
0962デフォルトの名無しさん2016/07/20(水) 15:48:23.85ID:Inro4zn0
そんなコンテナあったのかぁ
0963デフォルトの名無しさん2016/07/20(水) 18:12:57.01ID:/LEefS5m
エスパーさせて申し訳ないです
例えば下記のような自作クラスMyClassのunordered_setを作って、それぞれの要素のprivateメンバー変数NUMBERSをループの中で変えたいです
main部は次のレスに書きます

class MyClass
{
public:
MyClass() {}
set<int>& numbers() { return NUMBERS; }
void add_to_numbers(int x) { NUMBERS.insert(x); }
void set_hash() { identity = *(NUMBERS.begin()); }
int hash() const { return identity; }
bool operator==(const MyClass& c) const { return identity == c.hash(); }

private:
set<int> NUMBERS;
int identity;
};

namespace std
{
template<>
class hash<MyClass>
{
public:
size_t operator()(const MyClass& c) const
{
return c.hash();
}
};
}
0964デフォルトの名無しさん2016/07/20(水) 18:14:02.75ID:/LEefS5m
mainです。コピーの操作になってしまうので結果は変わりませんでした。
>>958のようにMyClass m = *itr;をMyClass const& m = *itr;とすると
エラー:オブジェクトにメンバー関数と互換性のない型修飾子がありますオブジェクト型はconst MyClassです
と出ます。どうしたら参照でループさせて直接書き換えられるか教えて下さいお願いします
int main(){
unordered_set<MyClass> M;
MyClass m[10];
for (int i = 0; i < 10; i++) { m[i].add_to_numbers(i); m[i].set_hash(); M.insert(m[i]); }
cout << "初期状態" << endl;
for (auto m : M)
{
cout << "要素: ";
for (auto elem : m.numbers())
cout << elem << ",";
cout << endl;
}
cout << "\n要素操作" << endl;
int count = 1;
for (auto itr = M.begin(); itr != M.end(); itr++){
MyClass m = *itr;
m.add_to_numbers(count);
m.set_hash();
count++;
}
for (auto m : M){
cout << "要素: ";
for (auto elem : m.numbers())
cout << elem << ",";
cout << endl;
}
return 0;
}
0965デフォルトの名無しさん2016/07/20(水) 18:26:21.57ID:V9xYeHz2
setは何木ですか?
0966デフォルトの名無しさん2016/07/20(水) 18:46:55.47ID:sUqAOgET
>>964
MyClass &m = *itr;
で出来ないとは思えないんだが…

試してないけど。
0967デフォルトの名無しさん2016/07/20(水) 18:47:05.08ID:d443/6AI
>>964
できない
hash値が変更されるオブジェクトはunordered_setには入れられない
0968デフォルトの名無しさん2016/07/20(水) 18:51:18.04ID:eewarIQI
まあそうだろうな
set使うなってこった
0969デフォルトの名無しさん2016/07/20(水) 19:00:21.11ID:/LEefS5m
なるほどそうですか
hashが変わるようなことできないようになってるんですね
じゃあコピーを操作して手動で入れ替えるしかないですね
0970デフォルトの名無しさん2016/07/21(木) 03:13:55.55ID:jgTQj/gW
もし、hashが変わったら、挿入したものが参照できなくなる
0971デフォルトの名無しさん2016/07/21(木) 21:57:35.90ID:Xa3tJz3i
const_castで強引にhashを変更したらsetの内部データが壊れる前にPostMessageがエラーを返すようになる
その辺うまく立ち回るのがコツ
0972デフォルトの名無しさん2016/07/22(金) 00:02:26.38ID:feTg+srB
面白いとでも思ってるんだろうか
0973デフォルトの名無しさん2016/07/22(金) 02:51:07.61ID:1K8uX15k
元祖PostMessageくんの足元にも及ばないね
もっと精進してほしい
0974デフォルトの名無しさん2016/07/22(金) 13:18:08.69ID:AM9db4Yk
質問です
ポインタ宣言の書き方でよさげなのはどれすか
char* p=0;
char* p={};
char* p{nullptr};
char* p{};
0975デフォルトの名無しさん2016/07/22(金) 14:56:22.43ID:cH64FzTG
char* p=nullptr;
0976デフォルトの名無しさん2016/07/22(金) 15:38:18.98ID:CLk2GU9k
char* p {nullptr};
0977デフォルトの名無しさん2016/07/22(金) 15:38:27.28ID:9lWfzFCE
>>974
templateでなければnullptrを明示的に使うがよろし。
0978デフォルトの名無しさん2016/07/22(金) 15:59:36.73ID:AM9db4Yk
>>975-977
あざす
>>975と>>976って意味同じっすか?
0979デフォルトの名無しさん2016/07/22(金) 16:02:47.70ID:cH64FzTG
意味ってどういう意味か知らんけど今まで出てるのはみんな同じ結果になるよ
0980デフォルトの名無しさん2016/07/22(金) 16:06:43.91ID:cH64FzTG
俺の考えとしては不必要なところで{}を使うべきではない
0981デフォルトの名無しさん2016/07/22(金) 16:35:28.61ID:3i1N8rKm
>>974
『プログラミング言語C++』第4版(日本語版)の pp.168-170 あたりを見ると
ハゲ先生は char* p{}; を推奨してるように思える。
空の {} がデフォルト値nullptrで初期化するという点も含めて。

{}の初期化だと縮小変換が許されないからエラーの見落としが減る、という趣旨。
(この場合はポインタだから自動変換の心配はないはずだけど)
0982デフォルトの名無しさん2016/07/22(金) 16:37:25.61ID:ygakIBXL
コンストラクタ形式はなんか好きで、出来るところは全部書き直してますw
0983デフォルトの名無しさん2016/07/22(金) 16:39:14.26ID:ygakIBXL
int a[100]={};
もいいねw
0984デフォルトの名無しさん2016/07/22(金) 16:50:41.74ID:6ugyb6lg
>>983
当時はこのやり方がいいと思ってたけど
後々やっぱりこっちがいいって思ったら
過去のソース全部書き直してるの?

俺もクラス覚える前のソースをクラスでスッキリするならクラス使って
malloc使ってた所は全部newに置き換えとかやったけど面倒すぎたw
後々vectorとやらに書き換える時が来るんだろうな
0985デフォルトの名無しさん2016/07/22(金) 16:57:17.50ID:CLk2GU9k
・他人が読んで惑わないコーディング
・三ヶ月後の自分は他人のようなもの
・ハゲがいうなら取り敢えず従っておく
0986デフォルトの名無しさん2016/07/22(金) 17:00:57.06ID:ygakIBXL
>>984
いやいや 遊びやテストのソースですよ。さすがに。
0987デフォルトの名無しさん2016/07/22(金) 17:22:11.31ID:6ugyb6lg
>>986
そういう事ね
09889812016/07/22(金) 17:25:02.77ID:3i1N8rKm
第4版はC++11標準で書かれてるけど、新しい標準になれば
推奨される書き方もまた変わるかもしれない、という心配はあるんだよね。

古いコンパイラでも同じ結果が得られるという利点を考慮すると
char* p = 0; も捨てがたい。
0989デフォルトの名無しさん2016/07/22(金) 17:45:51.52ID:hA1h7uZB
>981
>空の {} がデフォルト値nullptrで初期化する

それは規格のどこに書いてあるのですか?
0990デフォルトの名無しさん2016/07/22(金) 18:02:10.06ID:4Vpww6CB
次スレの季節

【初心者歓迎】C/C++室 Ver.99【環境依存OK】
http://echo.2ch.net/test/read.cgi/tech/1469177649/
0991デフォルトの名無しさん2016/07/22(金) 18:03:57.92ID:RDoWrAn3
よく見ると記事と違う話題が中心とかw
とりあえず大人気だな
0992デフォルトの名無しさん2016/07/22(金) 18:04:45.03ID:RDoWrAn3
おおすまん、誤爆w
0993デフォルトの名無しさん2016/07/22(金) 18:15:19.96ID:9lWfzFCE
>>990
乙
0994デフォルトの名無しさん2016/07/22(金) 18:42:55.62ID:kWLoujhF
>>990
おつ
0995デフォルトの名無しさん2016/07/22(金) 19:07:20.55ID:4Vpww6CB
int \u6855{};
!梅;
0996デフォルトの名無しさん2016/07/22(金) 21:37:36.96ID:NegiaOGI
キティガイがC#スレに住み着いたせいか
このスレは(以前よりは)平和だな
0997デフォルトの名無しさん2016/07/22(金) 21:42:51.92ID:Ah0vbZMh
埋め
0998デフォルトの名無しさん2016/07/22(金) 21:44:37.78ID:Ah0vbZMh
生き埋め
0999デフォルトの名無しさん2016/07/22(金) 22:04:26.87ID:Ah0vbZMh
梅干し
1000デフォルトの名無しさん2016/07/22(金) 22:05:35.65ID:Ah0vbZMh
地獄へ堕ちろ!!!
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 53日 3時間 13分 8秒
10021002Over 1000Thread
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
http://premium.2ch.net/
http://pink-chan-store.myshopify.com/
レス数が1000を超えています。これ以上書き込みはできません。