Эффективное использование библиотеки iomanip C ++

Я создал класс Vector на C ++ и он отлично справляется с моими проблемами. Сейчас я его очищаю и наткнулся на следующий фрагмент кода:

std::ostream& operator<<(std::ostream &output, const Vector &v){
  output<<"["
    <<std::setiosflags(std::ios::right | std::ios::scientific)
    <<std::setw(23)
    <<std::setprecision(16)
    <<v._x<<", "
    <<std::setiosflags(std::ios::right | std::ios::scientific)
    <<std::setw(23)
    <<std::setprecision(16)
    <<v._y<<", "
    <<std::setiosflags(std::ios::right | std::ios::scientific)
    <<std::setw(23)
    <<std::setprecision(16)
    <<v._z<<"]";
  return output;
} 

Код позволяет печатать вектор как std :: cout << v << std: : endl; . Каждое число состоит из 23 пробелов, из которых 16 - десятичные. Текст выровнен по правому краю, поэтому будет напечатано:

 1.123456123456e+01
-1.123456123456e+01

Вместо

1.123456123456e+01
-1.123456123456e+01

Код кажется ужасно повторяющимся. Как вы можете " сохранить "формат (все сетифеги , ], чтобы использовать его в опции домена функции setcookie, чтобы разрешить доступ к cookie на всех возможных поддоменах.

Например, допустим, у меня есть

function strip_out_subdomain($domain)
{
    //do something to remove subdomain
    return $only_my_domain;
}
$domain = strip_out_subdomain($_SERVER['SERVER_NAME']);
setcookie('mycookie', '123', time()+3600, '/', $domain);

Основная проблема здесь в том, что я не знаю шаблон для своего домена. Это может быть что-то вроде:

  • www.mydomain.com
  • subdomain.mydomain.com
  • subdo.mydo.co
  • subdo.subdo.mydomain.com
  • subdo.subdo.mydo.co .uk
  • и т. д.

Спасибо

Стефани

7
задан Stef 16 March 2011 в 16:35
поделиться