deprecation.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /*
  2. * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
  3. *
  4. * Use of this source code is governed by a BSD-style license
  5. * that can be found in the LICENSE file in the root of the source
  6. * tree. An additional intellectual property rights grant can be found
  7. * in the file PATENTS. All contributing project authors may
  8. * be found in the AUTHORS file in the root of the source tree.
  9. */
  10. #ifndef RTC_BASE_DEPRECATION_H_
  11. #define RTC_BASE_DEPRECATION_H_
  12. // Annotate the declarations of deprecated functions with this to cause a
  13. // compiler warning when they're used. Like so:
  14. //
  15. // RTC_DEPRECATED std::pony PonyPlz(const std::pony_spec& ps);
  16. //
  17. // NOTE 1: The annotation goes on the declaration in the .h file, not the
  18. // definition in the .cc file!
  19. //
  20. // NOTE 2: In order to keep unit testing the deprecated function without
  21. // getting warnings, do something like this:
  22. //
  23. // std::pony DEPRECATED_PonyPlz(const std::pony_spec& ps);
  24. // RTC_DEPRECATED inline std::pony PonyPlz(const std::pony_spec& ps) {
  25. // return DEPRECATED_PonyPlz(ps);
  26. // }
  27. //
  28. // In other words, rename the existing function, and provide an inline wrapper
  29. // using the original name that calls it. That way, callers who are willing to
  30. // call it using the DEPRECATED_-prefixed name don't get the warning.
  31. //
  32. // TODO(kwiberg): Remove this when we can use [[deprecated]] from C++14.
  33. #if defined(_MSC_VER)
  34. // Note: Deprecation warnings seem to fail to trigger on Windows
  35. // (https://bugs.chromium.org/p/webrtc/issues/detail?id=5368).
  36. #define RTC_DEPRECATED __declspec(deprecated)
  37. #elif defined(__GNUC__)
  38. #define RTC_DEPRECATED __attribute__((__deprecated__))
  39. #else
  40. #define RTC_DEPRECATED
  41. #endif
  42. #endif // RTC_BASE_DEPRECATION_H_