Skip to content

Commit 9584fcc

Browse files
committed
Improve fix to #317 to restore ability to handle incomplete types
1 parent b979d19 commit 9584fcc

File tree

3 files changed

+7
-8
lines changed

3 files changed

+7
-8
lines changed

include/cpp2util.h

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -522,12 +522,11 @@ template<typename T>
522522
template<typename T>
523523
constexpr bool prefer_pass_by_value =
524524
sizeof(T) <= 2*sizeof(void*)
525-
&& std::is_trivially_copy_constructible_v<T>
526-
&& !std::is_class_v<T>
527-
&& !std::is_union_v<T>
528-
&& !std::is_array_v<T>
529-
&& !std::is_function_v<T>
530-
;
525+
&& std::is_trivially_copy_constructible_v<T>;
526+
527+
template<typename T>
528+
requires std::is_class_v<T> || std::is_union_v<T> || std::is_array_v<T> || std::is_function_v<T>
529+
constexpr bool prefer_pass_by_value<T> = false;
531530

532531
template<typename T>
533532
requires (!std::is_void_v<T>)

regression-tests/test-results/version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
cppfront compiler v0.2.1 Build 8529:1436
2+
cppfront compiler v0.2.1 Build 8529:1625
33
Copyright(c) Herb Sutter All rights reserved
44

55
SPDX-License-Identifier: CC-BY-NC-ND-4.0

source/build.info

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
"8529:1436"
1+
"8529:1625"

0 commit comments

Comments
 (0)