2010-11-18 10 views
3

subjが実装されるかどうかは誰にも分かりますか? 少なくとも、それらのための自動ストレージクラスですか? ありがとう!Dネストされた関数の型推論

+2

もっと具体的にしてください。あなたは何を意味するのですか? –

+0

私はそのconstrを意味します。 void foo(){auto bar(){戻り値3.14; }; } barは自動ストレージクラスを持つことができないため、コンパイルされません。そのような強化が計画されていれば、私はちょうど興味がありました。 –

答えて

4

は、一般的には、自動機能を備えた様々な問題がありますので、それは非常によくあなたがあるため、自動ではなく、設計されたとして、それがあることでバグの

void main() 
{ 
    auto bar() { return "hello world"; } 

    writeln(bar()); 
} 

を行うことができない可能性があります。私はそれについての正確な計画が何であるか分かりません。はネストされた関数の戻り値の型としてautoを使用できると考えています。いずれにしても、enhancement requestがあります。

しかし、関係なく、自動ネストされた関数で動作するかどうかの、あなた同様にデリゲートを宣言することができます。

void main() 
{ 
    auto bar =() { return "hello world"; }; 

    writeln(bar()); 
} 

だから、基本的な機能はまだそこにある、でも正確な構文、もしあなた探していたのは現在動作していません。

+0

私が正しく理解していれば、delegateまたはfunctionキーワードは必要ありませんか? –

+0

実際の関数WRT lvaluesのように動作するように、 'const bar = ...'を持つ方が良いかもしれません。 – BCS

+0

@ Target-sanラムダ関数を強制的に強制する場合は、関数やデリゲートのキーワードのみを使用し、必要はほとんどありません。 –