Ich habe eine Vorlage wie folgt aussehen:Gang in einer Funktion Rückgabewert zu erhalten oder Werte
struct add_node_value_visitor : boost::static_visitor<>
{
add_node_value_visitor(){}
template <typename T>
void operator() (const T& value) const
{
boost::lexical_cast<std::string, T>(value);
}
};
Das Problem, das ich habe, ist, dass der Besucher im Inneren ein Iterieren for-Schleife über eine Reihe von Werten verwendet wird, und Die resultierende Folge von Werten muss eine Zeichenkette sein. Zur Zeit würde dies eine Menge separater Zeichenketten ergeben, was nicht das ist, was ich möchte. Um dieses Problem zu lösen, dachte ich, ich würde einen Funktionszeiger auf den ctor dieser Struktur setzen Ich kann eine Funktion übergeben, um die resultierende Zeichenfolge jeder Schleifeniteration zu verketten und eine Zeichenfolge zu erstellen. Dann, wenn ich diese Struktur verwenden möchte, wo ich keine Verkettung brauche, kann ich das immer noch tun. Die Frage ist, ob ich einen Funktionszeiger verwenden soll oder ist das möglich mit etwas wie boost :: lambda?
Oder wäre boost :: function einfacher zu bedienen?
Ist meine Frage unverständlich oder weiß niemand? –
Es ist ziemlich früh an einigen Stellen ... zu dieser Zeit werden die Menschen in Amerika noch schlafen, und einige Leute in Europa (wie ich) werden immer noch auf einen Becher Kaffee zum Aufwachen hinkriechen. Zeit für Kaffee! –