C++14 でラムダ関数を friend にする

ふと『ラムダ関数を friend にするにはどうすればよいのか』と思って書いてみました。
とりあえず Clang 3.5 だと以下のようにラムダ関数の型を friend にすれば動作した。

[ソース]

#include <iostream>


auto func = [](auto x){
    return x.value;
};


class X{
    friend decltype(func);
    int value = 42;
};


int
main(){
    X x;
    std::cout << func(x) << std::endl;
    return 0;
}

[出力]

42


これが言語仕様的に問題ない動作なのかは確認していない。
実装依存なような気がしないでもない。
あと実装の都合上、多相ラムダだと簡単に書けたので C++14 を利用したけど C++11 でも多分同様に動作すると思う。