Я пытаюсь в основном сделать 3 вещи одновременно: перегрузить оператор присваивания с помощью шаблона, ограничить типы (используя boost :: enable_if) и получить определенный тип возврата.
Взять это в качестве примера:
template <class T>
std::string operator =(T t) { return "some string"; }
Теперь, согласно boost enable_if (sec 3, bullet pt 1), мне пришлось бы использовать enable_if в качестве возвращаемого типа, так как я перегружаю оператор, который может принимать только один аргумент. Однако я хотел бы, чтобы возвращаемый тип представлял собой строку, и поэтому он не обязательно должен совпадать с типом аргумента шаблона.
Я хотел бы использовать enable_if просто потому, что хочу, чтобы он просто пропускал шаблон, если он не является допустимым типом (не выдает ошибку).
У кого-нибудь есть идеи, как этого достичь?