オーバーテクノロジー:How to know which functhion is actually called among Overloaded Function set at the Compilation Time?

真夜中に、闇のC++erはおそろしいサバトを開催していたようです…
5
前へ 1 ・・ 4 5 次へ
普通のC++使い、銀天すばる @SubaruG

っていうか ideone.com の C++0x 対応はまだですか。

2010-06-05 01:02:36
Akso de la Malbono @Cryolite

っていうか,みなさんが何をしようとしているのか未だにつかめていない…….

2010-06-05 01:02:37
普通のC++使い、銀天すばる @SubaruG

FCD出たんだし、そろそろしてもいいんじゃ。

2010-06-05 01:03:32
Akso de la Malbono @Cryolite

@yak_ex これは signature 的に調べるのか syntax 的に調べるのかどっちですかね? つまり, signature を厳密に知りたいのか,ある関数呼び出し構文が valid であるかを知りたいのか.

2010-06-05 01:10:31
Yak! @yak_ex

@Cryolite 自分自身に明確なユースケースがあるものじゃなかったりするので非限定で。signature 的に調べるのは難しそう、じゃ、syntax 的に調べるとこんな感じ?というのが現在の流れです。signature 的にもできるぜ!とか言われたらみんな痺れるかと。

2010-06-05 01:15:13
若年寄(もう若くない) @kikairoya

シグニチャに厳密に合致するかどうかなら関数ポインタに代入するだけでいいんじゃ [宮崎産を食べよう]

2010-06-05 01:16:03
若年寄(もう若くない) @kikairoya

いや代入もしなくていい、キャストすればおしまいだ [宮崎産を食べよう]

2010-06-05 01:16:20
Yak! @yak_ex

@kikairoya あれ?存在しない場合にエラーになる…、と思ったんですがそこで SFINAE 使えば OK ってことですか?

2010-06-05 01:19:25
若年寄(もう若くない) @kikairoya

@yak_ex うn。そんな単純にいくのかどうか知らんけど [宮崎産を食べよう]

2010-06-05 01:19:58
Akso de la Malbono @Cryolite

@yak_ex "signature" という言葉は,厳密には,関数テンプレートの場合には「パラメタ,戻り値,テンプレートパラメタ」,関数テンプレートの特殊化の場合にはこれに加えて「テンプレート実引数」を含むんですが,どうしましょう? 3秒熟慮した結果,これはさすがに無理かも.

2010-06-05 01:25:51
若年寄(もう若くない) @kikairoya

3秒で熟慮できるC(ry先生すごい [宮崎産を食べよう]

2010-06-05 01:26:22
Akso de la Malbono @Cryolite

あ,属している名前空間と関数名も "signature" に含まれます.

2010-06-05 01:28:38
Yak! @yak_ex

@Cryolite 関数テンプレート(及びその特殊化)を除外すると @kikairoya さんの言うように余裕ってことになります?

2010-06-05 01:30:36
Akso de la Malbono @Cryolite

@yak_ex 基本的には大丈夫だと思いますけれど corner case では面倒なことはあると思います.たとえば C++0x で値型のパラメタ型を持っていてしかもそれが Copyable でも Movable でもない場合とか.

2010-06-05 01:34:44
若年寄(もう若くない) @kikairoya

CopyableでもMovableでもない値型のパラメタってどうやって渡すん? [宮崎産を食べよう]

2010-06-05 01:36:27
Norihisa Fujita, ぽん @fjnli

declvalってマイナーで忘れそうな子だよな

2010-06-05 01:40:22
Yak! @yak_ex

@Cryolite @kikairoya 不勉強ですみません。これってコピーコンストラクタは走らなくて initializer_list を受けるコンストラクタによって初期化されるだけってことですか?

2010-06-05 01:45:58
Akso de la Malbono @Cryolite

@yak_ex initializer_list を受けるコンストラクタ (オーバーロード解決の順位は最下位だったはず) だけじゃなくて,一般に explicit の付いていない任意のコンストラクタを直接呼べます.

2010-06-05 01:52:35
Akso de la Malbono @Cryolite

まあ,でもこの例はどう考えても corner case 過ぎると思うので諦めても良いはず.

2010-06-05 02:01:11
Akso de la Malbono @Cryolite

これを諦めれば, @kikairoya さんが言うように,非テンプレート非メンバ関数なら, declval で unevaluated なままオーバーロード解決して戻り値を decltype でゲットして関数ポインタへのキャストを SFINAE でいけるはず,知らんけど?

2010-06-05 02:01:54
前へ 1 ・・ 4 5 次へ