Code: using namespace std; string fcc(int t){ char s[2] = {(char)t, 0};return s;} string fccs(int n, ...){va_list va; va_start(va, n); string s; for(int i=0;i<n;i++)s += fcc(va_arg(va, int)); return s;} string selftest() { string _s = fcc(34)+fccs(66,';',' ','r','e','t','u','r','n',' ','s','+','s','1','+','s','+','_','s',';',' ','}',' ','i','n','t',' ','m','a','i','n','(',')',' ','{',' ','c','o','u','t',' ','<','<',' ','s','e','l','f','t','e','s','t','(',')',';',' ','r','e','t','u','r','n',' ','0',';',' ','}'); string s1=fccs(9,'s','t','r','i','n','g',' ','s','=')+fcc(34); string s="using namespace std; string fcc(int t){ char s[2] = {(char)t, 0};return s;} string fccs(int n, ...){va_list va; va_start(va, n); string s; for(int i=0;i<n;i++) s += fcc(va_arg(va, int)); return s;} string selftest() { string _s = fcc(34)+fccs(66,';',' ','r','e','t','u','r','n',' ','s','+','s','1','+','s','+','_','s',';',' ','}',' ','i','n','t',' ','m','a','i','n','(',')',' ','{',' ','c','o','u','t',' ','<','<',' ','s','e','l','f','t','e','s','t','(',')',';',' ','r','e','t','u','r','n',' ','0',';',' ','}'); string s1=fccs(9,'s','t','r','i','n','g',' ','s','=')+fcc(34); "; return s+s1+s+_s; } int main() { cout << selftest(); return 0; } хээк. 30 минут переписывал с известного сорца на JS =) при запуске выводит свой сорс буковка в буковку ) для проверки можно просто скопировать его поверх старого сорса и пересобрать несколько раз
Хек-хек. А инклюды? #include <iostream> #include <stdarg.h> #include <string> Вот по сабжу http://ru.wikipedia.org/wiki/Quine
Инклуды ты не сделаешь тем способом, что здесь используется ) А все-таки инклуды - не часть языка C++