схрена ли? мне вот как раз надо, например, чтобы если тип CopyAssignable, то выполнить присваивание, а если только CopyConstructible, то разрушить и создать новый объект.
покажу когда допишу. а пока что постоянно утыкаюсь то в нереализованность alignas, то вот в это: http://ideone.com/6jywL, то в ICE на этом коде на более свежем gcc. В качестве короткого примера когда это нужно: вызов оператора копирования если он есть, и уничтожение и пересоздание объекта, если у него только конструктор копирования есть
чистый фан же, пользы особо никакой
схрена ли? мне вот как раз надо, например, чтобы если тип CopyAssignable, то выполнить присваивание, а если только CopyConstructible, то разрушить и создать новый объект.
Добавь частичную специализацию самой структуры и все будет ок.
template <class T>
struct A<T, true>
{
void f();
};
Это же то, чего ты хочешь, или не ?
не. я хочу только одну функцию менять, а не весь класс. вопщем я уже сделал передачу true_type в реализацию
Покажи, интересно.
я хочу только одну функцию менять, а не весь класс. — неизменную часть можно наследованием сделать общей, например.
покажу когда допишу. а пока что постоянно утыкаюсь то в нереализованность alignas, то вот в это: http://ideone.com/6jywL, то в ICE на этом коде на более свежем gcc. В качестве короткого примера когда это нужно: вызов оператора копирования если он есть, и уничтожение и пересоздание объекта, если у него только конструктор копирования есть