Skip to content

Commit df34a2d

Browse files
authored
More std::ignore cleanups after 82d8ed7 (#18053)
I missed several-many invalid uses of `std::ignore = unused_variable` in the level zero adapter in 82d8ed7. This brings us up to date. I've additionally removed the unnecessary inclusion of `<tuple>` or `<utility>` where they're no longer needed. Plus a bonus (void) of a nodiscard function in a hip test.
1 parent e240c6e commit df34a2d

File tree

10 files changed

+75
-121
lines changed

10 files changed

+75
-121
lines changed

unified-runtime/source/adapters/level_zero/command_buffer.cpp

Lines changed: 65 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -1079,12 +1079,11 @@ ur_result_t urCommandBufferAppendKernelLaunchExp(
10791079
uint32_t NumKernelAlternatives, ur_kernel_handle_t *KernelAlternatives,
10801080
uint32_t NumSyncPointsInWaitList,
10811081
const ur_exp_command_buffer_sync_point_t *SyncPointWaitList,
1082-
uint32_t NumEventsInWaitList, const ur_event_handle_t *EventWaitList,
1083-
ur_exp_command_buffer_sync_point_t *RetSyncPoint, ur_event_handle_t *Event,
1082+
uint32_t /*NumEventsInWaitList*/,
1083+
const ur_event_handle_t * /*EventWaitList*/,
1084+
ur_exp_command_buffer_sync_point_t *RetSyncPoint,
1085+
ur_event_handle_t * /*Event*/,
10841086
ur_exp_command_buffer_command_handle_t *Command) {
1085-
std::ignore = NumEventsInWaitList;
1086-
std::ignore = EventWaitList;
1087-
std::ignore = Event;
10881087

10891088
UR_ASSERT(Kernel->Program, UR_RESULT_ERROR_INVALID_NULL_POINTER);
10901089
// Command handles can only be obtained from updatable command-buffers
@@ -1157,13 +1156,11 @@ ur_result_t urCommandBufferAppendUSMMemcpyExp(
11571156
ur_exp_command_buffer_handle_t CommandBuffer, void *Dst, const void *Src,
11581157
size_t Size, uint32_t NumSyncPointsInWaitList,
11591158
const ur_exp_command_buffer_sync_point_t *SyncPointWaitList,
1160-
uint32_t NumEventsInWaitList, const ur_event_handle_t *EventWaitList,
1161-
ur_exp_command_buffer_sync_point_t *SyncPoint, ur_event_handle_t *Event,
1162-
ur_exp_command_buffer_command_handle_t *Command) {
1163-
std::ignore = NumEventsInWaitList;
1164-
std::ignore = EventWaitList;
1165-
std::ignore = Event;
1166-
std::ignore = Command;
1159+
uint32_t /*NumEventsInWaitList*/,
1160+
const ur_event_handle_t * /*EventWaitList*/,
1161+
ur_exp_command_buffer_sync_point_t *SyncPoint,
1162+
ur_event_handle_t * /*Event*/,
1163+
ur_exp_command_buffer_command_handle_t * /*Command*/) {
11671164

11681165
return enqueueCommandBufferMemCopyHelper(
11691166
UR_COMMAND_USM_MEMCPY, CommandBuffer, Dst, Src, Size,
@@ -1177,13 +1174,11 @@ ur_result_t urCommandBufferAppendMemBufferCopyExp(
11771174
ur_mem_handle_t DstMem, size_t SrcOffset, size_t DstOffset, size_t Size,
11781175
uint32_t NumSyncPointsInWaitList,
11791176
const ur_exp_command_buffer_sync_point_t *SyncPointWaitList,
1180-
uint32_t NumEventsInWaitList, const ur_event_handle_t *EventWaitList,
1181-
ur_exp_command_buffer_sync_point_t *SyncPoint, ur_event_handle_t *Event,
1182-
ur_exp_command_buffer_command_handle_t *Command) {
1183-
std::ignore = NumEventsInWaitList;
1184-
std::ignore = EventWaitList;
1185-
std::ignore = Event;
1186-
std::ignore = Command;
1177+
uint32_t /*NumEventsInWaitList*/,
1178+
const ur_event_handle_t * /*EventWaitList*/,
1179+
ur_exp_command_buffer_sync_point_t *SyncPoint,
1180+
ur_event_handle_t * /*Event*/,
1181+
ur_exp_command_buffer_command_handle_t * /*Command*/) {
11871182
auto SrcBuffer = ur_cast<_ur_buffer *>(SrcMem);
11881183
auto DstBuffer = ur_cast<_ur_buffer *>(DstMem);
11891184

@@ -1215,13 +1210,11 @@ ur_result_t urCommandBufferAppendMemBufferCopyRectExp(
12151210
size_t SrcSlicePitch, size_t DstRowPitch, size_t DstSlicePitch,
12161211
uint32_t NumSyncPointsInWaitList,
12171212
const ur_exp_command_buffer_sync_point_t *SyncPointWaitList,
1218-
uint32_t NumEventsInWaitList, const ur_event_handle_t *EventWaitList,
1219-
ur_exp_command_buffer_sync_point_t *SyncPoint, ur_event_handle_t *Event,
1220-
ur_exp_command_buffer_command_handle_t *Command) {
1221-
std::ignore = NumEventsInWaitList;
1222-
std::ignore = EventWaitList;
1223-
std::ignore = Event;
1224-
std::ignore = Command;
1213+
uint32_t /*NumEventsInWaitList*/,
1214+
const ur_event_handle_t * /*EventWaitList*/,
1215+
ur_exp_command_buffer_sync_point_t *SyncPoint,
1216+
ur_event_handle_t * /*Event*/,
1217+
ur_exp_command_buffer_command_handle_t * /*Command*/) {
12251218
auto SrcBuffer = ur_cast<_ur_buffer *>(SrcMem);
12261219
auto DstBuffer = ur_cast<_ur_buffer *>(DstMem);
12271220

@@ -1252,13 +1245,11 @@ ur_result_t urCommandBufferAppendMemBufferWriteExp(
12521245
size_t Offset, size_t Size, const void *Src,
12531246
uint32_t NumSyncPointsInWaitList,
12541247
const ur_exp_command_buffer_sync_point_t *SyncPointWaitList,
1255-
uint32_t NumEventsInWaitList, const ur_event_handle_t *EventWaitList,
1256-
ur_exp_command_buffer_sync_point_t *SyncPoint, ur_event_handle_t *Event,
1257-
ur_exp_command_buffer_command_handle_t *Command) {
1258-
std::ignore = NumEventsInWaitList;
1259-
std::ignore = EventWaitList;
1260-
std::ignore = Event;
1261-
std::ignore = Command;
1248+
uint32_t /*NumEventsInWaitList*/,
1249+
const ur_event_handle_t * /*EventWaitList*/,
1250+
ur_exp_command_buffer_sync_point_t *SyncPoint,
1251+
ur_event_handle_t * /*Event*/,
1252+
ur_exp_command_buffer_command_handle_t * /*Command*/) {
12621253
std::scoped_lock<ur_shared_mutex> Lock(Buffer->Mutex);
12631254

12641255
char *ZeHandleDst = nullptr;
@@ -1282,13 +1273,11 @@ ur_result_t urCommandBufferAppendMemBufferWriteRectExp(
12821273
size_t HostRowPitch, size_t HostSlicePitch, void *Src,
12831274
uint32_t NumSyncPointsInWaitList,
12841275
const ur_exp_command_buffer_sync_point_t *SyncPointWaitList,
1285-
uint32_t NumEventsInWaitList, const ur_event_handle_t *EventWaitList,
1286-
ur_exp_command_buffer_sync_point_t *SyncPoint, ur_event_handle_t *Event,
1287-
ur_exp_command_buffer_command_handle_t *Command) {
1288-
std::ignore = NumEventsInWaitList;
1289-
std::ignore = EventWaitList;
1290-
std::ignore = Event;
1291-
std::ignore = Command;
1276+
uint32_t /*NumEventsInWaitList*/,
1277+
const ur_event_handle_t * /*EventWaitList*/,
1278+
ur_exp_command_buffer_sync_point_t *SyncPoint,
1279+
ur_event_handle_t * /*Event*/,
1280+
ur_exp_command_buffer_command_handle_t * /*Command*/) {
12921281
std::scoped_lock<ur_shared_mutex> Lock(Buffer->Mutex);
12931282

12941283
char *ZeHandleDst = nullptr;
@@ -1310,13 +1299,11 @@ ur_result_t urCommandBufferAppendMemBufferReadExp(
13101299
ur_exp_command_buffer_handle_t CommandBuffer, ur_mem_handle_t Buffer,
13111300
size_t Offset, size_t Size, void *Dst, uint32_t NumSyncPointsInWaitList,
13121301
const ur_exp_command_buffer_sync_point_t *SyncPointWaitList,
1313-
uint32_t NumEventsInWaitList, const ur_event_handle_t *EventWaitList,
1314-
ur_exp_command_buffer_sync_point_t *SyncPoint, ur_event_handle_t *Event,
1315-
ur_exp_command_buffer_command_handle_t *Command) {
1316-
std::ignore = NumEventsInWaitList;
1317-
std::ignore = EventWaitList;
1318-
std::ignore = Event;
1319-
std::ignore = Command;
1302+
uint32_t /*NumEventsInWaitList*/,
1303+
const ur_event_handle_t * /*EventWaitList*/,
1304+
ur_exp_command_buffer_sync_point_t *SyncPoint,
1305+
ur_event_handle_t * /*Event*/,
1306+
ur_exp_command_buffer_command_handle_t * /*Command*/) {
13201307
std::scoped_lock<ur_shared_mutex> SrcLock(Buffer->Mutex);
13211308

13221309
char *ZeHandleSrc = nullptr;
@@ -1339,13 +1326,11 @@ ur_result_t urCommandBufferAppendMemBufferReadRectExp(
13391326
size_t HostRowPitch, size_t HostSlicePitch, void *Dst,
13401327
uint32_t NumSyncPointsInWaitList,
13411328
const ur_exp_command_buffer_sync_point_t *SyncPointWaitList,
1342-
uint32_t NumEventsInWaitList, const ur_event_handle_t *EventWaitList,
1343-
ur_exp_command_buffer_sync_point_t *SyncPoint, ur_event_handle_t *Event,
1344-
ur_exp_command_buffer_command_handle_t *Command) {
1345-
std::ignore = NumEventsInWaitList;
1346-
std::ignore = EventWaitList;
1347-
std::ignore = Event;
1348-
std::ignore = Command;
1329+
uint32_t /*NumEventsInWaitList*/,
1330+
const ur_event_handle_t * /*EventWaitList*/,
1331+
ur_exp_command_buffer_sync_point_t *SyncPoint,
1332+
ur_event_handle_t * /*Event*/,
1333+
ur_exp_command_buffer_command_handle_t * /*Command*/) {
13491334
std::scoped_lock<ur_shared_mutex> SrcLock(Buffer->Mutex);
13501335

13511336
char *ZeHandleSrc;
@@ -1364,16 +1349,13 @@ ur_result_t urCommandBufferAppendMemBufferReadRectExp(
13641349

13651350
ur_result_t urCommandBufferAppendUSMPrefetchExp(
13661351
ur_exp_command_buffer_handle_t CommandBuffer, const void *Mem, size_t Size,
1367-
ur_usm_migration_flags_t Flags, uint32_t NumSyncPointsInWaitList,
1352+
ur_usm_migration_flags_t /*Flags*/, uint32_t NumSyncPointsInWaitList,
13681353
const ur_exp_command_buffer_sync_point_t *SyncPointWaitList,
1369-
uint32_t NumEventsInWaitList, const ur_event_handle_t *EventWaitList,
1370-
ur_exp_command_buffer_sync_point_t *RetSyncPoint, ur_event_handle_t *Event,
1371-
ur_exp_command_buffer_command_handle_t *Command) {
1372-
std::ignore = NumEventsInWaitList;
1373-
std::ignore = EventWaitList;
1374-
std::ignore = Event;
1375-
std::ignore = Command;
1376-
std::ignore = Flags;
1354+
uint32_t /*NumEventsInWaitList*/,
1355+
const ur_event_handle_t * /*EventWaitList*/,
1356+
ur_exp_command_buffer_sync_point_t *RetSyncPoint,
1357+
ur_event_handle_t * /*Event*/,
1358+
ur_exp_command_buffer_command_handle_t * /*Command*/) {
13771359

13781360
std::vector<ze_event_handle_t> ZeEventList;
13791361
ze_event_handle_t ZeLaunchEvent = nullptr;
@@ -1407,13 +1389,11 @@ ur_result_t urCommandBufferAppendUSMAdviseExp(
14071389
ur_exp_command_buffer_handle_t CommandBuffer, const void *Mem, size_t Size,
14081390
ur_usm_advice_flags_t Advice, uint32_t NumSyncPointsInWaitList,
14091391
const ur_exp_command_buffer_sync_point_t *SyncPointWaitList,
1410-
uint32_t NumEventsInWaitList, const ur_event_handle_t *EventWaitList,
1411-
ur_exp_command_buffer_sync_point_t *RetSyncPoint, ur_event_handle_t *Event,
1412-
ur_exp_command_buffer_command_handle_t *Command) {
1413-
std::ignore = NumEventsInWaitList;
1414-
std::ignore = EventWaitList;
1415-
std::ignore = Event;
1416-
std::ignore = Command;
1392+
uint32_t /*NumEventsInWaitList*/,
1393+
const ur_event_handle_t * /*EventWaitList*/,
1394+
ur_exp_command_buffer_sync_point_t *RetSyncPoint,
1395+
ur_event_handle_t * /*Event*/,
1396+
ur_exp_command_buffer_command_handle_t * /*Command*/) {
14171397
// A memory chunk can be advised with muliple memory advices
14181398
// We therefore prefer if statements to switch cases to combine all potential
14191399
// flags
@@ -1473,13 +1453,11 @@ ur_result_t urCommandBufferAppendMemBufferFillExp(
14731453
const void *Pattern, size_t PatternSize, size_t Offset, size_t Size,
14741454
uint32_t NumSyncPointsInWaitList,
14751455
const ur_exp_command_buffer_sync_point_t *SyncPointWaitList,
1476-
uint32_t NumEventsInWaitList, const ur_event_handle_t *EventWaitList,
1477-
ur_exp_command_buffer_sync_point_t *SyncPoint, ur_event_handle_t *Event,
1478-
ur_exp_command_buffer_command_handle_t *Command) {
1479-
std::ignore = NumEventsInWaitList;
1480-
std::ignore = EventWaitList;
1481-
std::ignore = Event;
1482-
std::ignore = Command;
1456+
uint32_t /*NumEventsInWaitList*/,
1457+
const ur_event_handle_t * /*EventWaitList*/,
1458+
ur_exp_command_buffer_sync_point_t *SyncPoint,
1459+
ur_event_handle_t * /*Event*/,
1460+
ur_exp_command_buffer_command_handle_t * /*Command*/) {
14831461

14841462
std::scoped_lock<ur_shared_mutex> Lock(Buffer->Mutex);
14851463

@@ -1500,13 +1478,11 @@ ur_result_t urCommandBufferAppendUSMFillExp(
15001478
const void *Pattern, size_t PatternSize, size_t Size,
15011479
uint32_t NumSyncPointsInWaitList,
15021480
const ur_exp_command_buffer_sync_point_t *SyncPointWaitList,
1503-
uint32_t NumEventsInWaitList, const ur_event_handle_t *EventWaitList,
1504-
ur_exp_command_buffer_sync_point_t *SyncPoint, ur_event_handle_t *Event,
1505-
ur_exp_command_buffer_command_handle_t *Command) {
1506-
std::ignore = NumEventsInWaitList;
1507-
std::ignore = EventWaitList;
1508-
std::ignore = Event;
1509-
std::ignore = Command;
1481+
uint32_t /*NumEventsInWaitList*/,
1482+
const ur_event_handle_t * /*EventWaitList*/,
1483+
ur_exp_command_buffer_sync_point_t *SyncPoint,
1484+
ur_event_handle_t * /*Event*/,
1485+
ur_exp_command_buffer_command_handle_t * /*Command*/) {
15101486

15111487
return enqueueCommandBufferFillHelper(
15121488
UR_COMMAND_MEM_BUFFER_FILL, CommandBuffer, Ptr,
@@ -2304,18 +2280,15 @@ ur_result_t urCommandBufferUpdateKernelLaunchExp(
23042280
}
23052281

23062282
ur_result_t urCommandBufferUpdateSignalEventExp(
2307-
ur_exp_command_buffer_command_handle_t Command, ur_event_handle_t *Event) {
2308-
std::ignore = Command;
2309-
std::ignore = Event;
2283+
ur_exp_command_buffer_command_handle_t /*Command*/,
2284+
ur_event_handle_t * /*Event*/) {
23102285
return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;
23112286
}
23122287

23132288
ur_result_t urCommandBufferUpdateWaitEventsExp(
2314-
ur_exp_command_buffer_command_handle_t Command,
2315-
uint32_t NumEventsInWaitList, const ur_event_handle_t *EventWaitList) {
2316-
std::ignore = Command;
2317-
std::ignore = NumEventsInWaitList;
2318-
std::ignore = EventWaitList;
2289+
ur_exp_command_buffer_command_handle_t /*Command*/,
2290+
uint32_t /*NumEventsInWaitList*/,
2291+
const ur_event_handle_t * /*EventWaitList*/) {
23192292
return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;
23202293
}
23212294

unified-runtime/source/adapters/level_zero/context.cpp

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,9 @@ ur_result_t urContextCreate(
2727
/// [in][range(0, DeviceCount)] array of handle of devices.
2828
const ur_device_handle_t *Devices,
2929
/// [in][optional] pointer to context creation properties.
30-
const ur_context_properties_t *Properties,
30+
const ur_context_properties_t * /*Properties*/,
3131
/// [out] pointer to handle of context object created
3232
ur_context_handle_t *RetContext) {
33-
std::ignore = Properties;
3433

3534
ur_platform_handle_t Platform = Devices[0]->Platform;
3635
ZeStruct<ze_context_desc_t> ContextDesc{};
@@ -163,14 +162,11 @@ ur_result_t urContextCreateWithNativeHandle(
163162

164163
ur_result_t urContextSetExtendedDeleter(
165164
/// [in] handle of the context.
166-
ur_context_handle_t Context,
165+
ur_context_handle_t /*Context*/,
167166
/// [in] Function pointer to extended deleter.
168-
ur_context_extended_deleter_t Deleter,
167+
ur_context_extended_deleter_t /*Deleter*/,
169168
/// [in][out][optional] pointer to data to be passed to callback.
170-
void *UserData) {
171-
std::ignore = Context;
172-
std::ignore = Deleter;
173-
std::ignore = UserData;
169+
void * /*UserData*/) {
174170
logger::error(logger::LegacyMessage("[UR][L0] {} function not implemented!"),
175171
"{} function not implemented!", __FUNCTION__);
176172
return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;

unified-runtime/source/adapters/level_zero/device.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1448,7 +1448,7 @@ ur_result_t urDevicePartition(
14481448

14491449
ur_result_t urDeviceSelectBinary(
14501450
/// [in] handle of the device to select binary for.
1451-
ur_device_handle_t Device,
1451+
ur_device_handle_t /*Device*/,
14521452
/// [in] the array of binaries to select from.
14531453
const ur_device_binary_t *Binaries,
14541454
/// [in] the number of binaries passed in ppBinaries. Must greater than or
@@ -1458,7 +1458,6 @@ ur_result_t urDeviceSelectBinary(
14581458
/// binaries. If a suitable binary was not found the function returns
14591459
/// ${X}_INVALID_BINARY.
14601460
uint32_t *SelectedBinary) {
1461-
std::ignore = Device;
14621461
// TODO: this is a bare-bones implementation for choosing a device image
14631462
// that would be compatible with the targeted device. An AOT-compiled
14641463
// image is preferred over SPIR-V for known devices (i.e. Intel devices)

unified-runtime/source/adapters/level_zero/enqueue_native.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,7 @@
88
//
99
//===----------------------------------------------------------------------===//
1010

11-
#include <tuple>
1211
#include <ur_api.h>
13-
#include <utility>
1412

1513
namespace ur::level_zero {
1614

unified-runtime/source/adapters/level_zero/usm.hpp

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -187,17 +187,13 @@ class USMProxyPool {
187187
return UMF_RESULT_SUCCESS;
188188
}
189189
void *malloc(size_t Size) noexcept { return aligned_malloc(Size, 0); }
190-
void *calloc(size_t Num, size_t Size) noexcept {
191-
std::ignore = Num;
192-
std::ignore = Size;
190+
void *calloc(size_t /*Num*/, size_t /*Size*/) noexcept {
193191

194192
// Currently not needed
195193
umf::getPoolLastStatusRef<USMProxyPool>() = UMF_RESULT_ERROR_NOT_SUPPORTED;
196194
return nullptr;
197195
}
198-
void *realloc(void *Ptr, size_t Size) noexcept {
199-
std::ignore = Ptr;
200-
std::ignore = Size;
196+
void *realloc(void * /*Ptr*/, size_t /*Size*/) noexcept {
201197

202198
// Currently not needed
203199
umf::getPoolLastStatusRef<USMProxyPool>() = UMF_RESULT_ERROR_NOT_SUPPORTED;
@@ -211,8 +207,7 @@ class USMProxyPool {
211207
}
212208
return Ptr;
213209
}
214-
size_t malloc_usable_size(void *Ptr) noexcept {
215-
std::ignore = Ptr;
210+
size_t malloc_usable_size(void * /*Ptr*/) noexcept {
216211

217212
// Currently not needed
218213
return 0;

unified-runtime/source/adapters/level_zero/v2/command_list_manager.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -283,13 +283,11 @@ ur_result_t ur_command_list_manager::appendUSMFill(
283283
}
284284

285285
ur_result_t ur_command_list_manager::appendUSMPrefetch(
286-
const void *pMem, size_t size, ur_usm_migration_flags_t flags,
286+
const void *pMem, size_t size, ur_usm_migration_flags_t /*flags*/,
287287
uint32_t numEventsInWaitList, const ur_event_handle_t *phEventWaitList,
288288
ur_event_handle_t *phEvent) {
289289
TRACK_SCOPE_LATENCY("ur_command_list_manager::appendUSMPrefetch");
290290

291-
std::ignore = flags;
292-
293291
auto zeSignalEvent = getSignalEvent(phEvent, UR_COMMAND_USM_PREFETCH);
294292

295293
auto [pWaitEvents, numWaitEvents] =

unified-runtime/source/adapters/level_zero/v2/queue_create.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,6 @@
1515
#include "queue_handle.hpp"
1616
#include "queue_immediate_in_order.hpp"
1717

18-
#include <tuple>
19-
#include <utility>
20-
2118
namespace ur::level_zero {
2219
ur_result_t urQueueCreate(ur_context_handle_t hContext,
2320
ur_device_handle_t hDevice,

unified-runtime/source/adapters/native_cpu/context.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
//===----------------------------------------------------------------------===//
1010

1111
#include <memory>
12-
#include <tuple>
1312

1413
#include "ur/ur.hpp"
1514
#include "ur_api.h"

unified-runtime/test/adapters/hip/test_event.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ struct RAIIHipEvent {
1616

1717
~RAIIHipEvent() {
1818
if (handle) {
19-
std::ignore = hipEventDestroy(handle);
19+
(void)hipEventDestroy(handle);
2020
}
2121
}
2222

unified-runtime/test/conformance/testing/include/uur/known_failure.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
#include "uur/utils.h"
1212
#include <string>
1313
#include <string_view>
14-
#include <tuple>
1514
#include <vector>
1615

1716
namespace uur {

0 commit comments

Comments
 (0)