X-Git-Url: http://plrg.eecs.uci.edu/git/?p=folly.git;a=blobdiff_plain;f=folly%2FFormatArg.h;h=48311e3d4e7cd18a77aeacb553dd0d4c98fc7ee9;hp=c4d94736aa6b39c25896ee17c3dc673386c9702b;hb=314c43c4f95dc51f2c97d00216be062eebbd5454;hpb=aa7aebf348c1b60d2ef2e81dd526aacd2f8d8769 diff --git a/folly/FormatArg.h b/folly/FormatArg.h index c4d94736..48311e3d 100644 --- a/folly/FormatArg.h +++ b/folly/FormatArg.h @@ -1,5 +1,5 @@ /* - * Copyright 2015 Facebook, Inc. + * Copyright 2017 Facebook, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,8 +14,7 @@ * limitations under the License. */ -#ifndef FOLLY_FORMATARG_H_ -#define FOLLY_FORMATARG_H_ +#pragma once #include #include @@ -82,7 +81,7 @@ struct FormatArg { template std::string errorStr(Args&&... args) const; template - FOLLY_NORETURN void error(Args&&... args) const; + [[noreturn]] void error(Args&&... args) const; /** * Full argument string, as passed in to the constructor. @@ -212,7 +211,7 @@ inline std::string FormatArg::errorStr(Args&&... args) const { } template -inline void FormatArg::error(Args&&... args) const { +[[noreturn]] inline void FormatArg::error(Args&&... args) const { throw BadFormatArg(errorStr(std::forward(args)...)); } @@ -244,10 +243,10 @@ inline StringPiece FormatArg::doSplitKey() { const char* p; if (e[-1] == ']') { --e; - p = static_cast(memchr(b, '[', e - b)); - enforce(p, "unmatched ']'"); + p = static_cast(memchr(b, '[', size_t(e - b))); + enforce(p != nullptr, "unmatched ']'"); } else { - p = static_cast(memchr(b, '.', e - b)); + p = static_cast(memchr(b, '.', size_t(e - b))); } if (p) { key_.assign(p + 1, e); @@ -268,12 +267,10 @@ inline int FormatArg::splitIntKey() { } try { return to(doSplitKey()); - } catch (const std::out_of_range& e) { + } catch (const std::out_of_range&) { error("integer key required"); return 0; // unreached } } } // namespace folly - -#endif /* FOLLY_FORMATARG_H_ */