LINUX.ORG.RU

манипуляторы?..


0

0

Привет всем.

Тут играюсь с манипуляторами потоков. Есть код:


ostream& sO(ostream& s){
  return s << "мда";
}

int main(){
  cout << "|" << setiosflags(ios::left) << setw(10) << setfill('*') 
       << sO << "|" << endl
  return 0;
}


Ожидал увидить такой текст:
|мда*******|

Увидел:
|мда|

Тестировал на gcc3.4.3, на старом-не-добром BC 3.1 выдало что и ожидалось, других компиляторов под руками нет.

Соответсвенно вопрос, а что должно бы было выдать?..
★★★★★

Re: манипуляторы?..

Должно было выдать ошибку при компиляции.

watashiwa_daredeska ★★★★ ()

Re: манипуляторы?..

bash-2.05b$ cat test.cpp
#include <iostream>
#include <iomanip>

using namespace std;

ostream& sO(ostream& s){
   return s << "мда";
}

int main(){
   cout
      << "|"
      << setiosflags(ios::left) << setw(10) << setfill('*') << sO
      << "|"
      << endl;
      return 0;
}

bash-2.05b$ ./test
|мда*******|

bash-2.05b$ g++ --version
g++ (GCC) 3.2 20020903 (Red Hat Linux 8.0 3.2-7)
Copyright (C) 2002 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Проблема видимо на той стороне! (с) 



Flogger_d ()
Ответ на: Re: манипуляторы?.. от Flogger_d

Re: манипуляторы?..

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

catap ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.