diff --git a/include/ceres/cost_function_to_functor.h b/include/ceres/cost_function_to_functor.h
index b30ecd0..fa1012d 100644
--- a/include/ceres/cost_function_to_functor.h
+++ b/include/ceres/cost_function_to_functor.h
@@ -68,11 +68,11 @@
 //             new IntrinsicProjection(observation_)));
 //   }
 //   template <typename T>
-//   bool operator(const T* rotation,
-//                 const T* translation,
-//                 const T* intrinsics,
-//                 const T* point,
-//                 T* residual) const {
+//   bool operator()(const T* rotation,
+//                   const T* translation,
+//                   const T* intrinsics,
+//                   const T* point,
+//                   T* residual) const {
 //     T transformed_point[3];
 //     RotateAndTranslatePoint(rotation, translation, point, transformed_point);
 //
diff --git a/include/ceres/internal/autodiff.h b/include/ceres/internal/autodiff.h
index 011f2a0..2b32671 100644
--- a/include/ceres/internal/autodiff.h
+++ b/include/ceres/internal/autodiff.h
@@ -38,7 +38,7 @@
 //
 //   struct F {
 //     template<typename T>
-//     bool operator(const T *x, const T *y, ..., T *z) {
+//     bool operator()(const T *x, const T *y, ..., T *z) {
 //       // Compute z[] based on x[], y[], ...
 //       // return true if computation succeeded, false otherwise.
 //     }
@@ -102,7 +102,7 @@
 //
 //   struct F {
 //     template<typename T>
-//     bool operator(const T *p, const T *q, T *z) {
+//     bool operator()(const T *p, const T *q, T *z) {
 //       // ...
 //     }
 //   };
diff --git a/include/ceres/numeric_diff_functor.h b/include/ceres/numeric_diff_functor.h
index 593c371..039e1a1 100644
--- a/include/ceres/numeric_diff_functor.h
+++ b/include/ceres/numeric_diff_functor.h
@@ -71,11 +71,11 @@
 //   }
 //
 //   template <typename T>
-//   bool operator(const T* rotation,
-//                 const T* translation,
-//                 const T* intrinsics,
-//                 const T* point,
-//                 T* residuals) const {
+//   bool operator()(const T* rotation,
+//                   const T* translation,
+//                   const T* intrinsics,
+//                   const T* point,
+//                   T* residuals) const {
 //     T transformed_point[3];
 //     RotateAndTranslatePoint(rotation, translation, point, transformed_point);
 //     return (*intrinsic_projection_)(intrinsics, transformed_point, residual);
