Почему у некоторых стандартных операторов нет стандартных функторов?

У нас есть:

  • std :: plus ( + )
  • std :: minus ( - )
  • std :: multiplies ( * )
  • std :: divides ( / )
  • std :: modulus (% )
  • std :: negate ( - )
  • std :: logic_or ( || )
  • std :: logic_not (! )
  • std :: logic_and ( && )
  • std :: equal_to ( == )
  • std :: not_equal_to (! = )
  • std :: less ( <)
  • std :: more (> )
  • std :: less_equal ( <= )
  • std :: great_equal (> = )

У нас нет функторов для:

  • и (адрес-из)
  • * (разыменование)
  • []
  • ,
  • битовых операторов ~ , и , [11139] 956] | , ^ , << , >>
  • ++ (префикс / постфикс) / - (префикс / постфикс)
  • sizeof
  • static_cast / dynamic_cast / reinterpret_cast / const_cast
  • приведения стиля c
  • new / new [] / delete / delete []
  • все операторы указателя на функции-члены
  • все операторы составного присваивания.

Is есть ли причина, по которой у нас их нет, или это просто недосмотр?

23
задан Billy ONeal 26 October 2011 в 20:36
поделиться