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 LibraryPtr = std::shared_ptr<Library>;
|
||||||
using ConstLibraryPtr = std::shared_ptr<const 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.
|
* A Library store several books.
|
||||||
*/
|
*/
|
||||||
|
@ -201,7 +212,7 @@ class Library: public std::enable_shared_from_this<Library>
|
||||||
Library();
|
Library();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
[[nodiscard]] static LibraryPtr create() {
|
LIBKIWIX_NODISCARD static LibraryPtr create() {
|
||||||
return LibraryPtr(new Library());
|
return LibraryPtr(new Library());
|
||||||
}
|
}
|
||||||
~Library();
|
~Library();
|
||||||
|
@ -408,6 +419,10 @@ private: //data
|
||||||
std::unique_ptr<Xapian::WritableDatabase> m_bookDB;
|
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