folly: fix clang's -Wundefined-var-template
authorEric Niebler <eniebler@fb.com>
Sat, 25 Jun 2016 18:48:12 +0000 (11:48 -0700)
committerFacebook Github Bot 8 <facebook-github-bot-8-bot@fb.com>
Sat, 25 Jun 2016 18:53:29 +0000 (11:53 -0700)
commit6c76acfc86177dd2570bf80411baa47dd2b74c72
tree96ba44d357fb62ff1db9b79b455236f699df15b9
parent7815372b49e1f22900aec37532825028890644a7
folly: fix clang's -Wundefined-var-template

Summary:
[temp] (14)/6:

> A function template, member function of a class template, variable template, or static data member of a class template shall be defined in every translation unit in which it is implicitly instantiated (14.7.1) unless the corresponding specialization is explicitly instantiated (14.7.2) in some translation unit; no diagnostic is required.

`-Wundefined-var-template` warns on any implicit instantiations that are needed but could not be performed because the definition is not available. In particular, for valid code, this warns on templates/temploids which have their definition and all relevant explicit instantiations tucked away in some source file (but for which no explicit instantiation declarations are provided in the relevant header file) - used a few times in folly. This seems a bad style, the static data member template should either be defined in the header file or should be explicitly instantiated in each .cpp file.

Reviewed By: igorsugak

Differential Revision: D3447679

fbshipit-source-id: 22c90c19e2c7a9b6d772058f2c7e350b890b6c0a
folly/Fingerprint.h
folly/SharedMutex.cpp
folly/SharedMutex.h
folly/detail/CacheLocality.cpp
folly/detail/CacheLocality.h
folly/test/CacheLocalityBenchmark.cpp
folly/test/CacheLocalityTest.cpp
folly/test/DeterministicSchedule.cpp
folly/test/SharedMutexTest.cpp