react-native-windows 0.68.3 → 0.69.0-preview.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.flowconfig +1 -3
- package/Chakra/ChakraHelpers.cpp +0 -1
- package/Directory.Build.props +3 -0
- package/Directory.Build.targets +1 -1
- package/Folly/TEMP_UntilFollyUpdate/dynamic-inl.h +1411 -0
- package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.cpp +336 -0
- package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.h +182 -0
- package/Libraries/ActionSheetIOS/ActionSheetIOS.js +7 -0
- package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -0
- package/Libraries/Alert/Alert.windows.js +2 -2
- package/Libraries/Animated/AnimatedImplementation.js +1 -1
- package/Libraries/Animated/NativeAnimatedHelper.js +55 -9
- package/Libraries/Animated/NativeAnimatedModule.js +1 -0
- package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -0
- package/Libraries/Animated/animations/TimingAnimation.js +6 -11
- package/Libraries/Animated/createAnimatedComponent.js +2 -2
- package/Libraries/Animated/nodes/AnimatedColor.js +95 -29
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +19 -22
- package/Libraries/Animated/nodes/AnimatedNode.js +2 -2
- package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
- package/Libraries/AppState/AppState.js +1 -1
- package/Libraries/Blob/URL.js +7 -1
- package/Libraries/Components/Button.js +3 -0
- package/Libraries/Components/Button.windows.js +4 -0
- package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +5 -0
- package/Libraries/Components/Pressable/Pressable.js +3 -3
- package/Libraries/Components/Pressable/Pressable.windows.js +3 -3
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +47 -38
- package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +15 -7
- package/Libraries/Components/ScrollView/ScrollView.js +1 -1
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +16 -3
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +3 -1
- package/Libraries/Components/Slider/Slider.js +0 -2
- package/Libraries/Components/Slider/SliderNativeComponent.js +0 -1
- package/Libraries/Components/StatusBar/StatusBar.js +6 -1
- package/Libraries/Components/Switch/Switch.js +11 -1
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +114 -109
- package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +17 -9
- package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +13 -5
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +10 -0
- package/Libraries/Components/TextInput/TextInput.js +1 -8
- package/Libraries/Components/TextInput/TextInput.windows.js +4 -9
- package/Libraries/Components/TextInput/TextInputState.js +10 -2
- package/Libraries/Components/TextInput/TextInputState.windows.js +10 -3
- package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +1 -1
- package/Libraries/Components/Touchable/TouchableBounce.js +1 -0
- package/Libraries/Components/Touchable/TouchableHighlight.js +1 -0
- package/Libraries/Components/Touchable/TouchableHighlight.windows.js +6 -5
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -0
- package/Libraries/Components/Touchable/TouchableOpacity.js +7 -1
- package/Libraries/Components/Touchable/TouchableOpacity.windows.js +11 -5
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +2 -0
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +2 -0
- package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -0
- package/Libraries/Components/View/ReactNativeViewAttributes.windows.js +1 -0
- package/Libraries/Components/View/View.windows.js +33 -1
- package/Libraries/Components/View/ViewNativeComponent.js +68 -8
- package/Libraries/Components/View/ViewPropTypes.js +36 -4
- package/Libraries/Components/View/ViewPropTypes.windows.js +36 -4
- package/Libraries/Core/Devtools/parseHermesStack.js +1 -1
- package/Libraries/Core/ExceptionsManager.js +1 -1
- package/Libraries/Core/RawEventEmitter.js +38 -0
- package/Libraries/Core/ReactNativeVersion.js +2 -2
- package/Libraries/Core/polyfillPromise.js +32 -0
- package/Libraries/Core/setUpReactDevTools.js +3 -2
- package/Libraries/EventEmitter/NativeEventEmitter.js +3 -3
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +2 -1
- package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +3 -3
- package/Libraries/Events/CustomEvent.js +32 -0
- package/Libraries/Events/EventPolyfill.js +239 -0
- package/Libraries/Image/Image.android.js +0 -6
- package/Libraries/Image/Image.ios.js +0 -6
- package/Libraries/Image/Image.windows.js +2 -8
- package/Libraries/Image/ImageViewNativeComponent.js +18 -3
- package/Libraries/Image/TextInlineImageNativeComponent.js +23 -15
- package/Libraries/Inspector/Inspector.js +2 -4
- package/Libraries/Interaction/BridgeSpyStallHandler.js +4 -3
- package/Libraries/Interaction/InteractionManager.js +1 -12
- package/Libraries/Interaction/TaskQueue.js +5 -4
- package/Libraries/LayoutAnimation/LayoutAnimation.js +13 -0
- package/Libraries/Linking/Linking.js +1 -1
- package/Libraries/Lists/FlatList.js +27 -6
- package/Libraries/Lists/VirtualizedList.js +71 -55
- package/Libraries/Lists/VirtualizedListContext.js +7 -3
- package/Libraries/Lists/VirtualizedSectionList.js +2 -2
- package/Libraries/Lists/__tests__/{FillRateHelper-test.windows.js → FillRateHelper-test.js} +2 -2
- package/Libraries/Lists/__tests__/{FlatList-test.windows.js → FlatList-test.js} +2 -2
- package/Libraries/Lists/__tests__/{SectionList-test.windows.js → SectionList-test.js} +14 -14
- package/Libraries/Lists/__tests__/{VirtualizeUtils-test.windows.js → VirtualizeUtils-test.js} +3 -3
- package/Libraries/Lists/__tests__/{VirtualizedList-test.windows.js → VirtualizedList-test.js} +91 -42
- package/Libraries/Lists/__tests__/{VirtualizedSectionList-test.windows.js → VirtualizedSectionList-test.js} +13 -13
- package/Libraries/LogBox/Data/LogBoxData.js +2 -2
- package/Libraries/LogBox/Data/LogBoxLog.js +1 -1
- package/Libraries/LogBox/Data/LogBoxSymbolication.js +1 -1
- package/Libraries/LogBox/Data/parseLogBoxLog.js +1 -1
- package/Libraries/LogBox/LogBox.js +2 -21
- package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +1 -0
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +2 -1
- package/Libraries/NativeComponent/BaseViewConfig.android.js +295 -0
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +333 -0
- package/Libraries/NativeComponent/BaseViewConfig.windows.js +334 -0
- package/Libraries/NativeComponent/NativeComponentRegistry.js +0 -2
- package/Libraries/NativeComponent/PlatformBaseViewConfig.js +24 -0
- package/Libraries/NativeComponent/StaticViewConfigValidator.js +7 -42
- package/Libraries/NativeComponent/ViewConfig.js +4 -4
- package/Libraries/NativeComponent/ViewConfigIgnore.js +54 -0
- package/Libraries/Network/FormData.js +7 -1
- package/Libraries/Pressability/Pressability.js +115 -46
- package/Libraries/Pressability/Pressability.windows.js +190 -74
- package/Libraries/Pressability/PressabilityDebug.js +5 -9
- package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -0
- package/Libraries/ReactNative/AppContainer.js +1 -1
- package/Libraries/ReactNative/{DummyUIManager.js → BridgelessUIManager.js} +62 -40
- package/Libraries/ReactNative/PaperUIManager.windows.js +5 -5
- package/Libraries/ReactNative/ReactNativeFeatureFlags.js +39 -0
- package/Libraries/ReactNative/UIManager.js +2 -3
- package/Libraries/ReactNative/renderApplication.js +4 -0
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +8 -0
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +5908 -4906
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +2100 -1918
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +2567 -2352
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +5610 -4844
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +1710 -1556
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +1830 -1639
- package/Libraries/Renderer/shims/ReactNativeTypes.js +2 -1
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +2 -1
- package/Libraries/StyleSheet/EdgeInsetsPropType.js +4 -1
- package/Libraries/StyleSheet/StyleSheetTypes.js +59 -66
- package/Libraries/StyleSheet/normalizeColor.js +1 -1
- package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +15 -0
- package/Libraries/StyleSheet/private/_TransformStyle.js +53 -0
- package/Libraries/StyleSheet/processTransform.windows.js +272 -0
- package/Libraries/Text/Text.js +13 -7
- package/Libraries/Text/Text.windows.js +16 -7
- package/Libraries/Text/TextNativeComponent.js +2 -0
- package/Libraries/Text/TextProps.js +10 -0
- package/Libraries/Types/CoreEventTypes.js +13 -1
- package/Libraries/Types/CoreEventTypes.windows.js +26 -1
- package/Libraries/Utilities/Appearance.js +0 -8
- package/Libraries/Utilities/HMRClient.js +1 -1
- package/Libraries/Utilities/ReactNativeTestTools.js +1 -0
- package/Libraries/Utilities/codegenNativeComponent.js +17 -6
- package/Libraries/Utilities/stringifySafe.js +4 -1
- package/Libraries/Utilities/verifyComponentAttributeEquivalence.js +3 -3
- package/Libraries/WebSocket/WebSocket.js +1 -1
- package/Libraries/vendor/emitter/_EmitterSubscription.js +1 -1
- package/Libraries/vendor/emitter/_EventEmitter.js +1 -1
- package/Libraries/vendor/emitter/_EventSubscription.js +1 -1
- package/Microsoft.ReactNative/DynamicReader.cpp +3 -3
- package/Microsoft.ReactNative/Fabric/ComponentView.h +1 -0
- package/Microsoft.ReactNative/Fabric/ComponentViewRegistry.cpp +36 -2
- package/Microsoft.ReactNative/Fabric/ComponentViewRegistry.h +1 -0
- package/Microsoft.ReactNative/Fabric/DWriteHelpers.cpp +19 -0
- package/Microsoft.ReactNative/Fabric/DWriteHelpers.h +13 -0
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +65 -19
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -0
- package/Microsoft.ReactNative/Fabric/ParagraphComponentView.cpp +36 -10
- package/Microsoft.ReactNative/Fabric/ScrollViewComponentView.cpp +2 -0
- package/Microsoft.ReactNative/Fabric/SliderComponentView.cpp +107 -0
- package/Microsoft.ReactNative/Fabric/SliderComponentView.h +51 -0
- package/Microsoft.ReactNative/Fabric/SwitchComponentView.cpp +109 -0
- package/Microsoft.ReactNative/Fabric/SwitchComponentView.h +52 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentDescriptor.h +197 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentView.cpp +308 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentView.h +52 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputEventEmitter.cpp +31 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputEventEmitter.h +33 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputProps.cpp +81 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputProps.h +132 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputShadowNode.cpp +193 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputShadowNode.h +85 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputState.cpp +76 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputState.h +99 -0
- package/Microsoft.ReactNative/Fabric/ViewComponentView.cpp +35 -3
- package/Microsoft.ReactNative/Fabric/ViewComponentView.h +1 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/EventEmitters.h +5 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/Props.h +5 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/slider/SliderMeasurementsManager.cpp +46 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/slider/SliderMeasurementsManager.h +30 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.cpp +2 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/conversions.h +1 -9
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/platform/cxx/react/renderer/graphics/Color.h +3 -1
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +119 -57
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.h +18 -1
- package/Microsoft.ReactNative/IViewManager.idl +3 -3
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +13 -107
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +2 -2
- package/Microsoft.ReactNative/Modules/AppStateModule.cpp +2 -0
- package/Microsoft.ReactNative/Modules/AppStateModule.h +2 -0
- package/Microsoft.ReactNative/Modules/CreateModules.cpp +3 -3
- package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +7 -5
- package/Microsoft.ReactNative/Modules/TimingModule.cpp +2 -2
- package/Microsoft.ReactNative/Modules/TimingModule.h +2 -2
- package/Microsoft.ReactNative/ReactHost/{ReactContext.cpp → MsoReactContext.cpp} +1 -1
- package/Microsoft.ReactNative/ReactHost/{ReactContext.h → MsoReactContext.h} +0 -0
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +14 -1
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
- package/Microsoft.ReactNative/ReactHost/ReactNativeHeaders.h +1 -1
- package/Microsoft.ReactNative/ReactRootView.cpp +2 -1
- package/Microsoft.ReactNative/RedBox.cpp +3 -2
- package/Microsoft.ReactNative/Utils/ValueUtils.cpp +3 -2
- package/Microsoft.ReactNative/Views/ControlViewManager.cpp +32 -0
- package/Microsoft.ReactNative/Views/ControlViewManager.h +11 -0
- package/Microsoft.ReactNative/Views/DevMenu.cpp +2 -2
- package/Microsoft.ReactNative/Views/FrameworkElementTransferProperties.cpp +13 -2
- package/Microsoft.ReactNative/Views/FrameworkElementViewManager.cpp +149 -22
- package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +1 -1
- package/Microsoft.ReactNative/Views/Image/Microsoft.UI.Composition.Effects_Impl.h +5 -11
- package/Microsoft.ReactNative/Views/Image/ReactImage.cpp +2 -1
- package/Microsoft.ReactNative/Views/SliderViewManager.cpp +12 -4
- package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +1 -1
- package/Microsoft.ReactNative/Views/TextViewManager.cpp +2 -2
- package/Microsoft.ReactNative/Views/TouchEventHandler.cpp +163 -37
- package/Microsoft.ReactNative/Views/TouchEventHandler.h +11 -4
- package/Microsoft.ReactNative/Views/ViewPanel.cpp +3 -23
- package/Microsoft.ReactNative/Views/ViewPanel.h +2 -3
- package/Microsoft.ReactNative/Views/ViewViewManager.cpp +21 -0
- package/Microsoft.ReactNative/XamlUIService.cpp +1 -1
- package/Microsoft.ReactNative/XamlView.h +8 -3
- package/Microsoft.ReactNative.Cxx/CppWinRTIncludes.h +3 -5
- package/Microsoft.ReactNative.Cxx/DesktopWindowBridge.h +1 -1
- package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +11 -2
- package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +1 -0
- package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.cpp +10 -1
- package/Microsoft.ReactNative.Cxx/JSValueReader.h +2 -2
- package/Microsoft.ReactNative.Cxx/JSValueWriter.h +5 -5
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +5 -1
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +2 -3
- package/Microsoft.ReactNative.Cxx/NativeModules.h +1 -1
- package/Microsoft.ReactNative.Cxx/ReactContext.h +3 -3
- package/Microsoft.ReactNative.Cxx/ReactNonAbiValue.h +3 -3
- package/Microsoft.ReactNative.Cxx/XamlUtils.h +44 -5
- package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +0 -6
- package/Mso/activeObject/activeObject.h +2 -2
- package/Mso/compilerAdapters/cppMacros.h +3 -5
- package/Mso/errorCode/errorProvider.h +2 -2
- package/Mso/errorCode/maybe.h +4 -4
- package/Mso/functional/functor.h +6 -6
- package/Mso/functional/functorRef.h +2 -2
- package/Mso/future/details/executor.h +2 -2
- package/Mso/future/details/futureFuncInl.h +4 -4
- package/Mso/future/details/ifuture.h +3 -3
- package/Mso/future/details/maybeInvoker.h +6 -6
- package/Mso/future/details/promiseGroupInl.h +4 -4
- package/Mso/future/details/promiseInl.h +4 -4
- package/Mso/future/details/resultTraits.h +4 -4
- package/Mso/future/details/whenAllInl.h +1 -1
- package/Mso/future/future.h +13 -13
- package/Mso/guid/msoGuidDetails.h +1 -1
- package/Mso/memoryApi/memoryApi.h +13 -7
- package/Mso/motifCpp/gTestAdapter.h +1 -1
- package/Mso/motifCpp/testInfo.h +7 -9
- package/Mso/object/make.h +8 -8
- package/Mso/object/objectRefCount.h +3 -5
- package/Mso/object/objectWithWeakRef.h +10 -14
- package/Mso/object/queryCast.h +4 -4
- package/Mso/object/refCountedObject.h +4 -4
- package/Mso/object/unknownObject.h +7 -7
- package/Mso/platformAdapters/windowsFirst.h +1 -1
- package/Mso/smartPtr/cntPtr.h +8 -8
- package/Mso/src/dispatchQueue/uiScheduler_winrt.cpp +2 -2
- package/Mso/src/future/futureImpl.h +1 -1
- package/Mso/src/memoryApi/memoryApi.cpp +4 -4
- package/PropertySheets/CppAppConsumeCSharpModule.props +3 -0
- package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharpApp.props +26 -0
- package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.Common.props +12 -0
- package/PropertySheets/Generated/PackageVersion.g.props +3 -3
- package/PropertySheets/React.Cpp.props +13 -0
- package/PropertySheets/WinUI.props +3 -6
- package/ReactCommon/ReactCommon.vcxproj +2 -4
- package/ReactCommon/ReactCommon.vcxproj.filters +4 -1
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/JSCRuntime.cpp +1480 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/decorator.h +753 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/jsi.h +1331 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +1431 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +103 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +87 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +61 -0
- package/ReactCommon/Yoga.cpp +1 -1
- package/Scripts/{Microsoft.ReactNative.ProjectReunion.nuspec → Microsoft.ReactNative.WindowsAppSDK.nuspec} +7 -9
- package/Scripts/OfficeReact.Win32.nuspec +1 -3
- package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +2 -1
- package/Scripts/copyRNLibraries.js +8 -8
- package/Scripts/just.js +1 -1
- package/Scripts/rnw-dependencies.ps1 +41 -10
- package/Scripts/run-desktop-integration-tests.js +6 -6
- package/Shared/AbiSafe.h +3 -3
- package/Shared/BaseScriptStoreImpl.cpp +1 -1
- package/Shared/CppRuntimeOptions.h +50 -0
- package/Shared/DevSupportManager.cpp +32 -36
- package/Shared/DevSupportManager.h +1 -2
- package/Shared/HermesRuntimeHolder.cpp +23 -14
- package/Shared/HermesRuntimeHolder.h +8 -2
- package/Shared/IDevSupportManager.h +1 -2
- package/Shared/InspectorPackagerConnection.cpp +7 -5
- package/Shared/InspectorPackagerConnection.h +2 -2
- package/Shared/JSI/ChakraApi.cpp +0 -1
- package/Shared/JSI/ChakraRuntime.cpp +1 -2
- package/Shared/JSI/RuntimeHolder.h +2 -0
- package/Shared/Modules/HttpModule.cpp +1 -1
- package/Shared/Modules/HttpModule.h +2 -2
- package/Shared/Modules/WebSocketModule.cpp +1 -1
- package/Shared/Modules/WebSocketModule.h +8 -5
- package/Shared/{IHttpResource.h → Networking/IHttpResource.h} +4 -4
- package/Shared/{IWebSocketResource.h → Networking/IWebSocketResource.h} +2 -2
- package/Shared/Networking/OriginPolicy.h +15 -0
- package/Shared/Networking/OriginPolicyHttpFilter.cpp +746 -0
- package/Shared/Networking/OriginPolicyHttpFilter.h +112 -0
- package/Shared/{WinRTHttpResource.cpp → Networking/WinRTHttpResource.cpp} +129 -99
- package/Shared/{WinRTHttpResource.h → Networking/WinRTHttpResource.h} +8 -12
- package/Shared/Networking/WinRTTypes.h +30 -0
- package/Shared/{WinRTWebSocketResource.cpp → Networking/WinRTWebSocketResource.cpp} +2 -2
- package/Shared/{WinRTWebSocketResource.h → Networking/WinRTWebSocketResource.h} +3 -3
- package/Shared/OInstance.cpp +5 -5
- package/Shared/RuntimeOptions.cpp +93 -15
- package/Shared/RuntimeOptions.h +22 -9
- package/Shared/Shared.vcxitems +122 -7
- package/Shared/Shared.vcxitems.filters +40 -21
- package/Shared/Threading/BatchingQueueThread.cpp +1 -1
- package/Shared/tracing/fbsystrace.h +2 -2
- package/codegen/NativeActionSheetManagerSpec.g.h +6 -0
- package/codegen/NativeAnimatedModuleSpec.g.h +43 -37
- package/codegen/NativeAnimatedTurboModuleSpec.g.h +43 -37
- package/codegen/NativePushNotificationManagerIOSSpec.g.h +2 -0
- package/codegen/react/components/rnwcore/ComponentDescriptors.h +0 -1
- package/codegen/react/components/rnwcore/EventEmitters.cpp +133 -0
- package/codegen/react/components/rnwcore/EventEmitters.h +0 -18
- package/codegen/react/components/rnwcore/Props.cpp +0 -13
- package/codegen/react/components/rnwcore/Props.h +0 -16
- package/codegen/react/components/rnwcore/ShadowNodes.cpp +0 -1
- package/codegen/react/components/rnwcore/ShadowNodes.h +0 -10
- package/include/Shared/cdebug.h +9 -9
- package/index.js +30 -25
- package/index.windows.js +30 -25
- package/jest/preprocessor.js +24 -107
- package/jest/preprocessor_DO_NOT_USE.js +122 -0
- package/metro.config.js +3 -70
- package/package.json +29 -28
- package/react-native.config.js +40 -6
- package/rntypes/index.d.ts +19 -7
- package/stubs/glog/logging.h +1 -1
- package/template/cpp-app/src/App.h +0 -4
- package/template/cs-app/src/App.xaml.cs +0 -5
- package/template/cs-app/src/MainPage.xaml.cs +1 -10
- package/template/cs-app-WinAppSDK/MyApp/App.xaml +16 -0
- package/template/cs-app-WinAppSDK/MyApp/App.xaml.cs +70 -0
- package/template/cs-app-WinAppSDK/MyApp/MainWindow.xaml +14 -0
- package/template/cs-app-WinAppSDK/MyApp/MainWindow.xaml.cs +38 -0
- package/template/cs-app-WinAppSDK/MyApp/Package.appxmanifest +48 -0
- package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-arm64.pubxml +19 -0
- package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-x64.pubxml +19 -0
- package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-x86.pubxml +19 -0
- package/template/cs-app-WinAppSDK/MyApp/Properties/launchSettings.json +10 -0
- package/template/cs-app-WinAppSDK/MyApp/app.manifest +15 -0
- package/template/cs-app-WinAppSDK/proj/ExperimentalFeatures.props +23 -0
- package/template/cs-app-WinAppSDK/proj/MyApp.csproj +49 -0
- package/template/cs-app-WinAppSDK/proj/MyApp.sln +43 -0
- package/template/cs-app-WinAppSDK/proj/NuGet.Config +17 -0
- package/template/metro.devMode.config.js +2 -51
- package/typings-index.js +5 -1
- package/typings-index.js.map +1 -1
- package/Libraries/Components/SegmentedControlIOS/RCTSegmentedControlNativeComponent.js +0 -44
- package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.android.js +0 -45
- package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.ios.js +0 -123
- package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.windows.js +0 -45
- package/Libraries/Components/View/ReactNativeViewViewConfig.js +0 -360
- package/Libraries/Components/View/ReactNativeViewViewConfig.windows.js +0 -390
- package/Libraries/Components/View/ReactNativeViewViewConfigAndroid.js +0 -83
- package/Libraries/ReactNative/UIManagerInjection.js +0 -15
- package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +0 -24527
- package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +0 -8309
- package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +0 -8961
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +0 -24948
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +0 -8400
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +0 -9049
- package/PropertySheets/CppEnablePackageReferences.props +0 -13
- package/Shared/cdebug.cpp +0 -6
- package/include/Shared/ViewManager.h +0 -34
|
@@ -28,7 +28,7 @@ class ErrorProvider final : public IErrorProvider {
|
|
|
28
28
|
ErrorCode MakeErrorCode(const T &errorInfo) const noexcept;
|
|
29
29
|
|
|
30
30
|
template <class TValue, class... TArgs>
|
|
31
|
-
Maybe<TValue> MakeMaybe(TArgs &&...
|
|
31
|
+
Maybe<TValue> MakeMaybe(TArgs &&...errorArgs) const noexcept;
|
|
32
32
|
|
|
33
33
|
// TODO: deprecate this method in favor of TryGetErrorInfo
|
|
34
34
|
bool IsOwnedErrorCode(const ErrorCode &errorCode) const noexcept;
|
|
@@ -87,7 +87,7 @@ ErrorCode ErrorProvider<T, GuidToken>::MakeErrorCode(const T &errorInfo) const n
|
|
|
87
87
|
|
|
88
88
|
template <class T, class GuidToken>
|
|
89
89
|
template <class TValue, class... TArgs>
|
|
90
|
-
Maybe<TValue> ErrorProvider<T, GuidToken>::MakeMaybe(TArgs &&...
|
|
90
|
+
Maybe<TValue> ErrorProvider<T, GuidToken>::MakeMaybe(TArgs &&...errorArgs) const noexcept {
|
|
91
91
|
return Mso::Maybe<TValue>(MakeErrorCode(T(std::forward<TArgs>(errorArgs)...)));
|
|
92
92
|
}
|
|
93
93
|
|
package/Mso/errorCode/maybe.h
CHANGED
|
@@ -46,14 +46,14 @@ class Maybe {
|
|
|
46
46
|
_Allow_implicit_ctor_ Maybe(T &&value) noexcept;
|
|
47
47
|
|
|
48
48
|
template <class... TArgs>
|
|
49
|
-
explicit Maybe(InPlaceTag, TArgs &&...
|
|
49
|
+
explicit Maybe(InPlaceTag, TArgs &&...args) noexcept;
|
|
50
50
|
|
|
51
51
|
template <
|
|
52
52
|
class TItem,
|
|
53
53
|
class... TArgs,
|
|
54
54
|
class TDummy =
|
|
55
55
|
typename std::enable_if<std::is_constructible<T, std::initializer_list<TItem> &, TArgs &&...>::value>::type>
|
|
56
|
-
explicit Maybe(InPlaceTag, std::initializer_list<TItem> il, TArgs &&...
|
|
56
|
+
explicit Maybe(InPlaceTag, std::initializer_list<TItem> il, TArgs &&...args) noexcept;
|
|
57
57
|
|
|
58
58
|
_Allow_implicit_ctor_ Maybe(const ErrorCode &error) noexcept;
|
|
59
59
|
_Allow_implicit_ctor_ Maybe(ErrorCode &&error) noexcept;
|
|
@@ -163,13 +163,13 @@ Maybe<T>::Maybe(T &&value) noexcept {
|
|
|
163
163
|
|
|
164
164
|
template <class T>
|
|
165
165
|
template <class... TArgs>
|
|
166
|
-
Maybe<T>::Maybe(InPlaceTag, TArgs &&...
|
|
166
|
+
Maybe<T>::Maybe(InPlaceTag, TArgs &&...args) noexcept {
|
|
167
167
|
::new (reinterpret_cast<T *>(&reinterpret_cast<char &>(m_value))) T(std::forward<TArgs>(args)...);
|
|
168
168
|
}
|
|
169
169
|
|
|
170
170
|
template <class T>
|
|
171
171
|
template <class TItem, class... TArgs, class TDummy>
|
|
172
|
-
Maybe<T>::Maybe(InPlaceTag, std::initializer_list<TItem> il, TArgs &&...
|
|
172
|
+
Maybe<T>::Maybe(InPlaceTag, std::initializer_list<TItem> il, TArgs &&...args) noexcept {
|
|
173
173
|
::new (reinterpret_cast<T *>(&reinterpret_cast<char &>(m_value))) T(il, std::forward<TArgs>(args)...);
|
|
174
174
|
}
|
|
175
175
|
|
package/Mso/functional/functor.h
CHANGED
|
@@ -161,7 +161,7 @@ class FunctionObjectWrapper final
|
|
|
161
161
|
template <typename T>
|
|
162
162
|
FunctionObjectWrapper(T &&func) noexcept : m_func(std::forward<T>(func)) {}
|
|
163
163
|
|
|
164
|
-
virtual TResult Invoke(TArgs &&...
|
|
164
|
+
virtual TResult Invoke(TArgs &&...args) noexcept override {
|
|
165
165
|
return m_func(std::forward<TArgs>(args)...);
|
|
166
166
|
}
|
|
167
167
|
|
|
@@ -180,7 +180,7 @@ class FunctionObjectWrapperThrow final
|
|
|
180
180
|
template <typename T>
|
|
181
181
|
FunctionObjectWrapperThrow(T &&func) noexcept : m_func(std::forward<T>(func)) {}
|
|
182
182
|
|
|
183
|
-
virtual TResult Invoke(TArgs &&...
|
|
183
|
+
virtual TResult Invoke(TArgs &&...args) override {
|
|
184
184
|
return m_func(std::forward<TArgs>(args)...);
|
|
185
185
|
}
|
|
186
186
|
|
|
@@ -199,7 +199,7 @@ class FunctionPointerWrapper final : public ConstexprFunctorBase<Mso::IFunctor<T
|
|
|
199
199
|
public:
|
|
200
200
|
constexpr FunctionPointerWrapper(TFunc func) noexcept : m_func(func) {}
|
|
201
201
|
|
|
202
|
-
TResult Invoke(TArgs &&...
|
|
202
|
+
TResult Invoke(TArgs &&...args) noexcept override {
|
|
203
203
|
return (*m_func)(std::forward<TArgs>(args)...);
|
|
204
204
|
}
|
|
205
205
|
|
|
@@ -216,7 +216,7 @@ class FunctionPointerWrapperThrow final : public ConstexprFunctorBase<Mso::IFunc
|
|
|
216
216
|
public:
|
|
217
217
|
constexpr FunctionPointerWrapperThrow(TFunc func) noexcept : m_func(func) {}
|
|
218
218
|
|
|
219
|
-
TResult Invoke(TArgs &&...
|
|
219
|
+
TResult Invoke(TArgs &&...args) override {
|
|
220
220
|
return (*m_func)(std::forward<TArgs>(args)...);
|
|
221
221
|
}
|
|
222
222
|
|
|
@@ -234,7 +234,7 @@ class StatelessFunctorWrapper final : public ConstexprFunctorBase<Mso::IFunctor<
|
|
|
234
234
|
public:
|
|
235
235
|
constexpr StatelessFunctorWrapper(TFunc &func) noexcept : m_func(func) {}
|
|
236
236
|
|
|
237
|
-
TResult Invoke(TArgs &&...
|
|
237
|
+
TResult Invoke(TArgs &&...args) noexcept override {
|
|
238
238
|
return m_func(std::forward<TArgs>(args)...);
|
|
239
239
|
}
|
|
240
240
|
|
|
@@ -248,7 +248,7 @@ class StatelessFunctorWrapperThrow final : public ConstexprFunctorBase<Mso::IFun
|
|
|
248
248
|
public:
|
|
249
249
|
constexpr StatelessFunctorWrapperThrow(TFunc &func) noexcept : m_func(func) {}
|
|
250
250
|
|
|
251
|
-
TResult Invoke(TArgs &&...
|
|
251
|
+
TResult Invoke(TArgs &&...args) override {
|
|
252
252
|
return m_func(std::forward<TArgs>(args)...);
|
|
253
253
|
}
|
|
254
254
|
|
|
@@ -178,7 +178,7 @@ class FunctorRef<TResult(TArgs...)>
|
|
|
178
178
|
FunctorRefWrapper &operator=(FunctorRefWrapper const &) = delete;
|
|
179
179
|
~FunctorRefWrapper() = delete;
|
|
180
180
|
|
|
181
|
-
TResult Invoke(TArgs &&...
|
|
181
|
+
TResult Invoke(TArgs &&...args) const noexcept override {
|
|
182
182
|
// If you see OACR warning "Nothrow Func Throws" here then it means that the
|
|
183
183
|
// provided lambda or function object's operator() are not marked as noexcept.
|
|
184
184
|
|
|
@@ -269,7 +269,7 @@ class FunctorRefThrow<TResult(TArgs...)> final {
|
|
|
269
269
|
FunctorRefThrowWrapper &operator=(FunctorRefThrowWrapper const &) = delete;
|
|
270
270
|
~FunctorRefThrowWrapper() = delete;
|
|
271
271
|
|
|
272
|
-
TResult Invoke(TArgs &&...
|
|
272
|
+
TResult Invoke(TArgs &&...args) const override {
|
|
273
273
|
OACR_POSSIBLE_THROW;
|
|
274
274
|
// We use const_cast to enable support for mutable lambdas
|
|
275
275
|
return (*const_cast<FunctorRefThrowWrapper *>(this)->m_func)(std::forward<TArgs>(args)...);
|
|
@@ -197,7 +197,7 @@ namespace Internal {
|
|
|
197
197
|
|
|
198
198
|
struct ExecutorInvoker {
|
|
199
199
|
template <class TCallback, class... TArgs>
|
|
200
|
-
auto Invoke(TCallback &&callback, TArgs &&...
|
|
200
|
+
auto Invoke(TCallback &&callback, TArgs &&...args) noexcept -> decltype(callback(std::forward<TArgs>(args)...)) {
|
|
201
201
|
UNREFERENCED_OACR(this);
|
|
202
202
|
static_assert(noexcept(callback(std::forward<TArgs>(args)...)), "Callback must not throw.");
|
|
203
203
|
return callback(std::forward<TArgs>(args)...);
|
|
@@ -209,7 +209,7 @@ struct ThrowingExecutor : TBaseExecutor {
|
|
|
209
209
|
using TBaseExecutor::TBaseExecutor;
|
|
210
210
|
|
|
211
211
|
template <class TCallback, class... TArgs>
|
|
212
|
-
auto Invoke(TCallback &&callback, TArgs &&...
|
|
212
|
+
auto Invoke(TCallback &&callback, TArgs &&...args) noexcept {
|
|
213
213
|
using TResult = decltype(callback(std::forward<TArgs>(args)...));
|
|
214
214
|
constexpr const bool isNoExcept = noexcept(callback(std::forward<TArgs>(args)...));
|
|
215
215
|
return Mso::Futures::MaybeInvoker<TResult, isNoExcept>::Invoke(
|
|
@@ -32,14 +32,14 @@ inline Future<void> MakeCompletedFuture() noexcept {
|
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
template <class T, class... TArgs>
|
|
35
|
-
inline Future<T> MakeCompletedFutureEmplaced(TArgs &&...
|
|
35
|
+
inline Future<T> MakeCompletedFutureEmplaced(TArgs &&...args) noexcept {
|
|
36
36
|
Promise<T> promise;
|
|
37
37
|
promise.EmplaceValue(std::forward<TArgs>(args)...);
|
|
38
38
|
return promise.AsFuture();
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
template <class T, class U, class... TArgs>
|
|
42
|
-
inline Future<T> MakeCompletedFutureEmplaced(std::initializer_list<U> il, TArgs &&...
|
|
42
|
+
inline Future<T> MakeCompletedFutureEmplaced(std::initializer_list<U> il, TArgs &&...args) noexcept {
|
|
43
43
|
Promise<T> promise;
|
|
44
44
|
promise.EmplaceValue(il, std::forward<TArgs>(args)...);
|
|
45
45
|
return promise.AsFuture();
|
|
@@ -59,14 +59,14 @@ inline Future<void> MakeSucceededFuture() noexcept {
|
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
template <class T, class... TArgs>
|
|
62
|
-
inline Future<T> MakeSucceededFutureEmplaced(TArgs &&...
|
|
62
|
+
inline Future<T> MakeSucceededFutureEmplaced(TArgs &&...args) noexcept {
|
|
63
63
|
Promise<T> promise;
|
|
64
64
|
promise.EmplaceValue(std::forward<TArgs>(args)...);
|
|
65
65
|
return promise.AsFuture();
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
template <class T, class U, class... TArgs>
|
|
69
|
-
inline Future<T> MakeSucceededFutureEmplaced(std::initializer_list<U> il, TArgs &&...
|
|
69
|
+
inline Future<T> MakeSucceededFutureEmplaced(std::initializer_list<U> il, TArgs &&...args) noexcept {
|
|
70
70
|
Promise<T> promise;
|
|
71
71
|
promise.EmplaceValue(il, std::forward<TArgs>(args)...);
|
|
72
72
|
return promise.AsFuture();
|
|
@@ -70,7 +70,7 @@ struct IFuture : IUnknown {
|
|
|
70
70
|
virtual void AddContinuation(Mso::CntPtr<IFuture> &&continuation) noexcept = 0;
|
|
71
71
|
|
|
72
72
|
_Success_(
|
|
73
|
-
return
|
|
73
|
+
return) virtual bool TryStartSetValue(_Out_ ByteArrayView &valueBuffer, bool crashIfFailed = false) noexcept = 0;
|
|
74
74
|
virtual void Post() noexcept = 0;
|
|
75
75
|
virtual void StartAwaiting() noexcept = 0;
|
|
76
76
|
virtual bool TrySetSuccess(bool crashIfFailed = false) noexcept = 0;
|
|
@@ -81,7 +81,7 @@ struct IFuture : IUnknown {
|
|
|
81
81
|
virtual bool IsFailed() const noexcept = 0;
|
|
82
82
|
|
|
83
83
|
template <class T, class... TArgs>
|
|
84
|
-
void SetValue(TArgs &&...
|
|
84
|
+
void SetValue(TArgs &&...args) noexcept {
|
|
85
85
|
ByteArrayView valueBuffer;
|
|
86
86
|
(void)TryStartSetValue(/*ref*/ valueBuffer, /*crashIfFailed:*/ true);
|
|
87
87
|
::new (valueBuffer.VoidDataChecked(sizeof(T))) T(std::forward<TArgs>(args)...);
|
|
@@ -89,7 +89,7 @@ struct IFuture : IUnknown {
|
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
template <class T, class... TArgs>
|
|
92
|
-
bool TrySetValue(TArgs &&...
|
|
92
|
+
bool TrySetValue(TArgs &&...args) noexcept {
|
|
93
93
|
ByteArrayView valueBuffer;
|
|
94
94
|
if (TryStartSetValue(/*ref*/ valueBuffer)) {
|
|
95
95
|
::new (valueBuffer.VoidDataChecked(sizeof(T))) T(std::forward<TArgs>(args)...);
|
|
@@ -15,7 +15,7 @@ namespace Mso::Futures {
|
|
|
15
15
|
template <class TResult, bool isNoExcept>
|
|
16
16
|
struct MaybeInvoker {
|
|
17
17
|
template <class TCallback, class... TArgs>
|
|
18
|
-
static auto Invoke(TCallback &&callback, TArgs &&...
|
|
18
|
+
static auto Invoke(TCallback &&callback, TArgs &&...args) noexcept {
|
|
19
19
|
OACR_WARNING_SUPPRESS(UNNECESSARY_TRY_CATCH, "Here we only execute lambdas that have no noexcept");
|
|
20
20
|
try {
|
|
21
21
|
return Mso::Maybe<TResult>(callback(std::forward<TArgs>(args)...));
|
|
@@ -29,7 +29,7 @@ struct MaybeInvoker {
|
|
|
29
29
|
template <class TResult>
|
|
30
30
|
struct MaybeInvoker<TResult, /*isNoExcept:*/ true> {
|
|
31
31
|
template <class TCallback, class... TArgs>
|
|
32
|
-
static auto Invoke(TCallback &&callback, TArgs &&...
|
|
32
|
+
static auto Invoke(TCallback &&callback, TArgs &&...args) noexcept {
|
|
33
33
|
return Mso::Maybe<TResult>(callback(std::forward<TArgs>(args)...));
|
|
34
34
|
}
|
|
35
35
|
};
|
|
@@ -38,7 +38,7 @@ struct MaybeInvoker<TResult, /*isNoExcept:*/ true> {
|
|
|
38
38
|
template <>
|
|
39
39
|
struct MaybeInvoker<void, /*isNoExcept:*/ false> {
|
|
40
40
|
template <class TCallback, class... TArgs>
|
|
41
|
-
static auto Invoke(TCallback &&callback, TArgs &&...
|
|
41
|
+
static auto Invoke(TCallback &&callback, TArgs &&...args) noexcept {
|
|
42
42
|
OACR_WARNING_SUPPRESS(UNNECESSARY_TRY_CATCH, "Here we only execute lambdas that have no noexcept");
|
|
43
43
|
try {
|
|
44
44
|
callback(std::forward<TArgs>(args)...);
|
|
@@ -53,7 +53,7 @@ struct MaybeInvoker<void, /*isNoExcept:*/ false> {
|
|
|
53
53
|
template <>
|
|
54
54
|
struct MaybeInvoker<void, /*isNoExcept:*/ true> {
|
|
55
55
|
template <class TCallback, class... TArgs>
|
|
56
|
-
static auto Invoke(TCallback &&callback, TArgs &&...
|
|
56
|
+
static auto Invoke(TCallback &&callback, TArgs &&...args) noexcept {
|
|
57
57
|
callback(std::forward<TArgs>(args)...);
|
|
58
58
|
return Mso::Maybe<void>();
|
|
59
59
|
}
|
|
@@ -63,7 +63,7 @@ struct MaybeInvoker<void, /*isNoExcept:*/ true> {
|
|
|
63
63
|
template <class T>
|
|
64
64
|
struct MaybeInvoker<Mso::Maybe<T>, /*isNoExcept:*/ false> {
|
|
65
65
|
template <class TCallback, class... TArgs>
|
|
66
|
-
static auto Invoke(TCallback &&callback, TArgs &&...
|
|
66
|
+
static auto Invoke(TCallback &&callback, TArgs &&...args) noexcept {
|
|
67
67
|
OACR_WARNING_SUPPRESS(UNNECESSARY_TRY_CATCH, "Here we only execute lambdas that have no noexcept");
|
|
68
68
|
try {
|
|
69
69
|
return callback(std::forward<TArgs>(args)...);
|
|
@@ -77,7 +77,7 @@ struct MaybeInvoker<Mso::Maybe<T>, /*isNoExcept:*/ false> {
|
|
|
77
77
|
template <class T>
|
|
78
78
|
struct MaybeInvoker<Mso::Maybe<T>, /*isNoExcept:*/ true> {
|
|
79
79
|
template <class TCallback, class... TArgs>
|
|
80
|
-
static auto Invoke(TCallback &&callback, TArgs &&...
|
|
80
|
+
static auto Invoke(TCallback &&callback, TArgs &&...args) noexcept {
|
|
81
81
|
return callback(std::forward<TArgs>(args)...);
|
|
82
82
|
}
|
|
83
83
|
};
|
|
@@ -103,28 +103,28 @@ inline bool PromiseGroup<T>::TrySetValue(T &&value) const noexcept {
|
|
|
103
103
|
|
|
104
104
|
template <class T>
|
|
105
105
|
template <class... TArgs>
|
|
106
|
-
inline void PromiseGroup<T>::EmplaceValue(TArgs &&...
|
|
106
|
+
inline void PromiseGroup<T>::EmplaceValue(TArgs &&...args) const noexcept {
|
|
107
107
|
VerifyElseCrashSzTag(!m_state.IsEmpty(), "State is empty.", 0x0150d40b /* tag_bunql */);
|
|
108
108
|
m_state->SetValue<T>(std::forward<TArgs>(args)...);
|
|
109
109
|
}
|
|
110
110
|
|
|
111
111
|
template <class T>
|
|
112
112
|
template <class TArg, class... TArgs>
|
|
113
|
-
inline void PromiseGroup<T>::EmplaceValue(std::initializer_list<TArg> init, TArgs &&...
|
|
113
|
+
inline void PromiseGroup<T>::EmplaceValue(std::initializer_list<TArg> init, TArgs &&...args) const noexcept {
|
|
114
114
|
VerifyElseCrashSzTag(!m_state.IsEmpty(), "State is empty.", 0x0150d40c /* tag_bunqm */);
|
|
115
115
|
m_state->SetValue<T>(init, std::forward<TArgs>(args)...);
|
|
116
116
|
}
|
|
117
117
|
|
|
118
118
|
template <class T>
|
|
119
119
|
template <class... TArgs>
|
|
120
|
-
inline bool PromiseGroup<T>::TryEmplaceValue(TArgs &&...
|
|
120
|
+
inline bool PromiseGroup<T>::TryEmplaceValue(TArgs &&...args) const noexcept {
|
|
121
121
|
VerifyElseCrashSzTag(!m_state.IsEmpty(), "State is empty.", 0x0150d40d /* tag_bunqn */);
|
|
122
122
|
return m_state->TrySetValue<T>(std::forward<TArgs>(args)...);
|
|
123
123
|
}
|
|
124
124
|
|
|
125
125
|
template <class T>
|
|
126
126
|
template <class TArg, class... TArgs>
|
|
127
|
-
inline bool PromiseGroup<T>::TryEmplaceValue(std::initializer_list<TArg> init, TArgs &&...
|
|
127
|
+
inline bool PromiseGroup<T>::TryEmplaceValue(std::initializer_list<TArg> init, TArgs &&...args) const noexcept {
|
|
128
128
|
VerifyElseCrashSzTag(!m_state.IsEmpty(), "State is empty.", 0x0150d40e /* tag_bunqo */);
|
|
129
129
|
return m_state->TrySetValue<T>(init, std::forward<TArgs>(args)...);
|
|
130
130
|
}
|
|
@@ -132,28 +132,28 @@ inline bool Promise<T>::TrySetValue(Mso::Maybe<T> &&value) const noexcept {
|
|
|
132
132
|
|
|
133
133
|
template <class T>
|
|
134
134
|
template <class... TArgs>
|
|
135
|
-
inline void Promise<T>::EmplaceValue(TArgs &&...
|
|
135
|
+
inline void Promise<T>::EmplaceValue(TArgs &&...args) const noexcept {
|
|
136
136
|
VerifyElseCrashSzTag(!m_state.IsEmpty(), "State is empty.", 0x012ca405 /* tag_blkqf */);
|
|
137
137
|
this->m_state->template SetValue<T>(std::forward<TArgs>(args)...);
|
|
138
138
|
}
|
|
139
139
|
|
|
140
140
|
template <class T>
|
|
141
141
|
template <class TArg, class... TArgs>
|
|
142
|
-
inline void Promise<T>::EmplaceValue(std::initializer_list<TArg> init, TArgs &&...
|
|
142
|
+
inline void Promise<T>::EmplaceValue(std::initializer_list<TArg> init, TArgs &&...args) const noexcept {
|
|
143
143
|
VerifyElseCrashSzTag(!m_state.IsEmpty(), "State is empty.", 0x016056ce /* tag_byf1o */);
|
|
144
144
|
m_state->SetValue<T>(init, std::forward<TArgs>(args)...);
|
|
145
145
|
}
|
|
146
146
|
|
|
147
147
|
template <class T>
|
|
148
148
|
template <class... TArgs>
|
|
149
|
-
inline bool Promise<T>::TryEmplaceValue(TArgs &&...
|
|
149
|
+
inline bool Promise<T>::TryEmplaceValue(TArgs &&...args) const noexcept {
|
|
150
150
|
VerifyElseCrashSzTag(!m_state.IsEmpty(), "State is empty.", 0x012ca406 /* tag_blkqg */);
|
|
151
151
|
return m_state->TrySetValue<T>(std::forward<TArgs>(args)...);
|
|
152
152
|
}
|
|
153
153
|
|
|
154
154
|
template <class T>
|
|
155
155
|
template <class TArg, class... TArgs>
|
|
156
|
-
inline bool Promise<T>::TryEmplaceValue(std::initializer_list<TArg> init, TArgs &&...
|
|
156
|
+
inline bool Promise<T>::TryEmplaceValue(std::initializer_list<TArg> init, TArgs &&...args) const noexcept {
|
|
157
157
|
VerifyElseCrashSzTag(!m_state.IsEmpty(), "State is empty.", 0x016056cf /* tag_byf1p */);
|
|
158
158
|
return m_state->TrySetValue<T>(init, std::forward<TArgs>(args)...);
|
|
159
159
|
}
|
|
@@ -75,8 +75,8 @@ template <class TFutureValue, class TExecutor, class TCallback>
|
|
|
75
75
|
struct GetResultTraits<TFutureValue, TExecutor, TCallback, CallbackArgKind::Maybe> {
|
|
76
76
|
using Type = ResultTraits<
|
|
77
77
|
TFutureValue,
|
|
78
|
-
decltype(
|
|
79
|
-
|
|
78
|
+
decltype(std::declval<TExecutor>()
|
|
79
|
+
.Invoke(std::declval<TCallback>(), std::declval<Mso::Maybe<TFutureValue> &&>()))>;
|
|
80
80
|
static_assert(
|
|
81
81
|
noexcept(
|
|
82
82
|
std::declval<TExecutor>().Invoke(std::declval<TCallback>(), std::declval<Mso::Maybe<TFutureValue> &&>())),
|
|
@@ -87,8 +87,8 @@ template <class TFutureValue, class TExecutor, class TCallback>
|
|
|
87
87
|
struct GetResultTraits<TFutureValue, TExecutor, TCallback, CallbackArgKind::MaybeRef> {
|
|
88
88
|
using Type = ResultTraits<
|
|
89
89
|
TFutureValue,
|
|
90
|
-
decltype(
|
|
91
|
-
|
|
90
|
+
decltype(std::declval<TExecutor>()
|
|
91
|
+
.Invoke(std::declval<TCallback>(), std::declval<Mso::Maybe<TFutureValue> &>()))>;
|
|
92
92
|
static_assert(
|
|
93
93
|
noexcept(std::declval<TExecutor>().Invoke(std::declval<TCallback>(), std::declval<Mso::Maybe<TFutureValue> &>())),
|
|
94
94
|
"Executor's Invoke method must not throw");
|
|
@@ -289,7 +289,7 @@ inline Future<void> WhenAll(Future<void> (&futures)[size]) noexcept {
|
|
|
289
289
|
}
|
|
290
290
|
|
|
291
291
|
template <class T0, class... Ts>
|
|
292
|
-
Future<std::tuple<T0, Ts...>> WhenAll(const Future<T0> &future0, const Future<Ts> &...
|
|
292
|
+
Future<std::tuple<T0, Ts...>> WhenAll(const Future<T0> &future0, const Future<Ts> &...futures) noexcept {
|
|
293
293
|
using ResultType = std::tuple<T0, Ts...>;
|
|
294
294
|
using TaskType = Mso::Futures::WhenAllFutureTask<void>;
|
|
295
295
|
const size_t taskSize = TaskType::GetTaskSize(1 + sizeof...(Ts));
|
package/Mso/future/future.h
CHANGED
|
@@ -86,11 +86,11 @@ Future<void> MakeCompletedFuture() noexcept;
|
|
|
86
86
|
|
|
87
87
|
//! Create an instance of completed Mso::Future<T> from a value created in-place.
|
|
88
88
|
template <class T, class... TArgs>
|
|
89
|
-
Future<T> MakeCompletedFutureEmplaced(TArgs &&...
|
|
89
|
+
Future<T> MakeCompletedFutureEmplaced(TArgs &&...args) noexcept;
|
|
90
90
|
|
|
91
91
|
//! Create an instance of completed Mso::Future<T> from a value created in-place.
|
|
92
92
|
template <class T, class U, class... TArgs>
|
|
93
|
-
Future<T> MakeCompletedFutureEmplaced(std::initializer_list<U> il, TArgs &&...
|
|
93
|
+
Future<T> MakeCompletedFutureEmplaced(std::initializer_list<U> il, TArgs &&...args) noexcept;
|
|
94
94
|
|
|
95
95
|
//! Create an instance of succeeded Mso::Future<T> from a provided value.
|
|
96
96
|
template <class T>
|
|
@@ -101,11 +101,11 @@ Future<void> MakeSucceededFuture() noexcept;
|
|
|
101
101
|
|
|
102
102
|
//! Create an instance of completed Mso::Future<T> from a value created in-place.
|
|
103
103
|
template <class T, class... TArgs>
|
|
104
|
-
Future<T> MakeSucceededFutureEmplaced(TArgs &&...
|
|
104
|
+
Future<T> MakeSucceededFutureEmplaced(TArgs &&...args) noexcept;
|
|
105
105
|
|
|
106
106
|
//! Create an instance of completed Mso::Future<T> from a value created in-place.
|
|
107
107
|
template <class T, class U, class... TArgs>
|
|
108
|
-
Future<T> MakeSucceededFutureEmplaced(std::initializer_list<U> il, TArgs &&...
|
|
108
|
+
Future<T> MakeSucceededFutureEmplaced(std::initializer_list<U> il, TArgs &&...args) noexcept;
|
|
109
109
|
|
|
110
110
|
//! Create an instance of Mso::Future<T> with error code.
|
|
111
111
|
template <class T>
|
|
@@ -169,7 +169,7 @@ LIBLET_PUBLICAPI Future<void> WhenAll(const std::vector<Future<void>> &futures)
|
|
|
169
169
|
//! Each future may have its own return type.
|
|
170
170
|
//! Returns Future<std::tuple<Ts...>>.
|
|
171
171
|
template <class T0, class... Ts>
|
|
172
|
-
Future<std::tuple<T0, Ts...>> WhenAll(const Future<T0> &future0, const Future<Ts> &...
|
|
172
|
+
Future<std::tuple<T0, Ts...>> WhenAll(const Future<T0> &future0, const Future<Ts> &...futures) noexcept;
|
|
173
173
|
|
|
174
174
|
//=============================================================================
|
|
175
175
|
// Mso::WhenAny overloads.
|
|
@@ -315,19 +315,19 @@ struct Promise {
|
|
|
315
315
|
|
|
316
316
|
/// Sets the value in-place and completes the Promise. It can be called only once. Otherwise it crashes the app.
|
|
317
317
|
template <class... TArgs>
|
|
318
|
-
void EmplaceValue(TArgs &&...
|
|
318
|
+
void EmplaceValue(TArgs &&...args) const noexcept;
|
|
319
319
|
|
|
320
320
|
/// Sets the value in-place and completes the PromiseGroup. It can be called only once. Otherwise it VECs.
|
|
321
321
|
template <class TArg, class... TArgs>
|
|
322
|
-
void EmplaceValue(std::initializer_list<TArg> init, TArgs &&...
|
|
322
|
+
void EmplaceValue(std::initializer_list<TArg> init, TArgs &&...args) const noexcept;
|
|
323
323
|
|
|
324
324
|
/// Tries to set the value in-place if Promise is not completed or abandoned yet. Returns true on success.
|
|
325
325
|
template <class... TArgs>
|
|
326
|
-
bool TryEmplaceValue(TArgs &&...
|
|
326
|
+
bool TryEmplaceValue(TArgs &&...args) const noexcept;
|
|
327
327
|
|
|
328
328
|
/// Tries to set the value in-place if PromiseGroup is not completed or abandoned yet. Returns true on success.
|
|
329
329
|
template <class TArg, class... TArgs>
|
|
330
|
-
bool TryEmplaceValue(std::initializer_list<TArg> init, TArgs &&...
|
|
330
|
+
bool TryEmplaceValue(std::initializer_list<TArg> init, TArgs &&...args) const noexcept;
|
|
331
331
|
|
|
332
332
|
/// Tries to set Promise to Failed state with a CancellationError. Returns true if cancel succeeded.
|
|
333
333
|
bool TryCancel() const noexcept;
|
|
@@ -809,19 +809,19 @@ struct PromiseGroup {
|
|
|
809
809
|
|
|
810
810
|
/// Sets the value in-place and completes the PromiseGroup. It can be called only once. Otherwise it VECs.
|
|
811
811
|
template <class... TArgs>
|
|
812
|
-
void EmplaceValue(TArgs &&...
|
|
812
|
+
void EmplaceValue(TArgs &&...args) const noexcept;
|
|
813
813
|
|
|
814
814
|
/// Sets the value in-place and completes the PromiseGroup. It can be called only once. Otherwise it VECs.
|
|
815
815
|
template <class TArg, class... TArgs>
|
|
816
|
-
void EmplaceValue(std::initializer_list<TArg> init, TArgs &&...
|
|
816
|
+
void EmplaceValue(std::initializer_list<TArg> init, TArgs &&...args) const noexcept;
|
|
817
817
|
|
|
818
818
|
/// Tries to set the value in-place if PromiseGroup is not completed or abandoned yet. Returns true on success.
|
|
819
819
|
template <class... TArgs>
|
|
820
|
-
bool TryEmplaceValue(TArgs &&...
|
|
820
|
+
bool TryEmplaceValue(TArgs &&...args) const noexcept;
|
|
821
821
|
|
|
822
822
|
/// Tries to set the value in-place if PromiseGroup is not completed or abandoned yet. Returns true on success.
|
|
823
823
|
template <class TArg, class... TArgs>
|
|
824
|
-
bool TryEmplaceValue(std::initializer_list<TArg> init, TArgs &&...
|
|
824
|
+
bool TryEmplaceValue(std::initializer_list<TArg> init, TArgs &&...args) const noexcept;
|
|
825
825
|
|
|
826
826
|
/// Tries to set Promise to Failed state with the provided error code. It crashes app if error code cannot be set.
|
|
827
827
|
void SetError(const ErrorCode &errorCode) const noexcept;
|
|
@@ -16,7 +16,7 @@ See the msoGuid.h for the usage guidelines.
|
|
|
16
16
|
#endif
|
|
17
17
|
|
|
18
18
|
// Clang compiler must target C++11 or up to support MSO*GUIDs because we rely on constexpr.
|
|
19
|
-
|
|
19
|
+
// #if (__cplusplus >= 201103L) && !defined(MSO_GUID_DISABLED)
|
|
20
20
|
|
|
21
21
|
#include "compilerAdapters/compilerFeatures.h"
|
|
22
22
|
#if MS_TARGET_POSIX
|
|
@@ -30,7 +30,7 @@ namespace Details {
|
|
|
30
30
|
template <typename T>
|
|
31
31
|
struct Emplacer {
|
|
32
32
|
template <typename... Args>
|
|
33
|
-
static void Place(_Inout_updates_bytes_all_(sizeof(T)) void *mem, Args &&...
|
|
33
|
+
static void Place(_Inout_updates_bytes_all_(sizeof(T)) void *mem, Args &&...args) noexcept {
|
|
34
34
|
new (mem) T(std::forward<Args>(args)...);
|
|
35
35
|
}
|
|
36
36
|
};
|
|
@@ -38,7 +38,7 @@ struct Emplacer {
|
|
|
38
38
|
template <typename T, size_t N>
|
|
39
39
|
struct Emplacer<T[N]> {
|
|
40
40
|
template <typename... Args>
|
|
41
|
-
static void Place(void *mem, Args &&...
|
|
41
|
+
static void Place(void *mem, Args &&...args) {
|
|
42
42
|
new (mem) T[N]{std::forward<Args>(args)...};
|
|
43
43
|
}
|
|
44
44
|
};
|
|
@@ -116,14 +116,18 @@ Disambiguator used to ensure a throwing new
|
|
|
116
116
|
new (Mso::Memory::throwNew) Zoo();
|
|
117
117
|
*/
|
|
118
118
|
OACR_WARNING_SUPPRESS(SPECIFY_SELECTANY, "Not needed for marker type")
|
|
119
|
-
static const struct throwNew_t {
|
|
119
|
+
static const struct throwNew_t {
|
|
120
|
+
throwNew_t() noexcept = default;
|
|
121
|
+
} throwNew;
|
|
120
122
|
|
|
121
123
|
/**
|
|
122
124
|
Disambiguator used to ensure a crashing new
|
|
123
125
|
new (Mso::Memory::failFast) Zoo();
|
|
124
126
|
*/
|
|
125
127
|
OACR_WARNING_SUPPRESS(SPECIFY_SELECTANY, "Not needed for marker type")
|
|
126
|
-
static const struct failFast_t {
|
|
128
|
+
static const struct failFast_t {
|
|
129
|
+
failFast_t() noexcept = default;
|
|
130
|
+
} failFast;
|
|
127
131
|
|
|
128
132
|
/**
|
|
129
133
|
Construct a object of type `T` stored at `mem`.
|
|
@@ -131,7 +135,7 @@ Construct a object of type `T` stored at `mem`.
|
|
|
131
135
|
Arguments are forwarded to constructor of `T`.
|
|
132
136
|
*/
|
|
133
137
|
template <typename T, typename... Args>
|
|
134
|
-
static void Place(__inout_bcount(sizeof(T)) void *mem, Args &&...
|
|
138
|
+
static void Place(__inout_bcount(sizeof(T)) void *mem, Args &&...args) {
|
|
135
139
|
Details::Emplacer<T>::Place(mem, std::forward<Args>(args)...);
|
|
136
140
|
}
|
|
137
141
|
|
|
@@ -187,7 +191,9 @@ namespace NoThrow {
|
|
|
187
191
|
new (Mso::Memory::NoThrow::MarkingLeak) Zoo();
|
|
188
192
|
*/
|
|
189
193
|
OACR_WARNING_SUPPRESS(SPECIFY_SELECTANY, "Not needed for marker type")
|
|
190
|
-
static const struct MarkingLeak_t {
|
|
194
|
+
static const struct MarkingLeak_t {
|
|
195
|
+
MarkingLeak_t() noexcept = default;
|
|
196
|
+
} MarkingLeak;
|
|
191
197
|
|
|
192
198
|
} // namespace NoThrow
|
|
193
199
|
} // namespace Memory
|
|
@@ -205,7 +211,7 @@ Allocates object T by passing args to its constructor.
|
|
|
205
211
|
*/
|
|
206
212
|
template <typename T, typename... TArgs>
|
|
207
213
|
OACR_WARNING_SUPPRESS(NULL_ON_NON_POINTER, "false positive")
|
|
208
|
-
_Ret_notnull_ T *New(TArgs &&...
|
|
214
|
+
_Ret_notnull_ T *New(TArgs &&...t) {
|
|
209
215
|
Debug(Mso::Memory::AutoShutdownLeakScope scope);
|
|
210
216
|
T *pT = new (std::nothrow) T(std::forward<TArgs>(t)...);
|
|
211
217
|
if (pT == nullptr)
|
|
@@ -32,7 +32,7 @@ struct GTestFixture : ::testing::Test {
|
|
|
32
32
|
std::unique_ptr<TestClass> m_test;
|
|
33
33
|
};
|
|
34
34
|
|
|
35
|
-
template <int &...
|
|
35
|
+
template <int &...ExplicitParameterBarrier, typename Factory>
|
|
36
36
|
inline auto RegisterTest(
|
|
37
37
|
const char *test_suite_name,
|
|
38
38
|
const char *test_name,
|
package/Mso/motifCpp/testInfo.h
CHANGED
|
@@ -31,15 +31,13 @@
|
|
|
31
31
|
\
|
|
32
32
|
struct className : Mso::UnitTests::Internal::TestClassBase<className, TestClassInfo_##className>
|
|
33
33
|
|
|
34
|
-
#define TEST_METHOD(methodName)
|
|
35
|
-
struct TestMethodInfo_##methodName final
|
|
36
|
-
: Mso::UnitTests::Internal::TestMethodInfoReg<TestMethodInfo_##methodName> {
|
|
37
|
-
TestMethodInfo_##methodName() : TestMethodInfoRegType{TestClassInfoType::Instance, #methodName, __LINE__} {}
|
|
38
|
-
|
|
39
|
-
void Invoke(Mso::UnitTests::TestClass &test) const override {
|
|
40
|
-
|
|
41
|
-
} \
|
|
42
|
-
}; \
|
|
34
|
+
#define TEST_METHOD(methodName) \
|
|
35
|
+
struct TestMethodInfo_##methodName final \
|
|
36
|
+
: Mso::UnitTests::Internal::TestMethodInfoReg<TestMethodInfo_##methodName> { \
|
|
37
|
+
TestMethodInfo_##methodName() : TestMethodInfoRegType{TestClassInfoType::Instance, #methodName, __LINE__} {} \
|
|
38
|
+
\
|
|
39
|
+
void Invoke(Mso::UnitTests::TestClass &test) const override { static_cast<TestClassType &>(test).methodName(); } \
|
|
40
|
+
}; \
|
|
43
41
|
virtual void methodName()
|
|
44
42
|
|
|
45
43
|
#define TESTMETHOD_REQUIRES_SEH(methodName) TEST_METHOD(methodName)
|
package/Mso/object/make.h
CHANGED
|
@@ -23,7 +23,7 @@ namespace Mso {
|
|
|
23
23
|
// ValidateObject throws, or when some of the lambda's are inlined...
|
|
24
24
|
|
|
25
25
|
template <typename T, typename TResult = T, typename... TArgs>
|
|
26
|
-
inline Mso::CntPtr<TResult> Make(TArgs &&...
|
|
26
|
+
inline Mso::CntPtr<TResult> Make(TArgs &&...args) noexcept(T::MakePolicy::IsNoExcept) {
|
|
27
27
|
typename T::RefCountPolicy::template MemoryGuard<T> memoryGuard = {};
|
|
28
28
|
T::RefCountPolicy::AllocateMemory(memoryGuard);
|
|
29
29
|
VerifyAllocElseCrashTag(memoryGuard.ObjMemory, 0x01117748 /* tag_bex3i */);
|
|
@@ -47,7 +47,7 @@ inline Mso::CntPtr<TResult> Make(TArgs &&... args) noexcept(T::MakePolicy::IsNoE
|
|
|
47
47
|
Method MakeAlloc is noexcept depending on the Make policy IsNoExcept value.
|
|
48
48
|
*/
|
|
49
49
|
template <typename T, typename TResult = T, typename TAllocArg, typename... TArgs>
|
|
50
|
-
inline Mso::CntPtr<TResult> MakeAlloc(TAllocArg &&allocArg, TArgs &&...
|
|
50
|
+
inline Mso::CntPtr<TResult> MakeAlloc(TAllocArg &&allocArg, TArgs &&...args) noexcept(T::MakePolicy::IsNoExcept) {
|
|
51
51
|
typename T::RefCountPolicy::template MemoryGuard<T> memoryGuard = {};
|
|
52
52
|
T::RefCountPolicy::AllocateMemory(memoryGuard, std::forward<TAllocArg>(allocArg));
|
|
53
53
|
VerifyAllocElseCrashTag(memoryGuard.ObjMemory, 0x01117749 /* tag_bex3j */);
|
|
@@ -70,7 +70,7 @@ inline Mso::CntPtr<TResult> MakeAlloc(TAllocArg &&allocArg, TArgs &&... args) no
|
|
|
70
70
|
Method MakeElseNull is noexcept depending on the Make policy IsNoExcept value.
|
|
71
71
|
*/
|
|
72
72
|
template <typename T, typename TResult = T, typename... TArgs>
|
|
73
|
-
inline Mso::CntPtr<TResult> MakeElseNull(TArgs &&...
|
|
73
|
+
inline Mso::CntPtr<TResult> MakeElseNull(TArgs &&...args) noexcept(T::MakePolicy::IsNoExcept) {
|
|
74
74
|
Mso::CntPtr<TResult> result; // Hopefully we can benefit from NRVO
|
|
75
75
|
|
|
76
76
|
typename T::RefCountPolicy::template MemoryGuard<T> memoryGuard = {};
|
|
@@ -98,7 +98,7 @@ inline Mso::CntPtr<TResult> MakeElseNull(TArgs &&... args) noexcept(T::MakePolic
|
|
|
98
98
|
Method MakeAllocElseNull is noexcept depending on the Make policy IsNoExcept value.
|
|
99
99
|
*/
|
|
100
100
|
template <typename T, typename TResult = T, typename TAllocArg, typename... TArgs>
|
|
101
|
-
inline Mso::CntPtr<TResult> MakeAllocElseNull(TAllocArg &&allocArg, TArgs &&...
|
|
101
|
+
inline Mso::CntPtr<TResult> MakeAllocElseNull(TAllocArg &&allocArg, TArgs &&...args) noexcept(
|
|
102
102
|
T::MakePolicy::IsNoExcept) {
|
|
103
103
|
Mso::CntPtr<TResult> result; // Hopefully we can benefit from NRVO
|
|
104
104
|
|
|
@@ -125,7 +125,7 @@ struct ThrowCtor {
|
|
|
125
125
|
static const bool IsNoExcept = false;
|
|
126
126
|
|
|
127
127
|
template <typename T, typename TMemoryGuard, typename... TArgs>
|
|
128
|
-
static void Make(TMemoryGuard &memoryGuard, TArgs &&...
|
|
128
|
+
static void Make(TMemoryGuard &memoryGuard, TArgs &&...args) {
|
|
129
129
|
OACR_POSSIBLE_THROW;
|
|
130
130
|
memoryGuard.Obj = ::new (memoryGuard.ObjMemory) T(std::forward<TArgs>(args)...);
|
|
131
131
|
memoryGuard.ObjMemory = nullptr; // Memory is now controlled by the object. Set to null to avoid memory destruction.
|
|
@@ -139,7 +139,7 @@ struct NoThrowCtor {
|
|
|
139
139
|
static const bool IsNoExcept = true;
|
|
140
140
|
|
|
141
141
|
template <typename T, typename TMemoryGuard, typename... TArgs>
|
|
142
|
-
static void Make(TMemoryGuard &memoryGuard, TArgs &&...
|
|
142
|
+
static void Make(TMemoryGuard &memoryGuard, TArgs &&...args) noexcept {
|
|
143
143
|
memoryGuard.Obj = ::new (memoryGuard.ObjMemory) T(std::forward<TArgs>(args)...);
|
|
144
144
|
memoryGuard.ObjMemory = nullptr; // Memory is now controlled by the object. Set to null to avoid memory destruction.
|
|
145
145
|
}
|
|
@@ -152,7 +152,7 @@ struct ThrowCtorAndInitializeThis {
|
|
|
152
152
|
static const bool IsNoExcept = false;
|
|
153
153
|
|
|
154
154
|
template <typename T, typename TMemoryGuard, typename... TArgs>
|
|
155
|
-
static void Make(TMemoryGuard &memoryGuard, TArgs &&...
|
|
155
|
+
static void Make(TMemoryGuard &memoryGuard, TArgs &&...args) {
|
|
156
156
|
OACR_POSSIBLE_THROW;
|
|
157
157
|
memoryGuard.Obj = ::new (memoryGuard.ObjMemory) T();
|
|
158
158
|
memoryGuard.ObjMemory = nullptr; // Memory is now controlled by the object. Set to null to avoid memory destruction.
|
|
@@ -167,7 +167,7 @@ struct NoThrowCtorAndInitializeThis {
|
|
|
167
167
|
static const bool IsNoExcept = true;
|
|
168
168
|
|
|
169
169
|
template <typename T, typename TMemoryGuard, typename... TArgs>
|
|
170
|
-
static void Make(TMemoryGuard &memoryGuard, TArgs &&...
|
|
170
|
+
static void Make(TMemoryGuard &memoryGuard, TArgs &&...args) noexcept {
|
|
171
171
|
memoryGuard.Obj = ::new (memoryGuard.ObjMemory) T();
|
|
172
172
|
memoryGuard.ObjMemory = nullptr; // Memory is now controlled by the object. Set to null to avoid memory destruction.
|
|
173
173
|
memoryGuard.Obj->InitializeThis(std::forward<TArgs>(args)...);
|