C++ の可変引数リストに non trivial な値を渡すとコンパイルエラーになる

以下のようなコードを Clang でコンパイルしたところエラーになりました。

[](...){}(std::string("homu"));
// error: cannot pass object of non-trivial type 'std::string' (aka 'basic_string<char, char_traits<char>, allocator<char> >') through variadic method; call will abort at runtime [-Wnon-pod-varargs]

gcc だと問題なかったのでなんでだろーと思って調べていたらどうやら未定義の動作みたい。
参照:可変引数リストと非PODクラス型の関係 - yohhoyの日記

件のコードだとラムダ式ですが、通常の関数定義も同様です。
ちなみに variadic template として受け取れば回避出来ました。

[](auto...){}(std::string("homu"));
// ok

C++ きびしい…。