Skip to content

Commit b5616d1

Browse files
committed
update comments
1 parent 65f4ea7 commit b5616d1

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

include/nbl/builtin/hlsl/type_traits.hlsl

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
int() is not an object
4949
int(*)() is object
5050
int(&)() is not an object
51+
basically !(is_reference || is_void || is_function)
5152
5253
template<class T> struct is_scalar; (DONE)
5354
template<class T> struct is_compound; (DONE)
@@ -58,7 +59,7 @@
5859
template<class T> struct is_volatile; (DONE)
5960
template<class T> struct is_trivial; (EVERYTHING IS)
6061
template<class T> struct is_trivially_copyable; (EVERYTHING IS)
61-
template<class T> struct is_standard_layout; (NOT-APPLICABLE)
62+
template<class T> struct is_standard_layout; (APPLICABLE BUT IMPOSSIBLE TO TEST WITHOUT REFLECTION)
6263
template<class T> struct is_empty; (DONE? sizeof(T) == 0)
6364
template<class T> struct is_polymorphic; (NOTHING IS)
6465
template<class T> struct is_abstract; (NOTHING IS)
@@ -99,13 +100,13 @@
99100
template<class T> struct add_cv; (DONE)
100101
101102
// reference modifications
102-
template<class T> struct remove_reference; (DONE)
103+
template<class T> struct remove_reference; (DONE BUT DONT USE)
103104
template<class T> struct add_lvalue_reference; (DONE BUT DONT USE)
104-
template<class T> struct add_rvalue_reference; (DONE BUT DONT USE)
105+
template<class T> struct add_rvalue_reference; (TODO)
105106
106107
// sign modifications
107-
template<class T> struct make_signed; (TODO)
108-
template<class T> struct make_unsigned; (TODO)
108+
template<class T> struct make_signed; (DONE)
109+
template<class T> struct make_unsigned; (DONE)
109110
110111
// array modifications
111112
template<class T> struct remove_extent; (DONE)
@@ -129,6 +130,7 @@
129130
template<class Fn, class... ArgTypes> struct invoke_result;
130131
template<class T> struct unwrap_reference; (TODO)
131132
template<class T> struct unwrap_ref_decay; (TODO)
133+
template<class...> using void_t = void; (VARIADICS NOT SUPPORTED USE `make_void` INSTEAD)
132134
133135
NO FOLD EXPRESSIONS IN HLSL!
134136
// logical operator traits
@@ -383,6 +385,8 @@ struct typeid_t;
383385
template<class T>
384386
struct alignment_of;
385387

388+
template<class>
389+
struct make_void { using type = void; };
386390

387391
// reference stuff needed for semantics
388392

@@ -393,9 +397,6 @@ struct alignment_of;
393397
namespace impl
394398
{
395399

396-
template<class>
397-
struct make_void { using type = void; };
398-
399400
template<typename,class=void>
400401
struct is_reference : bool_constant<true> { };
401402

0 commit comments

Comments
 (0)