/*
- * Copyright 2014 Facebook, Inc.
+ * Copyright 2016 Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
#ifndef FOLLY_DETAIL_FUNCTIONAL_EXCEPT_H
#define FOLLY_DETAIL_FUNCTIONAL_EXCEPT_H
-#include "folly/Portability.h"
+#include <folly/Portability.h>
+
+#if !FOLLY_HAVE_BITS_FUNCTEXCEPT_H
FOLLY_NAMESPACE_STD_BEGIN
-void __throw_length_error(const char* msg) FOLLY_NORETURN;
-void __throw_logic_error(const char* msg) FOLLY_NORETURN;
-void __throw_out_of_range(const char* msg) FOLLY_NORETURN;
+FOLLY_NORETURN void __throw_length_error(const char* msg);
+FOLLY_NORETURN void __throw_logic_error(const char* msg);
+FOLLY_NORETURN void __throw_out_of_range(const char* msg);
+
+#ifdef _MSC_VER
+FOLLY_NORETURN void __throw_bad_alloc();
+#endif
FOLLY_NAMESPACE_STD_END
+#else
+#error This file should never be included if FOLLY_HAVE_BITS_FUNCTEXCEPT_H is set
+#endif
+
#endif