亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? gtest-internal.h

?? Search s framework 老外寫的
?? H
?? 第 1 頁 / 共 3 頁
字號(hào):
// Copyright 2005, Google Inc.// All rights reserved.//// Redistribution and use in source and binary forms, with or without// modification, are permitted provided that the following conditions are// met:////     * Redistributions of source code must retain the above copyright// notice, this list of conditions and the following disclaimer.//     * Redistributions in binary form must reproduce the above// copyright notice, this list of conditions and the following disclaimer// in the documentation and/or other materials provided with the// distribution.//     * Neither the name of Google Inc. nor the names of its// contributors may be used to endorse or promote products derived from// this software without specific prior written permission.//// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.//// Authors: wan@google.com (Zhanyong Wan), eefacm@gmail.com (Sean Mcafee)//// The Google C++ Testing Framework (Google Test)//// This header file declares functions and macros used internally by// Google Test.  They are subject to change without notice.#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_INTERNAL_H_#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_INTERNAL_H_#include <gtest/internal/gtest-port.h>#ifdef GTEST_OS_LINUX#include <stdlib.h>#include <sys/types.h>#include <sys/wait.h>#include <unistd.h>#endif  // GTEST_OS_LINUX#include <ctype.h>#include <string.h>#include <iomanip>#include <limits>#include <set>#include <gtest/internal/gtest-string.h>#include <gtest/internal/gtest-filepath.h>#include <gtest/internal/gtest-type-util.h>// Due to C++ preprocessor weirdness, we need double indirection to// concatenate two tokens when one of them is __LINE__.  Writing////   foo ## __LINE__//// will result in the token foo__LINE__, instead of foo followed by// the current line number.  For more details, see// http://www.parashift.com/c++-faq-lite/misc-technical-issues.html#faq-39.6#define GTEST_CONCAT_TOKEN_(foo, bar) GTEST_CONCAT_TOKEN_IMPL_(foo, bar)#define GTEST_CONCAT_TOKEN_IMPL_(foo, bar) foo ## bar// Google Test defines the testing::Message class to allow construction of// test messages via the << operator.  The idea is that anything// streamable to std::ostream can be streamed to a testing::Message.// This allows a user to use his own types in Google Test assertions by// overloading the << operator.//// util/gtl/stl_logging-inl.h overloads << for STL containers.  These// overloads cannot be defined in the std namespace, as that will be// undefined behavior.  Therefore, they are defined in the global// namespace instead.//// C++'s symbol lookup rule (i.e. Koenig lookup) says that these// overloads are visible in either the std namespace or the global// namespace, but not other namespaces, including the testing// namespace which Google Test's Message class is in.//// To allow STL containers (and other types that has a << operator// defined in the global namespace) to be used in Google Test assertions,// testing::Message must access the custom << operator from the global// namespace.  Hence this helper function.//// Note: Jeffrey Yasskin suggested an alternative fix by "using// ::operator<<;" in the definition of Message's operator<<.  That fix// doesn't require a helper function, but unfortunately doesn't// compile with MSVC.template <typename T>inline void GTestStreamToHelper(std::ostream* os, const T& val) {  *os << val;}namespace testing {// Forward declaration of classes.class Message;                         // Represents a failure message.class Test;                            // Represents a test.class TestCase;                        // A collection of related tests.class TestPartResult;                  // Result of a test part.class TestInfo;                        // Information about a test.class UnitTest;                        // A collection of test cases.class UnitTestEventListenerInterface;  // Listens to Google Test events.class AssertionResult;                 // Result of an assertion.namespace internal {struct TraceInfo;                      // Information about a trace point.class ScopedTrace;                     // Implements scoped trace.class TestInfoImpl;                    // Opaque implementation of TestInfoclass TestResult;                      // Result of a single Test.class UnitTestImpl;                    // Opaque implementation of UnitTesttemplate <typename E> class List;      // A generic list.template <typename E> class ListNode;  // A node in a generic list.// How many times InitGoogleTest() has been called.extern int g_init_gtest_count;// The text used in failure messages to indicate the start of the// stack trace.extern const char kStackTraceMarker[];// A secret type that Google Test users don't know about.  It has no// definition on purpose.  Therefore it's impossible to create a// Secret object, which is what we want.class Secret;// Two overloaded helpers for checking at compile time whether an// expression is a null pointer literal (i.e. NULL or any 0-valued// compile-time integral constant).  Their return values have// different sizes, so we can use sizeof() to test which version is// picked by the compiler.  These helpers have no implementations, as// we only need their signatures.//// Given IsNullLiteralHelper(x), the compiler will pick the first// version if x can be implicitly converted to Secret*, and pick the// second version otherwise.  Since Secret is a secret and incomplete// type, the only expression a user can write that has type Secret* is// a null pointer literal.  Therefore, we know that x is a null// pointer literal if and only if the first version is picked by the// compiler.char IsNullLiteralHelper(Secret* p);char (&IsNullLiteralHelper(...))[2];  // NOLINT// A compile-time bool constant that is true if and only if x is a// null pointer literal (i.e. NULL or any 0-valued compile-time// integral constant).#ifdef GTEST_ELLIPSIS_NEEDS_COPY_// Passing non-POD classes through ellipsis (...) crashes the ARM// compiler.  The Nokia Symbian and the IBM XL C/C++ compiler try to// instantiate a copy constructor for objects passed through ellipsis// (...), failing for uncopyable objects.  Hence we define this to// false (and lose support for NULL detection).#define GTEST_IS_NULL_LITERAL_(x) false#else#define GTEST_IS_NULL_LITERAL_(x) \    (sizeof(::testing::internal::IsNullLiteralHelper(x)) == 1)#endif  // GTEST_ELLIPSIS_NEEDS_COPY_// Appends the user-supplied message to the Google-Test-generated message.String AppendUserMessage(const String& gtest_msg,                         const Message& user_msg);// A helper class for creating scoped traces in user programs.class ScopedTrace { public:  // The c'tor pushes the given source file location and message onto  // a trace stack maintained by Google Test.  ScopedTrace(const char* file, int line, const Message& message);  // The d'tor pops the info pushed by the c'tor.  //  // Note that the d'tor is not virtual in order to be efficient.  // Don't inherit from ScopedTrace!  ~ScopedTrace(); private:  GTEST_DISALLOW_COPY_AND_ASSIGN_(ScopedTrace);} GTEST_ATTRIBUTE_UNUSED_;  // A ScopedTrace object does its job in its                            // c'tor and d'tor.  Therefore it doesn't                            // need to be used otherwise.// Converts a streamable value to a String.  A NULL pointer is// converted to "(null)".  When the input value is a ::string,// ::std::string, ::wstring, or ::std::wstring object, each NUL// character in it is replaced with "\\0".// Declared here but defined in gtest.h, so that it has access// to the definition of the Message class, required by the ARM// compiler.template <typename T>String StreamableToString(const T& streamable);// Formats a value to be used in a failure message.#ifdef GTEST_NEEDS_IS_POINTER_// These are needed as the Nokia Symbian and IBM XL C/C++ compilers// cannot decide between const T& and const T* in a function template.// These compilers _can_ decide between class template specializations// for T and T*, so a tr1::type_traits-like is_pointer works, and we// can overload on that.// This overload makes sure that all pointers (including// those to char or wchar_t) are printed as raw pointers.template <typename T>inline String FormatValueForFailureMessage(internal::true_type dummy,                                           T* pointer) {  return StreamableToString(static_cast<const void*>(pointer));}template <typename T>inline String FormatValueForFailureMessage(internal::false_type dummy,                                           const T& value) {  return StreamableToString(value);}template <typename T>inline String FormatForFailureMessage(const T& value) {  return FormatValueForFailureMessage(      typename internal::is_pointer<T>::type(), value);}#else// These are needed as the above solution using is_pointer has the// limitation that T cannot be a type without external linkage, when// compiled using MSVC.template <typename T>inline String FormatForFailureMessage(const T& value) {  return StreamableToString(value);}// This overload makes sure that all pointers (including// those to char or wchar_t) are printed as raw pointers.template <typename T>inline String FormatForFailureMessage(T* pointer) {  return StreamableToString(static_cast<const void*>(pointer));}#endif  // GTEST_NEEDS_IS_POINTER_// These overloaded versions handle narrow and wide characters.String FormatForFailureMessage(char ch);String FormatForFailureMessage(wchar_t wchar);// When this operand is a const char* or char*, and the other operand// is a ::std::string or ::string, we print this operand as a C string// rather than a pointer.  We do the same for wide strings.// This internal macro is used to avoid duplicated code.#define GTEST_FORMAT_IMPL_(operand2_type, operand1_printer)\inline String FormatForComparisonFailureMessage(\    operand2_type::value_type* str, const operand2_type& /*operand2*/) {\  return operand1_printer(str);\}\inline String FormatForComparisonFailureMessage(\    const operand2_type::value_type* str, const operand2_type& /*operand2*/) {\  return operand1_printer(str);\}#if GTEST_HAS_STD_STRINGGTEST_FORMAT_IMPL_(::std::string, String::ShowCStringQuoted)#endif  // GTEST_HAS_STD_STRING#if GTEST_HAS_STD_WSTRINGGTEST_FORMAT_IMPL_(::std::wstring, String::ShowWideCStringQuoted)#endif  // GTEST_HAS_STD_WSTRING#if GTEST_HAS_GLOBAL_STRINGGTEST_FORMAT_IMPL_(::string, String::ShowCStringQuoted)#endif  // GTEST_HAS_GLOBAL_STRING#if GTEST_HAS_GLOBAL_WSTRINGGTEST_FORMAT_IMPL_(::wstring, String::ShowWideCStringQuoted)#endif  // GTEST_HAS_GLOBAL_WSTRING#undef GTEST_FORMAT_IMPL_// Constructs and returns the message for an equality assertion// (e.g. ASSERT_EQ, EXPECT_STREQ, etc) failure.//// The first four parameters are the expressions used in the assertion// and their values, as strings.  For example, for ASSERT_EQ(foo, bar)// where foo is 5 and bar is 6, we have:////   expected_expression: "foo"

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
青娱乐精品视频在线| 不卡电影一区二区三区| 国产亚洲欧美一区在线观看| 97久久久精品综合88久久| 日韩中文字幕区一区有砖一区 | 日韩一区二区三区三四区视频在线观看| 经典三级在线一区| 亚洲精品你懂的| 久久久精品国产免大香伊| 91麻豆精品国产91久久久久久久久 | 亚洲欧美另类图片小说| 欧美精品一区二区精品网| 欧美午夜视频网站| 成年人午夜久久久| 国产一区美女在线| 三级久久三级久久久| 亚洲乱码一区二区三区在线观看| 精品三级在线观看| 欧美放荡的少妇| 日本韩国一区二区| 91在线播放网址| 成人免费看片app下载| 蜜桃一区二区三区在线| 亚洲一级电影视频| 亚洲色图另类专区| 中文字幕在线观看不卡视频| wwww国产精品欧美| 日韩欧美国产1| 欧美放荡的少妇| 欧美久久久久久久久久| 欧美网站一区二区| 欧美三片在线视频观看| 色哟哟国产精品免费观看| gogogo免费视频观看亚洲一| 国产精品一区二区久激情瑜伽| 美女网站视频久久| 久久精品国产亚洲高清剧情介绍| 日韩av网站免费在线| 日韩av高清在线观看| 日韩成人免费在线| 老司机一区二区| 国内精品视频666| 国产一区久久久| 国产精品77777竹菊影视小说| 国产成人亚洲综合a∨婷婷| 国产精品一级片| 成人一区二区三区视频| 色综合久久88色综合天天6 | 日韩一区二区三区精品视频| 9191成人精品久久| 制服.丝袜.亚洲.另类.中文 | 欧美在线看片a免费观看| 日本高清不卡视频| 538在线一区二区精品国产| 欧美精品久久99| 欧美一区二区视频免费观看| 欧美成人激情免费网| 久久久91精品国产一区二区三区| 国产精品免费人成网站| 亚洲男人电影天堂| 日本美女一区二区三区视频| 国内精品久久久久影院一蜜桃| 国产a视频精品免费观看| 91免费版pro下载短视频| 欧美在线你懂得| 日韩一卡二卡三卡四卡| 国产亚洲成av人在线观看导航| 成人免费在线播放视频| 亚洲gay无套男同| 黄色成人免费在线| av电影在线观看一区| 欧美日韩高清一区二区三区| 日韩精品一区二区三区四区| 国产精品嫩草久久久久| 亚洲 欧美综合在线网络| 国产专区综合网| 色域天天综合网| 日韩精品中文字幕在线不卡尤物| 国产偷国产偷精品高清尤物| 亚洲欧美精品午睡沙发| 久久99蜜桃精品| 日本韩国视频一区二区| 26uuu精品一区二区三区四区在线| 中文字幕中文字幕在线一区 | 精品视频一区三区九区| 精品国产网站在线观看| 亚洲欧洲成人自拍| 奇米影视一区二区三区| 99久久婷婷国产综合精品| 56国语精品自产拍在线观看| 国产精品三级av在线播放| 日韩精品乱码免费| 色综合视频在线观看| 精品国产乱码久久久久久牛牛 | 成人动漫在线一区| 777久久久精品| 日韩伦理免费电影| 精品伊人久久久久7777人| 色综合久久天天综合网| 欧美精品一区二区久久婷婷| 亚洲一级二级在线| 不卡一区在线观看| 日韩美一区二区三区| 一区二区三区四区在线播放| 国产精品自拍av| 欧美一级理论性理论a| 亚洲精品你懂的| 国产成人啪免费观看软件| 欧美精品久久久久久久多人混战| 中文字幕制服丝袜成人av| 免费看日韩精品| 精品视频免费看| 中文字幕视频一区| 国产激情一区二区三区桃花岛亚洲| 欧美日韩国产首页在线观看| √…a在线天堂一区| 成人性视频免费网站| 26uuu国产一区二区三区| 日韩精品视频网站| 欧美精品精品一区| 一区二区三区国产豹纹内裤在线| 国产成人精品三级| 2020日本不卡一区二区视频| 日本在线不卡视频| 欧美日本在线看| 午夜精品一区二区三区免费视频| 91丨porny丨户外露出| 一区在线观看免费| eeuss鲁片一区二区三区在线观看| 国产欧美精品在线观看| 国产成人av电影免费在线观看| 久久久精品蜜桃| 国产福利91精品一区| 久久久www成人免费毛片麻豆 | 在线观看三级视频欧美| 亚洲精品欧美激情| 91激情在线视频| 亚洲精品免费在线观看| 在线视频中文字幕一区二区| 亚洲码国产岛国毛片在线| 成人性生交大合| 国产精品国产三级国产aⅴ无密码| 国产成人99久久亚洲综合精品| 国产色综合久久| 国产aⅴ精品一区二区三区色成熟| 国产亚洲视频系列| 99久久免费精品| 亚洲一区二区视频在线观看| 日本道色综合久久| 视频在线观看国产精品| 欧美一区二视频| 国产剧情av麻豆香蕉精品| 国产欧美一二三区| 97久久超碰国产精品电影| 亚洲一区二区美女| 日韩欧美一级二级三级久久久| 国产制服丝袜一区| 国产精品久久午夜| 欧美性xxxxxx少妇| 麻豆免费看一区二区三区| 国产欧美一区二区三区鸳鸯浴| 99麻豆久久久国产精品免费| 亚洲综合久久av| 精品国产制服丝袜高跟| 国产成人在线网站| 一区免费观看视频| 欧美精品亚洲二区| 国产乱人伦偷精品视频不卡| 国产精品久久久久久久久久久免费看 | 色悠悠久久综合| 日韩精品1区2区3区| 久久久久青草大香线综合精品| 99久久精品国产一区| 午夜精品久久久久久不卡8050| 精品福利二区三区| 色综合久久精品| 国产一区美女在线| 亚洲欧美一区二区不卡| 欧美一区二区在线看| www.亚洲免费av| 免费成人深夜小野草| 中文字幕一区二区不卡 | 久久久蜜臀国产一区二区| 99久久精品免费看国产| 免费久久精品视频| 亚洲精品日日夜夜| 久久久久久免费| 欧美三级乱人伦电影| 国产成人精品网址| 免费成人av在线| 一区二区国产盗摄色噜噜| 日韩精品一区二区三区蜜臀| 99久久免费精品| 国产一区二区三区国产| 亚洲一区日韩精品中文字幕| 日本不卡高清视频| 亚洲柠檬福利资源导航| 久久久久久免费毛片精品| 在线不卡中文字幕| 日本道在线观看一区二区|