2014-04-06 12:17:15 +04:00
|
|
|
|
2016-05-16 17:34:04 +03:00
|
|
|
template <class T>
|
2014-04-06 12:17:15 +04:00
|
|
|
struct A
|
|
|
|
{
|
|
|
|
~A() = delete;
|
|
|
|
};
|
|
|
|
|
2016-05-16 17:34:04 +03:00
|
|
|
template <class T>
|
|
|
|
auto h() -> A<T>;
|
|
|
|
template <class T>
|
|
|
|
auto i(T) -> T;
|
|
|
|
template <class T>
|
|
|
|
auto f(T) -> decltype(i(h<T>()));
|
|
|
|
template <class T>
|
|
|
|
auto f(T) -> void;
|
|
|
|
auto g() -> void
|
|
|
|
{
|
2014-04-06 12:17:15 +04:00
|
|
|
f(42);
|
|
|
|
}
|