Merge "Suppress null-dereference warning"

This commit is contained in:
Yi Kong
2019-01-09 04:12:51 +00:00
committed by Gerrit Code Review
2 changed files with 6 additions and 0 deletions

View File

@@ -274,7 +274,10 @@ inline KeyParameter Authorization(TypedTag<tag_type, tag> ttag, Args&&... args)
*/
template <typename ValueT> class NullOr {
template <typename T> struct reference_initializer {
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wnull-dereference"
static T&& init() { return *static_cast<std::remove_reference_t<T>*>(nullptr); }
#pragma GCC diagnostic pop
};
template <typename T> struct pointer_initializer {
static T init() { return nullptr; }

View File

@@ -282,7 +282,10 @@ template <typename ValueT>
class NullOr {
template <typename T>
struct reference_initializer {
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wnull-dereference"
static T&& init() { return *static_cast<std::remove_reference_t<T>*>(nullptr); }
#pragma GCC diagnostic pop
};
template <typename T>
struct pointer_initializer {