Шаблоны Variadic - это функция C ++ 0x, которая в первую очередь нацелена на авторов общих библиотек. Я бы не ожидал увидеть их в «коде пользователя». Например, в стандартной библиотеке C ++ 0x они используются во многих местах: std :: function, std :: async, std :: reference_wrapper, std :: tuple, std :: packaged_task, ...
Чтобы дать вам пример, я покажу вам, как может быть реализована reference_wrapper в отношении вариационных шаблонов:
template<class T>
class reference_wrapper
{
T *ptr;
public:
explicit reference_wrapper(T& thing) : ptr(&thing) {}
explicit reference_wrapper(T&& ) = delete;
operator T&() const {return *ptr;}
template<class... Args>
decltype( declval<T&>()(declval<Args>()...) )
operator()(Args&&... args) const
{
return (*ptr)(forward<Args>(args)...);
}
};
Это не совсем соответствует стандарту, но предполагается для компиляции с небольшими изменениями. Он демонстрирует несколько функций C ++ 0x:
decltype
declval
для создания объектов с целью создания выражения для decltype
(GCC пока не предлагает этот шаблон функции. необходимо записать это самостоятельно) Цель шаблона вариационного элемента - переслать аргументы объекту, указанному в ptr
. Это должно работать в случае, если T - тип указателя функции или тип класса с перегруженным оператором вызова функции.
cheers! с
Смотрите на эту статью, сравнивающую Подверсию, Подвижную, Мерзавец и Базар для управления файлами в корневом каталоге, включая файлы изображений и большие файлы Photoshop, которые редактируются и имеющие версию.
Править: Ссылка является битой, и я не могу найти статью, однако информация в статье теперь сильно устарела так или иначе. Сегодня я настоятельно рекомендовал бы использовать Мерзавца-LFS (Большая Файловая система) с механизмом захвата файла, который был добавлен в 2017, я верю. Это - решение, которое я в настоящее время использую, поскольку оно решает обоих проблема необходимых для блокировки двоичных файлов и избегает неэффективности мерзавца когда дело доходит до того, чтобы хранить большие файлы - который был одним из основных моментов той статьи.
Смотрите на По необходимости (www.perforce.com), особенно при управлении этими файлами в контексте проектов разработки. Это - ориентированная на код система, но это поддерживает двоичные файлы хорошо и имеет плагин Photoshop. P4 не свободен, но это стоит каждого пенса при необходимости в SCM профессионального уровня - это твердо, быстро, гибко и просто в использовании. (Я - очень удовлетворенный клиент.)
Временная шкала PixelNovel - это плагин SVN для Photoshop. У них есть автономные и размещенные версии.