Hi All, A quick question regarding correct behaviour: class Vec3 { public: friend void DoA(Vec3& a) { a.m_int = 1; } template <const bool B> friend void DoT(Vec3& a) { if (B) a.m_int = 2; } private: int m_int; }; void test_friend_functions_inline() { Vec3 a; DoA(a); DoT<true>(a); // error: use of undeclared identifier 'DoT' } This compiles in MSVC but not clang. Any idea what's doing the right thing? I'm running into it with squish-ccr: https://github.com/Ethatron/squish-ccr/blob/master/simd_sse.h which makes extensive use of the inline-friend-template-function pattern. Thanks! Will. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20130709/73a6a516/attachment.html>