Мне нравится атрибут [[maybe_unused]]
, и я часто использую его, когда мне нужно скомпилировать реализации функций только для отладки. Я немного запутался, где его следует использовать при указании аргументов функции-члена как [[maybe_unused]]
.
Данный:
//Foo.h
class Foo {
void DebugOnly(Bar& fly);
}
//Foo.cpp
void Foo::DebugOnly(Bar& fly) {
#ifdef _DEBUG
fly.squish();
#endif
}
Имеет ли значение его указание в обоих местах?
//Foo.h
class Foo {
void DebugOnly([[maybe_unused]] Bar& fly);
}
//Foo.cpp
void Foo::DebugOnly([[maybe_unused]] Bar& fly) {
#ifdef _DEBUG
fly.squish();
#endif
}
Или я должен объявить это только в заголовке или файле реализации?
Только заголовок
//Foo.h
class Foo {
void DebugOnly([[maybe_unused]] Bar& fly);
}
//Foo.cpp
void Foo::DebugOnly(Bar& fly) {
#ifdef _DEBUG
fly.squish();
#endif
}
Только файл реализации
//Foo.h
class Foo {
void DebugOnly(Bar& fly);
}
//Foo.cpp
void Foo::DebugOnly([[maybe_unused]] Bar& fly) {
#ifdef _DEBUG
fly.squish();
#endif
}
Страница на cppreference не различает аргументы функций и только классифицирует их как переменные.