X



C++相談室 part132
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん 転載ダメ (ワッチョイ faeb-wbjw)
垢版 |
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
0956デフォルトの名無しさん (ワッチョイ 5fbd-hcjg)
垢版 |
2017/11/23(木) 00:36:02.97ID:h8NdPAUM0
文脈自由文法は解析にスタック(理論上は無限の段数のやつ)が要るクラスだが
正規言語は有限状態マシンで済む言語のクラス
今話題の設定言語は無限の入れ子は持たなそうなので正規言語で逝ける、
0958はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-KsIq)
垢版 |
2017/11/23(木) 01:07:08.12ID:fj1LdTry0
ん〜、そのへんの学問的な分類はよう知らんけど、取りうる状態は有限でもバックトラックは起こるしそのためのスタックは要るんちゃう?
同じ文法の構文解析器を作ればどっちのアプローチでもスタックの消費量はかわらんと思うんだけど。

より制限の強い方で「十分」っつーならそれはわかる。 C++ 標準に入ってる機能で出来りゃ楽だしな。
ただ、正規表現ライブラリだとエラーの検出場所の伝達方法とかで融通が利かなかったりするので、
ユーザーが入力する設定ファイルを解析するパーサを作るとなると作りこみ難いという感触があるかな。
0960デフォルトの名無しさん (ワッチョイ 7f56-PrD/)
垢版 |
2017/11/23(木) 07:23:17.08ID:NFzuGiE50
>>958
>ん〜、そのへんの学問的な分類はよう知らんけど、取りうる状態は有限でもバックトラックは起こるしそのためのスタックは要るんちゃう?
非決定性有限オートマトンは決定性有限オートマトンに変換できるので、
バックトラックが一切起こらない形に書き換えることは可能。
lexなんかだと、そのような変換を行ったコードを生成していたはず。
ただし、プログラム言語などで一般的に使われる正規表現は、
ここでいう正規言語を拡張したものなので、この限りではない。
0964 ◆QZaw55cn4c (ワッチョイ 5f60-2JzH)
垢版 |
2017/11/23(木) 19:03:52.53ID:fGVRHt7J0
またまた低レベルな質問で恐縮しております。よろしくお願いいたします。
https://ideone.com/MXvhkC

ここまで実装できている状態で、演算子 += を定義するには、どのように書けばいいでしょうか?
なお実際に作業している対象は自作の多桁長演算ライブラリで、operator+=() を operator=() や operator+() を再利用できればうれしいな、と考えております。
operator+() や operator=() に書いていることを、繰り返して書くのは避けたいと考えているのです。
0971はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-KsIq)
垢版 |
2017/11/23(木) 20:23:32.48ID:fj1LdTry0
>>970
スライシングを起こさないようにじゃないの。
デストラクタを virtual にすると要らん仮想関数テーブルが作られちゃうからな。
それでいて定義する関数は friend 関数にしてるから外側からでも見えるんだな。
0972 ◆QZaw55cn4c (ワッチョイ 5f60-2JzH)
垢版 |
2017/11/23(木) 20:46:50.20ID:fGVRHt7J0
>>969
こんな小題でもいろいろと試されるんですね…

たしかに operator+=() は、意味からいっても friend である必要はまったくないですね。
一方 operator==(), operator+() は式の表現としての対象性を保存したいので、friend をつけたいと考えています。
operator<<() に対しては friend を必ずつけないといけないようですが、その理由はよくわかっていません。
https://ideone.com/pR0EP1
0973デフォルトの名無しさん (アウアウウー 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の関数とかが出て来るようになると嬉しいとか思ったり
コンセプトとかで対応できるようになるんでしょうか?
0982デフォルトの名無しさん (アウアウカー Sadb-ZI9b)
垢版 |
2017/11/24(金) 12:38:49.19ID:p8RxfMqqa
C++を勉強しようとしてるんだが
基本的にCの書き方が一般なのか
C++の書き方が一般なのか教えてもらいたい
0983デフォルトの名無しさん (ワッチョイ 0778-4Z1+)
垢版 |
2017/11/24(金) 12:51:25.91ID:l1+FhW7v0
コーディングスタイル?
そんなの好きにすればいいよ
0989デフォルトの名無しさん (スプッッ 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])
}
}
0990デフォルトの名無しさん (ワッチョイ 7f6e-Mqmq)
垢版 |
2017/11/24(金) 14:36:50.33ID:9/UAKu4i0
うん、信じていい
XXから抜けるときにムーブコンストラクタでtmpへ移動され
createmapから抜けるときに解放される
このときoperator deleteが呼び出されるが
operator deleteがどのようなタイミングで解放しているかには依存すべきでない
我々が関心を持つべきはoperator deleteが呼び出されるタイミングで実装の詳細ではない
0991はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-KsIq)
垢版 |
2017/11/24(金) 15:15:03.03ID:lG8HVUMw0
>>989
static 付きで宣言してればプログラムの終わりに解体されるし、
new で作れば delete されたときが解体されるし、
そうでなければスコープの終わりに解体される。
「関数内で作った」というだけでは情報不足。

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

それと >>990 はムーブコンストラクタの話を出してるけど C++17 以降ではこういう場合は RVO の発動が必須になってなかったっけ?
0992デフォルトの名無しさん (ワッチョイ 7f6e-Mqmq)
垢版 |
2017/11/24(金) 15:33:02.71ID:9/UAKu4i0
>>991
990だが、何を言っているのか、悪いがよくわからん
XXがcreatemapとは別の翻訳単位から外部結合されている場合でも
その何だ、ムーブコンストラクタの回避(?)が必須になったのか?
0994デフォルトの名無しさん (ワッチョイ 7f6e-Mqmq)
垢版 |
2017/11/24(金) 16:44:55.52ID:9/UAKu4i0
>>993
OK? それは03でも同じことやん
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 45日 16時間 56分 20秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


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

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

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

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