Re[13]: range based for - первый/последний?
От: B0FEE664  
Дата: 14.03.19 22:26
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>
using fat = ::std::forward_as_tuple;

_NN>Или хочется новый синтаксис ввести в язык ?
Так в том-то и дело, что синтаксис новый добавили, но с несколько неожиданным поведением.

_NN>Можно попытаться через stdcpp.ru

Сначало можно тут обсудить.

Например, можно было бы ввести новый оператор, который никакой роли сам в языке по себе не играет, но который можно перегрузить для любого, не только пользовательского типа.

float operator =>(MyVariant from, float to)
{
  if ( ! from.IsFloat() )
    throw std::bad_cast();
        
  to = from.get<float>();

  return to;
}

int operator =>(float from, int to)
{
  if ( static_cast<float>(static_cast<int>(from)) != from )
    throw std::bad_cast();
        
  to = static_cast<int>(from);

  return to;
}


Использование:
MyVariant my(1.2f);
float my => f;
int f => n;

float x = 1.f;
o => x;
И каждый день — без права на ошибку...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.