Construct TestObject in AtomicLinkedListTest via a const reference
authorChristopher Dykes <cdykes@fb.com>
Thu, 11 Aug 2016 22:38:49 +0000 (15:38 -0700)
committerFacebook Github Bot 3 <facebook-github-bot-3-bot@fb.com>
Thu, 11 Aug 2016 22:53:39 +0000 (15:53 -0700)
Summary:
MSVC doesn't currently guarantee left-to-right argument evaluation order for values constructed via braced initializers, and produces a warning if you try to pass an argument with a non-trivial copy constructor by-value in a constructor used by the braced initializer.
This prevents the warning by simply accepting a const reference instead.

Reviewed By: yfeldblum

Differential Revision: D3705073

fbshipit-source-id: 917ec1bb776d6ec4bfefe50907d4c5ac2f2379b1

folly/test/AtomicLinkedListTest.cpp

index 0abe82c6cb93bbf2fee0a6fac56b7fdd109781f1..b13c24c9ca28393fa4de6951003ca5f9abc8955a 100644 (file)
@@ -153,7 +153,8 @@ TEST(AtomicIntrusiveLinkedList, Stress) {
 
 class TestObject {
  public:
-  TestObject(size_t id__, std::shared_ptr<void> ptr) : id_(id__), ptr_(ptr) {}
+  TestObject(size_t id__, const std::shared_ptr<void>& ptr)
+      : id_(id__), ptr_(ptr) {}
 
   size_t id() {
     return id_;