次スレを立てる時は本文の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
C++相談室 part132
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん 転載ダメ (ワッチョイ faeb-wbjw)
2017/10/10(火) 00:11:34.01ID:nc/5PI4P0959デフォルトの名無しさん (ワッチョイ 7f56-PrD/)
2017/11/23(木) 06:39:00.31ID:NFzuGiE50 「チョムスキー階層」でググれ
960デフォルトの名無しさん (ワッチョイ 7f56-PrD/)
2017/11/23(木) 07:23:17.08ID:NFzuGiE50 >>958
>ん〜、そのへんの学問的な分類はよう知らんけど、取りうる状態は有限でもバックトラックは起こるしそのためのスタックは要るんちゃう?
非決定性有限オートマトンは決定性有限オートマトンに変換できるので、
バックトラックが一切起こらない形に書き換えることは可能。
lexなんかだと、そのような変換を行ったコードを生成していたはず。
ただし、プログラム言語などで一般的に使われる正規表現は、
ここでいう正規言語を拡張したものなので、この限りではない。
>ん〜、そのへんの学問的な分類はよう知らんけど、取りうる状態は有限でもバックトラックは起こるしそのためのスタックは要るんちゃう?
非決定性有限オートマトンは決定性有限オートマトンに変換できるので、
バックトラックが一切起こらない形に書き換えることは可能。
lexなんかだと、そのような変換を行ったコードを生成していたはず。
ただし、プログラム言語などで一般的に使われる正規表現は、
ここでいう正規言語を拡張したものなので、この限りではない。
961デフォルトの名無しさん (アークセー Sxfb-DkU3)
2017/11/23(木) 14:40:51.51ID:QeiOUUJtx C++のプロジェクトに戻りたい。
962デフォルトの名無しさん (ワッチョイ 5fb3-9Jqp)
2017/11/23(木) 18:06:46.17ID:5yPMgLrz0 どうぞどうぞ
963デフォルトの名無しさん (ワッチョイ 5fbd-hcjg)
2017/11/23(木) 18:56:01.32ID:h8NdPAUM0 もう次スレ要らないのでは
またまた低レベルな質問で恐縮しております。よろしくお願いいたします。
https://ideone.com/MXvhkC
ここまで実装できている状態で、演算子 += を定義するには、どのように書けばいいでしょうか?
なお実際に作業している対象は自作の多桁長演算ライブラリで、operator+=() を operator=() や operator+() を再利用できればうれしいな、と考えております。
operator+() や operator=() に書いていることを、繰り返して書くのは避けたいと考えているのです。
https://ideone.com/MXvhkC
ここまで実装できている状態で、演算子 += を定義するには、どのように書けばいいでしょうか?
なお実際に作業している対象は自作の多桁長演算ライブラリで、operator+=() を operator=() や operator+() を再利用できればうれしいな、と考えております。
operator+() や operator=() に書いていることを、繰り返して書くのは避けたいと考えているのです。
965デフォルトの名無しさん (ワッチョイ bfe7-5mWG)
2017/11/23(木) 19:07:30.71ID:IGgCkWwq0 普通はoperator+=()を実装してから、それを使ってoperator+を実装する
>>965
なるほど
https://ideone.com/t89oo1
しかし、+=, -= ならまだしも、 *=, /=, %= を考えると、なんだか似たようなコードを二箇所に書きそうな雰囲気がします…
なるほど
https://ideone.com/t89oo1
しかし、+=, -= ならまだしも、 *=, /=, %= を考えると、なんだか似たようなコードを二箇所に書きそうな雰囲気がします…
967デフォルトの名無しさん (ワッチョイ bfe7-5mWG)
2017/11/23(木) 19:54:00.12ID:IGgCkWwq0 だからboostにこんなのがあったりする
https://boostjp.github.io/tips/operators.html
https://boostjp.github.io/tips/operators.html
968デフォルトの名無しさん (ワッチョイ 7feb-aYIp)
2017/11/23(木) 19:56:33.11ID:5nCr5Wf60 CRTP使って自動実装
969はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-KsIq)
2017/11/23(木) 20:01:00.33ID:fj1LdTry0 >>964
なんで friend がついてんの?
なんで friend がついてんの?
970デフォルトの名無しさん (ワッチョイ 47b3-ThNz)
2017/11/23(木) 20:17:56.76ID:j5z8beti0 >>967
これってなんでprivate継承なのか分からない
これってなんでprivate継承なのか分からない
971はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-KsIq)
2017/11/23(木) 20:23:32.48ID:fj1LdTry0 >>970
スライシングを起こさないようにじゃないの。
デストラクタを virtual にすると要らん仮想関数テーブルが作られちゃうからな。
それでいて定義する関数は friend 関数にしてるから外側からでも見えるんだな。
スライシングを起こさないようにじゃないの。
デストラクタを virtual にすると要らん仮想関数テーブルが作られちゃうからな。
それでいて定義する関数は friend 関数にしてるから外側からでも見えるんだな。
>>969
こんな小題でもいろいろと試されるんですね…
たしかに operator+=() は、意味からいっても friend である必要はまったくないですね。
一方 operator==(), operator+() は式の表現としての対象性を保存したいので、friend をつけたいと考えています。
operator<<() に対しては friend を必ずつけないといけないようですが、その理由はよくわかっていません。
https://ideone.com/pR0EP1
こんな小題でもいろいろと試されるんですね…
たしかに operator+=() は、意味からいっても friend である必要はまったくないですね。
一方 operator==(), operator+() は式の表現としての対象性を保存したいので、friend をつけたいと考えています。
operator<<() に対しては friend を必ずつけないといけないようですが、その理由はよくわかっていません。
https://ideone.com/pR0EP1
973デフォルトの名無しさん (アウアウウー Sacb-DWFp)
2017/11/23(木) 22:59:38.32ID:vKpvx9Uha IDE使っていて思うのがtemplate関数でデフォルト引数classAを設定すれば、
template<typename T=classA>
void Test(T tmp){
tmp.func(1, 2, 3);
}
上記のtmp.のところでclassAの関数とかが出て来るようになると嬉しいとか思ったり
コンセプトとかで対応できるようになるんでしょうか?
template<typename T=classA>
void Test(T tmp){
tmp.func(1, 2, 3);
}
上記のtmp.のところでclassAの関数とかが出て来るようになると嬉しいとか思ったり
コンセプトとかで対応できるようになるんでしょうか?
974デフォルトの名無しさん (ワッチョイ 7f81-fNTp)
2017/11/23(木) 23:16:02.95ID:WYrOiD8s0 mix-inもまともに知らないやつがなぜ回答してるのか…
975デフォルトの名無しさん (ワッチョイ 0704-bLiP)
2017/11/24(金) 00:17:10.75ID:mELw8YtS0976デフォルトの名無しさん (ワッチョイ df7e-lrN+)
2017/11/24(金) 01:03:21.71ID:/7rxT1Yr0977デフォルトの名無しさん (ワッチョイ 5fbd-hcjg)
2017/11/24(金) 01:39:31.39ID:Z3szivMI0 mix-inで理解が止まっている人がなんか吼えてますな
978デフォルトの名無しさん (オッペケ Srfb-gBtc)
2017/11/24(金) 08:42:41.97ID:ZeExn92sr979デフォルトの名無しさん (ワッチョイ 7f81-fNTp)
2017/11/24(金) 09:00:16.20ID:nFkUcp0I0 >>977
boost operatorsのprivate継承がmix-in以外のなんだと思ってるんだ?
boost operatorsのprivate継承がmix-in以外のなんだと思ってるんだ?
980デフォルトの名無しさん (ワッチョイ dfeb-+V5r)
2017/11/24(金) 10:03:13.88ID:dhAYmdbT0 静的リフレクションが欲しい
981デフォルトの名無しさん (ワッチョイ 47c8-fNTp)
2017/11/24(金) 10:21:33.74ID:Un7I7rhA0 後のプリプロセッサである
982デフォルトの名無しさん (アウアウカー Sadb-ZI9b)
2017/11/24(金) 12:38:49.19ID:p8RxfMqqa C++を勉強しようとしてるんだが
基本的にCの書き方が一般なのか
C++の書き方が一般なのか教えてもらいたい
基本的にCの書き方が一般なのか
C++の書き方が一般なのか教えてもらいたい
983デフォルトの名無しさん (ワッチョイ 0778-4Z1+)
2017/11/24(金) 12:51:25.91ID:l1+FhW7v0 コーディングスタイル?
そんなの好きにすればいいよ
そんなの好きにすればいいよ
984デフォルトの名無しさん (ワッチョイ 678a-nf8U)
2017/11/24(金) 13:21:28.52ID:w0OmJEj50986はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-KsIq)
2017/11/24(金) 14:07:55.96ID:lG8HVUMw0 >>985
operator+= の返却値は参照にしといた方が辻褄が合うので良いよ
operator+= の返却値は参照にしといた方が辻褄が合うので良いよ
987デフォルトの名無しさん (スプッッ Sdbb-T4vC)
2017/11/24(金) 14:10:30.10ID:/RqU0h4Pd 関数内で作ったベクターやマップは関数を抜けたらメモリ解放されると考えてよかです?
989デフォルトの名無しさん (スプッッ Sdbb-T4vC)
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])
}
}
記憶クラスによるとは
スマホで打ってるから書式とかガタガタだけど下みたいなことしてる
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が呼び出されるタイミングで実装の詳細ではない
XXから抜けるときにムーブコンストラクタでtmpへ移動され
createmapから抜けるときに解放される
このときoperator deleteが呼び出されるが
operator deleteがどのようなタイミングで解放しているかには依存すべきでない
我々が関心を持つべきはoperator deleteが呼び出されるタイミングで実装の詳細ではない
991はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-KsIq)
2017/11/24(金) 15:15:03.03ID:lG8HVUMw0992デフォルトの名無しさん (ワッチョイ 7f6e-Mqmq)
2017/11/24(金) 15:33:02.71ID:9/UAKu4i0993はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-KsIq)
2017/11/24(金) 16:06:58.81ID:lG8HVUMw0 >>992
そう。 RVO 必須だからコピーコンストラクタもムーブコンストラクタも無いクラスでも OK っていう新しいルール。
https://wandbox.org/permlink/X6g7JSpkSl82VvtZ
そう。 RVO 必須だからコピーコンストラクタもムーブコンストラクタも無いクラスでも OK っていう新しいルール。
https://wandbox.org/permlink/X6g7JSpkSl82VvtZ
994デフォルトの名無しさん (ワッチョイ 7f6e-Mqmq)
2017/11/24(金) 16:44:55.52ID:9/UAKu4i0 >>993
OK? それは03でも同じことやん
OK? それは03でも同じことやん
995はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-KsIq)
2017/11/24(金) 16:48:44.24ID:lG8HVUMw0996デフォルトの名無しさん (ワッチョイ 5fcf-H1rY)
2017/11/24(金) 16:54:03.03ID:WoNXR2ax0 C++相談室 part133
http://mevius.5ch.net/test/read.cgi/tech/1511509970/
http://mevius.5ch.net/test/read.cgi/tech/1511509970/
997デフォルトの名無しさん (ワッチョイ 07eb-5mWG)
2017/11/24(金) 16:58:12.64ID:jkTO/gHT0 乙。
998デフォルトの名無しさん (ワッチョイ 07b3-5mWG)
2017/11/24(金) 17:04:12.57ID:BCw6/Ft50 彼。
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 45日 16時間 56分 20秒
新しいスレッドを立ててください。
life time: 45日 16時間 56分 20秒
レス数が1000を超えています。これ以上書き込みはできません。
