Workaround MSVC bug with referencing template constructors before definition
[folly.git] / folly / futures / QueuedImmediateExecutor.h
index 15e2513f98d8fb2e7b8a99624fd52e5ba4e458bc..b98047a04e0d0cd891557386ce3adbccbde549f7 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2015 Facebook, Inc.
+ * Copyright 2017 Facebook, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -27,7 +27,13 @@ namespace folly {
  */
 class QueuedImmediateExecutor : public Executor {
  public:
-  void add(Func) override;
+  /// There's really only one queue per thread, no matter how many
+  /// QueuedImmediateExecutor objects you may have.
+  static void addStatic(Func);
+
+  void add(Func func) override {
+    addStatic(std::move(func));
+  }
 };
 
-} // folly
+} // namespace folly