Don't rely on implicit lookup of member names in dependent base classes
authorChristopher Dykes <cdykes@fb.com>
Fri, 18 Nov 2016 00:30:31 +0000 (16:30 -0800)
committerFacebook Github Bot <facebook-github-bot-bot@fb.com>
Fri, 18 Nov 2016 00:38:38 +0000 (16:38 -0800)
Summary:
The standard says this shouldn't be done, but GCC, Clang, and MSVC all do, at least, MSVC does if you don't pass the `/permissive-` switch to disable this non-compliant lookup.
This just qualifies it with `this->` which solves the problem.

MSVC plans to eventually (some time after the 2017 release) enable `/permissive-` by default, so let's start compiling with it now.

Reviewed By: yfeldblum

Differential Revision: D4200725

fbshipit-source-id: 8545c6bcda9ba6006733c15f668805cb1260517a

folly/test/DeterministicSchedule.cpp

index bea4d0686854e542bfdd48d704bc1ee5d9215e74..dcaac7437add4206c59bb9d68fb8e164f47b1998 100644 (file)
@@ -302,7 +302,7 @@ FutexResult Futex<DeterministicAtomic>::futexWaitImpl(
                               << ", .., " << std::hex << waitMask
                               << ") beginning..");
   futexLock.lock();
-  if (data == expected) {
+  if (this->data == expected) {
     auto& queue = futexQueues[this];
     queue.emplace_back(waitMask, &awoken);
     auto ours = queue.end();