Mamy hipotetyczną sytuację: chcę korzystać z obiektu cout podobnie jak z funkcji, tj:
string a = "string";
double b = 2.788888;
cout (4+8, a, b);
Jak to zrobić? Liczę na poważne odpowiedzi, a nie - jak w większości tematów na forum - odpowiedź w stylu "to głupie, niepotrzebne".
Doszedłem do tego:
#include <iostream>
#include <string>
using namespace std;
void cout (auto a) { // tutaj potrzebna modyfikacja pozwalajaca na przyjmowanie nieokreslonej liczby parametrow - przedstawiam tylko idee
std::cout<<a;
}
int main()
{
string a = "niewiemco";
::cout(4. + (double)18/5);
return 0;
}
ale tutaj używam operatora zakresu, którego nie chcę. using namespace std też jest konieczne, bez tego zapewne dałoby się to ładnie zrobić.
Jakiekolwiek kombinowanie z konstruktorem klasy cout nie ma sensu, bo i tak tego nie wywołamy. Natomiast
#define cout(x) cout<<x
#define cout(x,y) cout<<x<<y
...
nie zadziała - to chyba oczywiste.
Jakieś pomysły?