1#ifndef _BBM_DRJIT_STRINGCONVERT_H_
2#define _BBM_DRJIT_STRINGCONVERT_H_
20 template<
typename T>
requires (drjit::is_static_array_v<T> && !backbone::is_LLVMArray_v<T> && !backbone::is_DiffArray_v<T>)
24 auto helper = [&]<
size_t... IDX>(std::index_sequence<IDX...>) {
return std::array{arr[IDX]...}; };
27 return bbm::toString( helper(std::make_index_sequence<std::decay_t<T>::Size>{}) );
30 template<
typename T>
requires (drjit::is_static_array_v<T> && !backbone::is_LLVMArray_v<T> && !backbone::is_DiffArray_v<T>)
34 auto arr = bbm::fromString<std::array<value_t<T>, std::decay_t<T>::Size>>(str);
37 auto helper = [&]<
size_t ...IDX>(std::index_sequence<IDX...>) {
return T(arr[IDX]...); };
40 return helper(std::make_index_sequence<std::decay_t<T>::Size>{});
46 template<
typename T>
requires backbone::is_DiffArray_v<T>
52 template<
typename T>
requires backbone::is_DiffArray_v<T>
61 template<
typename T>
requires backbone::is_LLVMArray_v<T>
68 template<
typename T>
requires backbone::is_LLVMArray_v<T>
Predefined exceptions for common errors.
#define bbm_unassigned_ref
Definition: error.h:43
concept to check if a type has a valid string_converter.
Random number generator; built on top of Drjit.
Definition: backbone.h:53
std::string toString(const T &)
regular drjit::array types
Definition: stringconvert.h:21
T fromString(const std::string &)
Definition: stringconvert.h:31
T fromString(const std::string &)
fromString alias
Definition: stringconvert.h:584
std::string toString(const T &)
toString alias
Definition: stringconvert.h:594
produce stringview of type name of a type. Avoids using typeid for GCC, MSVC, and CLANG....