| // RUN: %clang_cc1 -fsyntax-only -std=c++11 -verify %s | |
| // expected-no-diagnostics | |
| // Test default template arguments for function templates. | |
| template<typename T = int> | |
| void f0(); | |
| template<typename T> | |
| void f0(); | |
| void g0() { | |
| f0(); // okay! | |
| } | |
| template<typename T, int N = T::value> | |
| int &f1(T); | |
| float &f1(...); | |
| struct HasValue { | |
| static const int value = 17; | |
| }; | |
| void g1() { | |
| float &fr = f1(15); | |
| int &ir = f1(HasValue()); | |
| } |