mirror of https://github.com/kiwix/libkiwix.git
Do not use `[[nodiscard]]` attribute on compiler not supporting it.
On aarch64, we use gcc version 6.3.0 which doesn't support the `[[nodiscard]]` attribute (see https://en.cppreference.com/w/cpp/compiler_support/17) So don't set the attribute if the attribute is not present.
This commit is contained in:
parent
da891699ac
commit
01aa190c38
|
@ -186,6 +186,17 @@ class MultiKeyCache;
|
|||
using LibraryPtr = std::shared_ptr<Library>;
|
||||
using ConstLibraryPtr = std::shared_ptr<const Library>;
|
||||
|
||||
|
||||
// Some compiler we use don't have [[nodiscard]] attribute.
|
||||
// We don't want to declare `create` with it in this case.
|
||||
#define LIBKIWIX_NODISCARD
|
||||
#if defined __has_cpp_attribute
|
||||
#if __has_cpp_attribute (nodiscard)
|
||||
#undef LIBKIWIX_NODISCARD
|
||||
#define LIBKIWIX_NODISCARD [[nodiscard]]
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
* A Library store several books.
|
||||
*/
|
||||
|
@ -201,7 +212,7 @@ class Library: public std::enable_shared_from_this<Library>
|
|||
Library();
|
||||
|
||||
public:
|
||||
[[nodiscard]] static LibraryPtr create() {
|
||||
LIBKIWIX_NODISCARD static LibraryPtr create() {
|
||||
return LibraryPtr(new Library());
|
||||
}
|
||||
~Library();
|
||||
|
@ -408,6 +419,10 @@ private: //data
|
|||
std::unique_ptr<Xapian::WritableDatabase> m_bookDB;
|
||||
};
|
||||
|
||||
// We don't need it anymore and we don't want to polute any other potential usage
|
||||
// of `LIBKIWIX_NODISCARD` token.
|
||||
#undef LIBKIWIX_NODISCARD
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue