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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gtest-internal.h

?? Search s framework 老外寫的
?? H
?? 第 1 頁 / 共 3 頁
字號:
// 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"

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美成人vps| 93久久精品日日躁夜夜躁欧美| 欧美人妖巨大在线| 亚洲成人精品一区| 日韩一区二区在线看| 国产原创一区二区三区| 久久久久久久久久久久久夜| 国产69精品一区二区亚洲孕妇| 2020国产精品| aa级大片欧美| 亚洲成人午夜影院| 欧美一级高清片| 粉嫩蜜臀av国产精品网站| 日韩毛片在线免费观看| 欧美日韩国产片| 国产一区在线看| 亚洲视频免费看| 在线成人免费观看| 国产一区不卡视频| 亚洲综合小说图片| 精品国产污网站| 91在线国产福利| 日韩成人免费看| 国产精品久久久爽爽爽麻豆色哟哟| 欧美在线一二三| 国产资源在线一区| 亚洲精品成人a在线观看| 欧美一区二区视频观看视频| 国产成人在线网站| 午夜精品视频一区| 日本一区二区三区国色天香 | 一区二区免费在线播放| 91精品国产欧美日韩| av一本久道久久综合久久鬼色| 偷拍日韩校园综合在线| 国产欧美一二三区| 欧美日本精品一区二区三区| 国产·精品毛片| 日韩在线观看一区二区| 26uuu国产电影一区二区| 国产综合久久久久久鬼色| 亚洲一区在线视频| 久久精品免费在线观看| 欧美天天综合网| 成人丝袜视频网| 狠狠色丁香久久婷婷综| 亚洲成人午夜影院| 国产精品国产自产拍高清av王其| 欧美一区二区三区爱爱| 色素色在线综合| 成人a免费在线看| 激情综合色播激情啊| 一区二区在线观看免费| 欧美激情一区二区三区不卡 | 日韩网站在线看片你懂的| 色天使久久综合网天天| 成人深夜福利app| 国产一区二区三区黄视频| 日韩成人一区二区三区在线观看| 伊人色综合久久天天人手人婷| 久久国产尿小便嘘嘘尿| 亚洲黄色av一区| 中文字幕欧美国产| 日韩精品一区二区三区视频播放| 欧美性极品少妇| 色婷婷综合久久| 91视频一区二区| 91在线看国产| 91小视频免费看| 91蜜桃视频在线| 91亚洲永久精品| jlzzjlzz亚洲日本少妇| 成人的网站免费观看| 成人免费视频一区二区| 国产黄人亚洲片| 岛国av在线一区| 国产宾馆实践打屁股91| 国产91精品一区二区麻豆网站| 国产精品一区二区黑丝| 国产一区二区三区四| 国产高清精品网站| 国产精品主播直播| 国产.欧美.日韩| 99久久久精品| 欧美午夜片在线观看| 亚洲乱码国产乱码精品精可以看| 欧美一区二区在线播放| 日韩欧美一区二区视频| 337p日本欧洲亚洲大胆色噜噜| www日韩大片| 国产精品久久久久久久久免费丝袜 | 欧美日韩国产系列| 日韩欧美你懂的| 久久只精品国产| 国产精品二区一区二区aⅴ污介绍| 亚洲欧洲精品一区二区精品久久久| 国产精品久久久久久久久果冻传媒 | 91色|porny| 欧美顶级少妇做爰| 久久久久久久久久久久久夜| 国产精品乱人伦| 一区二区三区中文在线| 免费日韩伦理电影| 高清av一区二区| 91国产丝袜在线播放| 免费成人你懂的| 久久综合色8888| 国产精品国产三级国产普通话三级 | 综合色天天鬼久久鬼色| 亚洲国产另类av| 国内欧美视频一区二区| a亚洲天堂av| 欧美系列日韩一区| 2023国产精品| 一区二区三区欧美视频| 免费成人在线播放| 91在线你懂得| 精品1区2区在线观看| 亚洲色图在线视频| 麻豆精品在线播放| 99久久99久久精品国产片果冻| 欧美日本国产视频| 国产精品久久久久影视| 日韩综合在线视频| 色综合久久中文字幕| 精品成人一区二区三区| 欧美大片在线观看一区二区| 国模大尺度一区二区三区| 99久久夜色精品国产网站| 欧美视频一区在线观看| 久久先锋影音av| 亚洲第一在线综合网站| 国v精品久久久网| 日韩欧美在线不卡| 亚洲国产精品久久久久秋霞影院| 国产精一品亚洲二区在线视频| 欧美日韩精品系列| 中文字幕一区日韩精品欧美| 麻豆国产精品视频| 欧美吻胸吃奶大尺度电影| 欧美激情一区二区三区全黄| 麻豆91在线观看| 欧美日韩视频专区在线播放| 中文字幕一区在线| 国产91高潮流白浆在线麻豆 | 日韩一区二区免费在线观看| 亚洲色图都市小说| 丁香另类激情小说| 久久久久久久精| 久久狠狠亚洲综合| 91精品免费观看| 亚洲国产精品欧美一二99| 91在线国产观看| 亚洲日本丝袜连裤袜办公室| 不卡一区二区三区四区| 久久久午夜电影| 国产一区二区在线影院| 欧美成人精品福利| 六月丁香综合在线视频| 日韩欧美国产电影| 麻豆91精品91久久久的内涵| 91精品国产综合久久国产大片| 亚洲一区二区偷拍精品| 91极品美女在线| 亚洲精品高清在线观看| 在线一区二区三区| 亚洲黄网站在线观看| 色域天天综合网| 亚洲最大的成人av| 欧美在线你懂得| 午夜精品一区二区三区电影天堂| 欧美日韩一级大片网址| 午夜视频一区二区三区| 欧美日韩国产精品自在自线| 图片区小说区区亚洲影院| 欧美高清性hdvideosex| 久久国产精品第一页| 亚洲精品一区二区三区99| 国产成人av影院| 国产精品网站在线播放| 97久久精品人人做人人爽50路| 亚洲日本丝袜连裤袜办公室| 欧美天堂一区二区三区| 捆绑调教一区二区三区| 久久久噜噜噜久久中文字幕色伊伊 | 蜜桃精品视频在线| 久久噜噜亚洲综合| av在线一区二区| 亚洲不卡一区二区三区| 日韩欧美www| 国产91在线看| 亚洲成av人片一区二区三区| 日韩亚洲欧美综合| 丁香网亚洲国际| 亚洲国产美国国产综合一区二区| 精品国产一区久久| 91亚洲精品久久久蜜桃| 麻豆一区二区三| 最近日韩中文字幕| 欧美一区二区在线看|