は、私は、ラムダラムダ関数に属性を追加する方法は?
auto func = [](std::string msg) { throw std::runtime_error(msg); };
が(確かに、この例はほとんど意味がありませんが、それはポイントではありません)があるとします。これは、ラムダが、通常の関数でなかった場合、私は、これはまた、ラムダのために行うことができます
[[noreturn]] void func(std::string msg) { throw std::runtime_error(msg); }
のようnoreturn
属性でそれを宣言するのでしょうか? (私はしかし、任意の成功なし、打ち鳴らす3.5にはいくつかのバリエーションを試してみました。)Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn)
を使用して
編集、私は
auto func = [](std::string msg) -> [[noreturn]] void { throw std::runtime_error(msg); };
または
auto func = [](std::string msg) [[noreturn]] { throw std::runtime_error(msg); };
を試みたが、両方を拒否されました。これはclang 3.5の不完全/不具合ですか?
[ラムダの演算子()をnoreturnとして宣言する方法](http://stackoverflow.com/q/26888805/1708801) –
@ShafikYaghmour確かに。私は尋ねる前にそれを逃した。私の自身の質問を今やゥペルとしてマークしました... – Walter