История изменений
Исправление
wota,
(текущая версия)
:
и оставить камня на камне от его MATCH приличному лисперу труда не составило бы
я не предлагал MATCH как решение оригинальной задачи и понимаю всю убогость препроцессора (что сразу же написал), не использую его на практике (для таких целей), но мне таки интересно:
#include <iostream>
#include <string>
using namespace std;
int main( int argc, char* argv[] )
{
if( argc < 2 ) exit(-1);
#define MATCH( x, y ) string(#x) == argv[1] ? [&](){ y; } ():
MATCH( day, cout << "Tuesday 5" )
MATCH( date, cout << "01/01/2001" )
MATCH( time, cout << "00:00" )
throw "error!!!";
}
что в данном примере не так? надо чтоб оно работало или удовлетворяло каким-то требованиям, не связанным с именно работой кода?
Исходная версия
wota,
:
и оставить камня на камне от его MATCH приличному лисперу труда не составило бы
я не предлагал MATCH как решение оригинальной задачи и понимаю всю убогость препроцессора (что сразу же написал), не использую его на практике, но мне таки интересно:
#include <iostream>
#include <string>
using namespace std;
int main( int argc, char* argv[] )
{
if( argc < 2 ) exit(-1);
#define MATCH( x, y ) string(#x) == argv[1] ? [&](){ y; } ():
MATCH( day, cout << "Tuesday 5" )
MATCH( date, cout << "01/01/2001" )
MATCH( time, cout << "00:00" )
throw "error!!!";
}
что в данном примере не так? надо чтоб оно работало или удовлетворяло каким-то требованиям, не связанным с именно работой кода?