ich über den folgenden Code kam in der OpenVDB Dokumentation:Funktionsargument hat keine Art
template<typename _RootNodeType>
class Tree: public TreeBase
{
...
template<typename OtherTreeType>
Tree(const OtherTreeType& other,
const ValueType& inactiveValue,
const ValueType& activeValue,
TopologyCopy): // <-- this looks weird
TreeBase(other),
mRoot(other.root(), inactiveValue, activeValue, TopologyCopy())
{
}
ich bisher gesehen habe, dass ein Argument defaults to an int
wenn kein Typ angegeben ist, könnte aber dies hier der Fall sein? TopologyCopy
wird als Operator 2 Zeilen unten genannt.
Was bedeutet die obige Deklaration?
Bearbeiten: Die angenommene Antwort erklärt, was passiert. Die Lösung ist, die Funktion als
openvdb::Tree newTree(oldTree, inactiveValue, activeValue, TopologyCopy());
Sieht komisch aus, weil es seltsam ist. Warum sollte jemand ein Argument nehmen, es nicht benutzen und den gleichen Typ konstruieren? Ich hoffe, irgendwo gibt es einen Kommentar, warum oder warum ein Argument notwendig ist, um es von einer anderen Version des Konstruktors zu unterscheiden. –