LINUX.ORG.RU

История изменений

Исправление 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!!!";
}

что в данном примере не так? надо чтоб оно работало или удовлетворяло каким-то требованиям, не связанным с именно работой кода?