C++定義は無視されますが使用されていない変数

836 ワード

defined but not used
boost
#include 

// boost::ignore_unused(v1, v2, v3);
// boost::ignore_unused();

int fun( int foo, int bar )
{
    boost::ignore_unused(bar);
#ifdef ENABLE_DEBUG_OUTPUT
    if ( foo < bar )
        std::cerr << "warning! foo < bar";
#endif
    return foo + 2;
}

c++17
https://en.cppreference.com/w/cpp/language/attributes/maybe_unused
[[maybe_unused]] static int a = something();

macro
#define UNUSED(expr) do { (void)(expr); } while (0)

#define UNUSED(expr) (void)(expr)

#ifdef UNUSED
#elif defined(__GNUC__)
# define UNUSED(x) UNUSED_ ## x __attribute__((unused))
#elif defined(__LCLINT__)
# define UNUSED(x) /*@unused@*/ x
#else
# define UNUSED(x) x
#endif