LINUX.ORG.RU

История изменений

Исправление thunar, (текущая версия) :

Попробовал с fold expression

struct iterator{
	tuple<ts...> args;

	}
	bool operator != (const iterator& other) const{
		return (self != other);
	}
	void operator ++ () {
		std::apply([]( auto&&... v ){((++v) , ... );}, args );
	}
но не пойму как правильно возвратить аргумент из лямбды:
	decltype(auto) operator * () const {
		//???
		return std::apply([]( auto&&... v )
		{return std::forward_as_tuple(((*v) , ...));}, args );
	}
};
но получается кортеж, содержащий только элемент последнего аргумента.

Исправление thunar, :

Попробовал с fold expression

struct iterator{
	tuple<ts...> args;

	}
	bool operator != (const iterator& other) const{
		return (self != other);
	}
	void operator ++ () {
		std::apply([]( auto&&... v ){((++v) , ... );}, args );
	}
но не пойму как правильно возвратить аргумент из лямбды:
	decltype(auto) operator * () const {
		//???
		return std::apply([]( auto&&... v )
		{return std::forward_as_tuple(((*v) , ...));}, args );
};
но получается кортеж, содержащий только элемент последнего аргумента.

Исходная версия thunar, :

Попробовал с fold expression

struct iterator{
	tuple<ts...> args;

	}
	bool operator != (const iterator& other) const{
		return (self != other);
	}
	void operator ++ () {
		std::apply([]( auto&&... v ){((++v) , ... );}, args );
но не пойму как правильно возвратить аргумент из лямбды: } decltype(auto) operator * () const { //??? return std::apply([]( auto&&... v ) {return std::forward_as_tuple(((*v) , ...));}, args ); }; но получается кортеж, содержащий только элемент последнего аргумента.