Go to the documentation of this file.
18 #ifndef LLVM_SUPPORT_MSVCERRORWORKAROUNDS_H
19 #define LLVM_SUPPORT_MSVCERRORWORKAROUNDS_H
59 template <
typename OtherT>
62 std::enable_if_t<std::is_convertible<OtherT, T>::value> * =
nullptr)
65 template <
class OtherT>
68 std::enable_if_t<std::is_convertible<OtherT, T>::value> * =
nullptr)
71 template <
class OtherT>
74 std::enable_if_t<!std::is_convertible<OtherT, T>::value> * =
nullptr)
80 #endif // LLVM_SUPPORT_MSVCERRORWORKAROUNDS_H
This is an optimization pass for GlobalISel generic memory operations.
Expected & operator=(Expected &&Other)
Move-assign from another Expected<T>.
Tagged union holding either a T or a Error.
void consumeError(Error Err)
Consume a Error without doing anything.
MSVCPExpected(OtherT &&Val, std::enable_if_t< std::is_convertible< OtherT, T >::value > *=nullptr)
Error & operator=(const Error &Other)=delete
MSVCPExpected(MSVCPExpected &&Other)
MSVCPExpected & operator=(MSVCPExpected &&Other)
MSVCPExpected(Expected< OtherT > &&Other, std::enable_if_t<!std::is_convertible< OtherT, T >::value > *=nullptr)
compiles ldr LCPI1_0 ldr ldr mov lsr tst moveq r1 ldr LCPI1_1 and r0 bx lr It would be better to do something like to fold the shift into the conditional move
OutputIt move(R &&Range, OutputIt Out)
Provide wrappers to std::move which take ranges instead of having to pass begin/end explicitly.
This class wraps a string in an Error.
std::error_code inconvertibleErrorCode()
The value returned by this function can be returned from convertToErrorCode for Error values where no...
Lightweight error class with error context and mandatory checking.
Error make_error(ArgTs &&... Args)
Make a Error instance representing failure using the given error info type.
MSVCPExpected(Expected< OtherT > &&Other, std::enable_if_t< std::is_convertible< OtherT, T >::value > *=nullptr)
Error takeError()
Take ownership of the stored error.
std::optional< std::vector< StOtherPiece > > Other
MSVCPError & operator=(MSVCPError Other)
MSVCPError(MSVCPError &&Other)