analizer 08.09.2011 17:30 mcabber

я так надеялся что в новом стандарте смогу делать так: http://ideone.com/0xgGI

1. DZhon 08.09.2011 17:41

чистый фан же, пользы особо никакой

2. analizerDZhon /1 08.09.2011 17:47 mcabber

схрена ли? мне вот как раз надо, например, чтобы если тип CopyAssignable, то выполнить присваивание, а если только CopyConstructible, то разрушить и создать новый объект.

3. DZhonanalizer /2 08.09.2011 18:39

Добавь частичную специализацию самой структуры и все будет ок.

template <class T>
struct A<T, true>
{
void f();
};

Это же то, чего ты хочешь, или не ?

4. analizerDZhon /3 08.09.2011 18:41 mcabber

не. я хочу только одну функцию менять, а не весь класс. вопщем я уже сделал передачу true_type в реализацию

5. DZhonanalizer /4 08.09.2011 18:43

Покажи, интересно.
я хочу только одну функцию менять, а не весь класс. — неизменную часть можно наследованием сделать общей, например.

6. analizerDZhon /5 08.09.2011 18:52 mcabber

покажу когда допишу. а пока что постоянно утыкаюсь то в нереализованность alignas, то вот в это: http://ideone.com/6jywL, то в ICE на этом коде на более свежем gcc. В качестве короткого примера когда это нужно: вызов оператора копирования если он есть, и уничтожение и пересоздание объекта, если у него только конструктор копирования есть

Do you really want to delete ?