|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
References
include/llvm/ADT/Optional.h 144 T value;
160 explicit OptionalStorage(in_place_t, Args &&... args)
161 : value(std::forward<Args>(args)...), hasVal(true) {}
172 T &getValue() LLVM_LVALUE_FUNCTION noexcept {
176 T const &getValue() const LLVM_LVALUE_FUNCTION noexcept {
181 T &&getValue() && noexcept {
216 optional_detail::OptionalStorage<T> Storage;
219 using value_type = T;
224 Optional(const T &y) : Storage(optional_detail::in_place_t{}, y) {}
227 Optional(T &&y) : Storage(optional_detail::in_place_t{}, std::move(y)) {}
230 Optional &operator=(T &&y) {
241 static inline Optional create(const T *y) {
245 Optional &operator=(const T &y) {
253 const T *getPointer() const { return &Storage.getValue(); }
254 T *getPointer() { return &Storage.getValue(); }
255 const T &getValue() const LLVM_LVALUE_FUNCTION { return Storage.getValue(); }
256 T &getValue() LLVM_LVALUE_FUNCTION { return Storage.getValue(); }
260 const T *operator->() const { return getPointer(); }
261 T *operator->() { return getPointer(); }
262 const T &operator*() const LLVM_LVALUE_FUNCTION { return getValue(); }
263 T &operator*() LLVM_LVALUE_FUNCTION { return getValue(); }
266 constexpr T getValueOr(U &&value) const LLVM_LVALUE_FUNCTION {
266 constexpr T getValueOr(U &&value) const LLVM_LVALUE_FUNCTION {
271 T &&getValue() && { return std::move(Storage.getValue()); }
272 T &&operator*() && { return std::move(Storage.getValue()); }
275 T getValueOr(U &&value) && {
275 T getValueOr(U &&value) && {
276 return hasValue() ? std::move(getValue()) : std::forward<U>(value);
316 bool operator==(const Optional<T> &X, NoneType) {
321 bool operator==(NoneType, const Optional<T> &X) {
371 template <typename T> bool operator==(const T &X, const Optional<T> &Y) {
371 template <typename T> bool operator==(const T &X, const Optional<T> &Y) {
include/llvm/ADT/SmallVector.h 641 template <typename... ArgTypes> reference emplace_back(ArgTypes &&... Args) {
644 ::new ((void *)this->end()) T(std::forward<ArgTypes>(Args)...);
include/llvm/DebugInfo/DWARF/DWARFDebugLine.h 136 sys::path::Style Style = sys::path::Style::native) const;
136 sys::path::Style Style = sys::path::Style::native) const;
include/llvm/DebugInfo/GSYM/GsymCreator.h 181 sys::path::Style Style = sys::path::Style::native);
181 sys::path::Style Style = sys::path::Style::native);
include/llvm/Support/Path.h 58 Style S; ///< The path style to use.
61 friend const_iterator begin(StringRef path, Style style);
84 Style S; ///< The path style to use.
86 friend reverse_iterator rbegin(StringRef path, Style style);
101 const_iterator begin(StringRef path, Style style = Style::native);
101 const_iterator begin(StringRef path, Style style = Style::native);
111 reverse_iterator rbegin(StringRef path, Style style = Style::native);
111 reverse_iterator rbegin(StringRef path, Style style = Style::native);
134 void remove_filename(SmallVectorImpl<char> &path, Style style = Style::native);
134 void remove_filename(SmallVectorImpl<char> &path, Style style = Style::native);
149 Style style = Style::native);
149 Style style = Style::native);
166 Style style = Style::native);
166 Style style = Style::native);
183 void append(SmallVectorImpl<char> &path, Style style, const Twine &a,
198 const_iterator end, Style style = Style::native);
198 const_iterator end, Style style = Style::native);
211 Style style = Style::native);
211 Style style = Style::native);
218 void native(SmallVectorImpl<char> &path, Style style = Style::native);
218 void native(SmallVectorImpl<char> &path, Style style = Style::native);
226 std::string convert_to_slash(StringRef path, Style style = Style::native);
226 std::string convert_to_slash(StringRef path, Style style = Style::native);
242 StringRef root_name(StringRef path, Style style = Style::native);
242 StringRef root_name(StringRef path, Style style = Style::native);
255 StringRef root_directory(StringRef path, Style style = Style::native);
255 StringRef root_directory(StringRef path, Style style = Style::native);
263 StringRef root_path(StringRef path, Style style = Style::native);
263 StringRef root_path(StringRef path, Style style = Style::native);
275 StringRef relative_path(StringRef path, Style style = Style::native);
275 StringRef relative_path(StringRef path, Style style = Style::native);
287 StringRef parent_path(StringRef path, Style style = Style::native);
287 StringRef parent_path(StringRef path, Style style = Style::native);
301 StringRef filename(StringRef path, Style style = Style::native);
301 StringRef filename(StringRef path, Style style = Style::native);
319 StringRef stem(StringRef path, Style style = Style::native);
319 StringRef stem(StringRef path, Style style = Style::native);
335 StringRef extension(StringRef path, Style style = Style::native);
335 StringRef extension(StringRef path, Style style = Style::native);
341 bool is_separator(char value, Style style = Style::native);
341 bool is_separator(char value, Style style = Style::native);
346 StringRef get_separator(Style style = Style::native);
346 StringRef get_separator(Style style = Style::native);
371 bool has_root_name(const Twine &path, Style style = Style::native);
371 bool has_root_name(const Twine &path, Style style = Style::native);
379 bool has_root_directory(const Twine &path, Style style = Style::native);
379 bool has_root_directory(const Twine &path, Style style = Style::native);
387 bool has_root_path(const Twine &path, Style style = Style::native);
387 bool has_root_path(const Twine &path, Style style = Style::native);
395 bool has_relative_path(const Twine &path, Style style = Style::native);
395 bool has_relative_path(const Twine &path, Style style = Style::native);
403 bool has_parent_path(const Twine &path, Style style = Style::native);
403 bool has_parent_path(const Twine &path, Style style = Style::native);
411 bool has_filename(const Twine &path, Style style = Style::native);
411 bool has_filename(const Twine &path, Style style = Style::native);
419 bool has_stem(const Twine &path, Style style = Style::native);
419 bool has_stem(const Twine &path, Style style = Style::native);
427 bool has_extension(const Twine &path, Style style = Style::native);
427 bool has_extension(const Twine &path, Style style = Style::native);
433 bool is_absolute(const Twine &path, Style style = Style::native);
433 bool is_absolute(const Twine &path, Style style = Style::native);
439 bool is_relative(const Twine &path, Style style = Style::native);
439 bool is_relative(const Twine &path, Style style = Style::native);
445 StringRef remove_leading_dotslash(StringRef path, Style style = Style::native);
445 StringRef remove_leading_dotslash(StringRef path, Style style = Style::native);
454 Style style = Style::native);
454 Style style = Style::native);
include/llvm/Support/type_traits.h 91 T t;
122 static auto get(F*) -> decltype(std::declval<F &>() = std::declval<const F &>(), std::true_type{});
122 static auto get(F*) -> decltype(std::declval<F &>() = std::declval<const F &>(), std::true_type{});
122 static auto get(F*) -> decltype(std::declval<F &>() = std::declval<const F &>(), std::true_type{});
130 static auto get(F*) -> decltype(std::declval<F &>() = std::declval<F &&>(), std::true_type{});
130 static auto get(F*) -> decltype(std::declval<F &>() = std::declval<F &&>(), std::true_type{});
130 static auto get(F*) -> decltype(std::declval<F &>() = std::declval<F &&>(), std::true_type{});
145 std::is_copy_constructible<detail::trivial_helper<T>>::value;
147 !std::is_copy_constructible<T>::value;
151 std::is_move_constructible<detail::trivial_helper<T>>::value;
153 !std::is_move_constructible<T>::value;
157 is_copy_assignable<detail::trivial_helper<T>>::value;
159 !is_copy_assignable<T>::value;
163 is_move_assignable<detail::trivial_helper<T>>::value;
165 !is_move_assignable<T>::value;
169 std::is_destructible<detail::trivial_helper<T>>::value;
lib/CodeGen/AsmPrinter/CodeViewDebug.cpp 184 if (llvm::sys::path::is_absolute(Filename, llvm::sys::path::Style::posix))
lib/DebugInfo/DWARF/DWARFDebugLine.cpp 1039 return sys::path::is_absolute(Path, sys::path::Style::posix) ||
1040 sys::path::is_absolute(Path, sys::path::Style::windows);
1045 std::string &Result, sys::path::Style Style) const {
lib/DebugInfo/GSYM/GsymCreator.cpp 29 llvm::sys::path::Style Style) {
lib/Object/ArchiveWriter.cpp 543 sys::path::append(Relative, sys::path::Style::posix, "..");
546 sys::path::append(Relative, sys::path::Style::posix, *ToI);
lib/Support/Path.cpp 39 inline Style real_style(Style style) {
39 inline Style real_style(Style style) {
43 return (style == Style::windows) ? Style::windows : Style::posix;
43 return (style == Style::windows) ? Style::windows : Style::posix;
43 return (style == Style::windows) ? Style::windows : Style::posix;
47 inline const char *separators(Style style) {
48 if (real_style(style) == Style::windows)
53 inline char preferred_separator(Style style) {
54 if (real_style(style) == Style::windows)
59 StringRef find_first_component(StringRef path, Style style) {
69 if (real_style(style) == Style::windows) {
95 size_t filename_pos(StringRef str, Style style) {
101 if (real_style(style) == Style::windows) {
114 size_t root_dir_start(StringRef str, Style style) {
116 if (real_style(style) == Style::windows) {
137 size_t parent_path_end(StringRef path, Style style) {
224 const_iterator begin(StringRef path, Style style) {
262 (real_style(S) == Style::windows && Component.endswith(":"))) {
295 reverse_iterator rbegin(StringRef Path, Style style) {
346 StringRef root_path(StringRef path, Style style) {
351 bool has_drive = (real_style(style) == Style::windows) && b->endswith(":");
372 StringRef root_name(StringRef path, Style style) {
377 bool has_drive = (real_style(style) == Style::windows) && b->endswith(":");
389 StringRef root_directory(StringRef path, Style style) {
394 bool has_drive = (real_style(style) == Style::windows) && b->endswith(":");
412 StringRef relative_path(StringRef path, Style style) {
417 void append(SmallVectorImpl<char> &path, Style style, const Twine &a,
457 append(path, Style::native, a, b, c, d);
461 const_iterator end, Style style) {
466 StringRef parent_path(StringRef path, Style style) {
474 void remove_filename(SmallVectorImpl<char> &path, Style style) {
481 Style style) {
501 Style style) {
522 void native(const Twine &path, SmallVectorImpl<char> &result, Style style) {
532 void native(SmallVectorImpl<char> &Path, Style style) {
535 if (real_style(style) == Style::windows) {
556 std::string convert_to_slash(StringRef path, Style style) {
557 if (real_style(style) != Style::windows)
565 StringRef filename(StringRef path, Style style) { return *rbegin(path, style); }
567 StringRef stem(StringRef path, Style style) {
580 StringRef extension(StringRef path, Style style) {
593 bool is_separator(char value, Style style) {
596 if (real_style(style) == Style::windows)
601 StringRef get_separator(Style style) {
602 if (real_style(style) == Style::windows)
607 bool has_root_name(const Twine &path, Style style) {
614 bool has_root_directory(const Twine &path, Style style) {
621 bool has_root_path(const Twine &path, Style style) {
628 bool has_relative_path(const Twine &path, Style style) {
635 bool has_filename(const Twine &path, Style style) {
642 bool has_parent_path(const Twine &path, Style style) {
649 bool has_stem(const Twine &path, Style style) {
656 bool has_extension(const Twine &path, Style style) {
663 bool is_absolute(const Twine &path, Style style) {
669 (real_style(style) != Style::windows) || has_root_name(p, style);
674 bool is_relative(const Twine &path, Style style) {
678 StringRef remove_leading_dotslash(StringRef Path, Style style) {
689 Style style) {
717 Style style) {
861 if ((rootName || real_style(Style::native) != Style::windows) &&
861 if ((rootName || real_style(Style::native) != Style::windows) &&
tools/clang/tools/extra/clang-doc/HTMLGenerator.cpp 280 llvm::sys::path::native(StylesheetPath, llvm::sys::path::Style::posix);
295 llvm::sys::path::native(ScriptPath, llvm::sys::path::Style::posix);
321 llvm::sys::path::native(Path, llvm::sys::path::Style::posix);
444 llvm::sys::path::append(FileURL, llvm::sys::path::Style::posix, L.Filename);
tools/clang/tools/extra/clangd/FileDistance.cpp 48 native(Result, llvm::sys::path::Style::posix);
73 Rest = parent_path(Rest, llvm::sys::path::Style::posix);
124 Rest = parent_path(Rest, llvm::sys::path::Style::posix)) {
tools/clang/tools/extra/clangd/index/dex/Dex.cpp 319 Body = llvm::sys::path::parent_path(Body, llvm::sys::path::Style::posix);
tools/clang/unittests/Tooling/CompilationDatabaseTest.cpp 725 llvm::sys::path::native(Result, llvm::sys::path::Style::posix);
tools/lld/COFF/DebugTypes.cpp 142 sys::path::append(path, sys::path::filename(tSPath, sys::path::Style::windows));
tools/lld/COFF/Driver.cpp 958 sys::path::filename(config->pdbPath, sys::path::Style::windows);
960 sys::path::extension(config->outputFile, sys::path::Style::windows);
tools/lld/COFF/InputFiles.cpp 53 return sys::path::filename(path, sys::path::Style::windows);
tools/lld/COFF/PDB.cpp 258 if (sys::path::is_absolute(fileName, sys::path::Style::windows) ||
259 sys::path::is_absolute(fileName, sys::path::Style::posix))
276 sys::path::Style guessedStyle = absoluteFileName.startswith("/")
277 ? sys::path::Style::posix
278 : sys::path::Style::windows;
558 precomp.getPrecompFilePath(), sys::path::Style::windows);
tools/lldb/include/lldb/Core/FileSpecList.h 87 template <class... Args> void EmplaceBack(Args &&... args) {
tools/lldb/include/lldb/Utility/FileSpec.h 57 using Style = llvm::sys::path::Style;
tools/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp 985 loaded_image->SetFile(name_string, llvm::sys::path::Style::posix);
tools/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp 303 auto style = llvm::sys::path::Style::posix;
303 auto style = llvm::sys::path::Style::posix;
tools/lldb/source/Plugins/SymbolFile/NativePDB/CompileUnitIndex.cpp 216 llvm::sys::path::Style style = working_dir.String.startswith("/")
217 ? llvm::sys::path::Style::posix
218 : llvm::sys::path::Style::windows;
tools/lldb/unittests/Utility/FileSpecTest.cpp 272 auto win = FileSpec::Style::windows;
unittests/Support/Path.cpp 254 GetComponents(StringRef Path, path::Style S = path::Style::native) {
254 GetComponents(StringRef Path, path::Style S = path::Style::native) {
280 SmallVector<std::pair<StringRef, path::Style>, 4> Paths;
281 Paths.emplace_back("/foo/", path::Style::native);
282 Paths.emplace_back("/foo//", path::Style::native);
283 Paths.emplace_back("//net/foo/", path::Style::native);
284 Paths.emplace_back("c:\\foo\\", path::Style::windows);
292 SmallVector<std::pair<StringRef, path::Style>, 3> RootPaths;
293 RootPaths.emplace_back("/", path::Style::native);
294 RootPaths.emplace_back("//net/", path::Style::native);
295 RootPaths.emplace_back("c:\\", path::Style::windows);
296 RootPaths.emplace_back("//net//", path::Style::native);
297 RootPaths.emplace_back("c:\\\\", path::Style::windows);
1142 path::native(Win, path::Style::windows);
1143 path::native(Posix, path::Style::posix);
1187 path::Style style) {
unittests/Support/VirtualFileSystemTest.cpp 181 llvm::sys::path::native(S, Result, llvm::sys::path::Style::posix);
usr/include/c++/7.4.0/bits/alloc_traits.h 474 construct(allocator_type& __a, _Up* __p, _Args&&... __args)
usr/include/c++/7.4.0/bits/move.h 72 constexpr _Tp&&
73 forward(typename std::remove_reference<_Tp>::type& __t) noexcept
83 constexpr _Tp&&
84 forward(typename std::remove_reference<_Tp>::type&& __t) noexcept
98 move(_Tp&& __t) noexcept
usr/include/c++/7.4.0/bits/stl_pair.h 101 is_constructible<_T2, const _U2&>>::value;
101 is_constructible<_T2, const _U2&>>::value;
108 is_convertible<const _U2&, _T2>>::value;
108 is_convertible<const _U2&, _T2>>::value;
115 is_constructible<_T2, _U2&&>>::value;
115 is_constructible<_T2, _U2&&>>::value;
122 is_convertible<_U2&&, _T2>>::value;
122 is_convertible<_U2&&, _T2>>::value;
129 is_convertible<_U2&&, _T2>>;
129 is_convertible<_U2&&, _T2>>;
134 is_constructible<_T2, _U2&&>,
134 is_constructible<_T2, _U2&&>,
143 is_convertible<const _U2&, _T2>>;
143 is_convertible<const _U2&, _T2>>;
148 is_constructible<_T2, const _U2&&>,
148 is_constructible<_T2, const _U2&&>,
209 : private __pair_base<_T1, _T2>
212 typedef _T2 second_type; /// @c second_type is the second bound type
215 _T2 second; /// @c second is a copy of the second object
252 using _PCCP = _PCC<true, _T1, _T2>;
260 constexpr pair(const _T1& __a, const _T2& __b)
269 explicit constexpr pair(const _T1& __a, const _T2& __b)
283 _T1, _T2>;
311 constexpr pair(_U1&& __x, const _T2& __y)
318 explicit constexpr pair(_U1&& __x, const _T2& __y)
325 constexpr pair(const _T1& __x, _U2&& __y)
341 constexpr pair(_U1&& __x, _U2&& __y)
342 : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { }
380 is_copy_assignable<_T2>>::value,
391 is_move_assignable<_T2>>::value,
403 is_assignable<_T2&, const _U2&>>::value,
403 is_assignable<_T2&, const _U2&>>::value,
405 operator=(const pair<_U1, _U2>& __p)
414 is_assignable<_T2&, _U2&&>>::value,
414 is_assignable<_T2&, _U2&&>>::value,
416 operator=(pair<_U1, _U2>&& __p)
usr/include/c++/7.4.0/bits/stl_vector.h 962 emplace_back(_Args&&... __args);
1483 _M_realloc_insert(iterator __position, _Args&&... __args);
usr/include/c++/7.4.0/ext/new_allocator.h 135 construct(_Up* __p, _Args&&... __args)
usr/include/c++/7.4.0/type_traits 215 : public __is_void_helper<typename remove_cv<_Tp>::type>::type
326 : public __is_integral_helper<typename remove_cv<_Tp>::type>::type
354 : public __is_floating_point_helper<typename remove_cv<_Tp>::type>::type
581 : public __or_<is_lvalue_reference<_Tp>,
582 is_rvalue_reference<_Tp>>::type
588 : public __or_<is_integral<_Tp>, is_floating_point<_Tp>>::type
588 : public __or_<is_integral<_Tp>, is_floating_point<_Tp>>::type
601 : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
601 : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
602 is_void<_Tp>>>::type
611 : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
611 : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
611 : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
612 is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type
612 is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type
638 : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
638 : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
762 typename add_rvalue_reference<_Tp>::type declval() noexcept;
777 : public __and_<is_array<_Tp>, __not_<extent<_Tp>>>
777 : public __and_<is_array<_Tp>, __not_<extent<_Tp>>>
825 : public __is_destructible_safe<_Tp>::type
889 typedef decltype(__test<_Tp>(0)) type;
894 : public __and_<__not_<is_void<_Tp>>,
895 __is_default_constructible_impl<_Tp>>
915 : public __is_default_constructible_atom<_Tp>::type
921 : public __is_default_constructible_safe<_Tp>::type
984 typedef decltype(__test<_Tp, _Arg>(0)) type;
989 : public __and_<is_destructible<_Tp>,
990 __is_direct_constructible_impl<_Tp, _Arg>>
1072 __is_direct_constructible_ref_cast<_Tp, _Arg>,
1073 __is_direct_constructible_new_safe<_Tp, _Arg>
1079 : public __is_direct_constructible_new<_Tp, _Arg>::type
1119 : public __is_direct_constructible<_Tp, _Arg>
1130 : public __is_constructible_impl<_Tp, _Args...>::type
1142 : public is_constructible<_Tp, const _Tp&>
1142 : public is_constructible<_Tp, const _Tp&>
1148 : public __is_copy_constructible_impl<_Tp>
1160 : public is_constructible<_Tp, _Tp&&>
1160 : public is_constructible<_Tp, _Tp&&>
1166 : public __is_move_constructible_impl<_Tp>
1286 : public is_assignable<_Tp&, const _Tp&>
1286 : public is_assignable<_Tp&, const _Tp&>
1292 : public __is_copy_assignable_impl<_Tp>
1304 : public is_assignable<_Tp&, _Tp&&>
1304 : public is_assignable<_Tp&, _Tp&&>
1310 : public __is_move_assignable_impl<_Tp>
1377 static void __helper(const _Tp&);
1380 static true_type __test(const _Tp&,
1381 decltype(__helper<const _Tp&>({}))* = 0);
1390 typedef decltype(__test(declval<_Tp>())) type;
1395 : public __is_implicitly_default_constructible_impl<_Tp>::type
1400 : public __and_<is_default_constructible<_Tp>,
1401 __is_implicitly_default_constructible_safe<_Tp>>
1526 static void __test_aux(_To1);
1538 typedef decltype(__test<_From, _To>(0)) type;
1545 : public __is_convertible_helper<_From, _To>::type
1554 { typedef _Tp type; };
1563 { typedef _Tp type; };
1574 remove_const<typename remove_volatile<_Tp>::type>::type type;
1629 { typedef _Tp type; };
1633 { typedef _Tp type; };
1659 { typedef _Tp&& type; };
1664 : public __add_rvalue_reference_helper<_Tp>
utils/unittest/googletest/include/gtest/gtest-printers.h 140 static void PrintValue(const T& value, ::std::ostream* os) {
205 ::std::basic_ostream<Char, CharTraits>& os, const T& x) {
206 TypeWithoutFormatter<T,
207 (internal::IsAProtocolMessage<T>::value ? kProtobuf :
208 internal::ImplicitlyConvertible<const T&, internal::BiggestInt>::value ?
223 void DefaultPrintNonContainerTo(const T& value, ::std::ostream* os) {
276 static ::std::string Format(const ToPrint& value) {
351 const T1& value, const T2& /* other_operand */) {
351 const T1& value, const T2& /* other_operand */) {
352 return FormatForComparison<T1, T2>::Format(value);
352 return FormatForComparison<T1, T2>::Format(value);
366 void UniversalPrint(const T& value, ::std::ostream* os);
373 const C& container, ::std::ostream* os) {
439 const T& value, ::std::ostream* os) {
455 void PrintTo(const T& value, ::std::ostream* os) {
478 DefaultPrintTo(IsContainerTest<T>(0), is_pointer<T>(), value, os);
699 static void Print(const T& value, ::std::ostream* os) {
784 static void Print(const T& value, ::std::ostream* os) {
856 typedef T T1;
983 internal::UniversalTersePrinter<T>::Print(value, &ss);
utils/unittest/googletest/include/gtest/gtest.h 1377 const T1& lhs, const T2& rhs) {
1389 const T1& lhs,
1419 const T1& lhs,
utils/unittest/googletest/include/gtest/internal/custom/raw-ostream.h 29 static const T& printable(const T& V) { return V; }
29 static const T& printable(const T& V) { return V; }
35 auto printable(const T &V) -> decltype(StreamSwitch<T>::printable(V)) {
35 auto printable(const T &V) -> decltype(StreamSwitch<T>::printable(V)) {
37 return StreamSwitch<T>::printable(V);
utils/unittest/googletest/include/gtest/internal/gtest-internal.h 94 ::std::string PrintToString(const T& value);