folly/stats - fix c++ spec compliance for call to template name
authorYiding Jia <yiding@fb.com>
Thu, 29 Nov 2012 23:05:39 +0000 (15:05 -0800)
committerJordan DeLong <jdelong@fb.com>
Sun, 16 Dec 2012 22:46:10 +0000 (14:46 -0800)
Summary:
This code is not strictly correct per c++ spec section 14.2.4:

> When the name of a member template specialization appears after . or -> in a
> postfix-expression or after a nested-name-specifier in a qualified-id, and the
> object or pointer expression of the postfix-expression or the
> nested-name-specifier in the qualified-id depends on a template parameter
> (14.6.2) but does not refer to a member of the current instantiation
> (14.6.2.1), the member template name must be prefixed by the keyword template.
> Otherwise the name is assumed to name a non-template.

This causes clang to complain, but gcc is lax about this, as usual.

Test Plan: compile stuff that use this.

Reviewed By: delong.j@fb.com

FB internal diff: D643515

folly/stats/BucketedTimeSeries.h

index f343c483e0d963d794c0d6098bab4dd42669efcb..87ca7e5127232158bd3829e3158dfdc158b5343a 100644 (file)
@@ -203,7 +203,7 @@ class BucketedTimeSeries {
    */
   template <typename ReturnType=double>
   ReturnType avg() const {
-    return total_.avg<ReturnType>();
+    return total_.template avg<ReturnType>();
   }
 
   /*