Closed hugary1995 closed 2 years ago
Yeah; we can't support arbitrary mixtures of container types without user intervention, because a priori we don't know what the "outside" container should be. This is obvious when the containers are completely unrelated (should a dualnumber times a vector produce a vector-of-duals or a dual-of-vectors), but even when the containers are related we don't have a great way to deduce what to get when we have a type that nests third-party containers.
If you look in compare_types.h you'll see some macros that get used to declare those template metafunctions for built-in types; you might be able to reuse those to get the metafunctions you need for Eigen types. If you have enough nesting that that's not enough, though, which it looks like you might in this case ... check out the macro at the end of dualnumberarray.h; you'd have to rewrite it rather than just reinvoke it, but something like that would probably be adequate.
Oh, sorry, I completely missed your reply. Thanks, I'll look at compare_types.h and see if I could reuse some of the macros.
This is resolved. For future reference, see https://github.com/idaholab/moose/pull/20408 about the use of the macros for composite types.
The following example
gives rise to the following compiler error: