// Copyright 2024 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef BASE_NOTIMPLEMENTED_H_ #define BASE_NOTIMPLEMENTED_H_ #include "base/check.h" #include "base/dcheck_is_on.h" // The NOTIMPLEMENTED() macro annotates codepaths which have not been // implemented yet. If output spam is a serious concern, // NOTIMPLEMENTED_LOG_ONCE() can be used. #if DCHECK_IS_ON() #define NOTIMPLEMENTED() \ ::logging::CheckError::NotImplemented(__PRETTY_FUNCTION__) // The lambda returns false the first time it is run, and true every other time. #define NOTIMPLEMENTED_LOG_ONCE() \ LOGGING_CHECK_FUNCTION_IMPL(NOTIMPLEMENTED(), []() { \ bool old_value = true; \ [[maybe_unused]] static const bool call_once = [](bool* b) { \ *b = false; \ return true; \ }(&old_value); \ return old_value; \ }()) #else #define NOTIMPLEMENTED() EAT_CHECK_STREAM_PARAMS() #define NOTIMPLEMENTED_LOG_ONCE() EAT_CHECK_STREAM_PARAMS() #endif #endif // BASE_NOTIMPLEMENTED_H_