C++相談室 part132

レス数が1000を超えています。これ以上書き込みはできません。
2017/10/10(火) 00:11:34.01ID:nc/5PI4P0
次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512

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

前スレ
C++相談室 part131
http://mevius.2ch.net/test/read.cgi/tech/1501295308/

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

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

[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
2017/11/23(木) 23:16:02.95ID:WYrOiD8s0
mix-inもまともに知らないやつがなぜ回答してるのか…
2017/11/24(金) 00:17:10.75ID:mELw8YtS0
>>973
言語仕様っていうよりIDEの性能のような。
コンセプトまで構文解析してサジェストするようになれば確かにできるかもしれんけど。
2017/11/24(金) 01:03:21.71ID:/7rxT1Yr0
>>973
技術的には可能だからlibclangでなんとかなるようになるなら誰かやってくれるかもね
コード補完にプラグインを使えないIDEなら開発元にリクエストするしかない
2017/11/24(金) 01:39:31.39ID:Z3szivMI0
mix-inで理解が止まっている人がなんか吼えてますな
2017/11/24(金) 08:42:41.97ID:ZeExn92sr
>>973
コンセプトはシンタックスの誤りを判定するのみで型情報を持っていないため
その補完は期待できない
2017/11/24(金) 09:00:16.20ID:nFkUcp0I0
>>977
boost operatorsのprivate継承がmix-in以外のなんだと思ってるんだ?
2017/11/24(金) 10:03:13.88ID:dhAYmdbT0
静的リフレクションが欲しい
2017/11/24(金) 10:21:33.74ID:Un7I7rhA0
後のプリプロセッサである
982デフォルトの名無しさん (アウアウカー Sadb-ZI9b)
垢版 |
2017/11/24(金) 12:38:49.19ID:p8RxfMqqa
C++を勉強しようとしてるんだが
基本的にCの書き方が一般なのか
C++の書き方が一般なのか教えてもらいたい
983デフォルトの名無しさん (ワッチョイ 0778-4Z1+)
垢版 |
2017/11/24(金) 12:51:25.91ID:l1+FhW7v0
コーディングスタイル?
そんなの好きにすればいいよ
2017/11/24(金) 13:21:28.52ID:w0OmJEj50
>>982
Cの書き方とかC++の書き方とか一般的とかない
「一般的」なるものを求めたいならメジャーなIDEのデフォルトのオートフォーマットだろうな
2017/11/24(金) 13:44:06.80ID:ZNkp8uW60
>>964
結局こうなりました
https://ideone.com/SUSTBj
2017/11/24(金) 14:07:55.96ID:lG8HVUMw0
>>985
operator+= の返却値は参照にしといた方が辻褄が合うので良いよ
2017/11/24(金) 14:10:30.10ID:/RqU0h4Pd
関数内で作ったベクターやマップは関数を抜けたらメモリ解放されると考えてよかです?
2017/11/24(金) 14:13:40.22ID:lG8HVUMw0
>>987
記憶クラスによる。
2017/11/24(金) 14:25:57.62ID:/RqU0h4Pd
>>988
記憶クラスによるとは


スマホで打ってるから書式とかガタガタだけど下みたいなことしてる
createmapってのを抜けたときにvectorもmapも解放されると信じている
vector XX( *map)
{
要素数二個のstring型のvectorデータを作成
return vector<string> ←要素数2
}

createmap ()
{
map<string,string> y
{
vector<string> tmp = XX(&y)
y.insert( tmp[1] , tmp[2])
}
}
990デフォルトの名無しさん (ワッチョイ 7f6e-Mqmq)
垢版 |
2017/11/24(金) 14:36:50.33ID:9/UAKu4i0
うん、信じていい
XXから抜けるときにムーブコンストラクタでtmpへ移動され
createmapから抜けるときに解放される
このときoperator deleteが呼び出されるが
operator deleteがどのようなタイミングで解放しているかには依存すべきでない
我々が関心を持つべきはoperator deleteが呼び出されるタイミングで実装の詳細ではない
2017/11/24(金) 15:15:03.03ID:lG8HVUMw0
>>989
static 付きで宣言してればプログラムの終わりに解体されるし、
new で作れば delete されたときが解体されるし、
そうでなければスコープの終わりに解体される。
「関数内で作った」というだけでは情報不足。

>>989 のような例であればスコープの終わりで解体されることは保証される。

それと >>990 はムーブコンストラクタの話を出してるけど C++17 以降ではこういう場合は RVO の発動が必須になってなかったっけ?
992デフォルトの名無しさん (ワッチョイ 7f6e-Mqmq)
垢版 |
2017/11/24(金) 15:33:02.71ID:9/UAKu4i0
>>991
990だが、何を言っているのか、悪いがよくわからん
XXがcreatemapとは別の翻訳単位から外部結合されている場合でも
その何だ、ムーブコンストラクタの回避(?)が必須になったのか?
2017/11/24(金) 16:06:58.81ID:lG8HVUMw0
>>992
そう。 RVO 必須だからコピーコンストラクタもムーブコンストラクタも無いクラスでも OK っていう新しいルール。

https://wandbox.org/permlink/X6g7JSpkSl82VvtZ
994デフォルトの名無しさん (ワッチョイ 7f6e-Mqmq)
垢版 |
2017/11/24(金) 16:44:55.52ID:9/UAKu4i0
>>993
OK? それは03でも同じことやん
2017/11/24(金) 16:48:44.24ID:lG8HVUMw0
>>994
いや >>993 みたいなのは C++14 以前では NG になるよ。
2017/11/24(金) 16:54:03.03ID:WoNXR2ax0
C++相談室 part133
http://mevius.5ch.net/test/read.cgi/tech/1511509970/
2017/11/24(金) 16:58:12.64ID:jkTO/gHT0
乙。
2017/11/24(金) 17:04:12.57ID:BCw6/Ft50
彼。
2017/11/24(金) 17:07:25.34ID:lG8HVUMw0
>>999 なら長門有希は俺の嫁
2017/11/24(金) 17:07:54.81ID:lG8HVUMw0
>>1000 なら双葉杏も俺の嫁
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 45日 16時間 56分 20秒
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況