четверг, 17 декабря 2009 г.

Добавил в rss-2-lj обработку ошибок <Fault 320: 'Client error: Sorry, there was a problem with content of the entry'> и <Fault 211: 'Client error: Invalid or malformed tag list'>

Поиск разнотипных сравнений

(выношу из комментов)
henic@lj заинтересовался возможными решениями поиска разнотипных сравнений двух enum-ов в большой программе (Visual Studio).
Я ему предложил Александреску-style решение:
enum    E1 
{
V1,
V2
};

enum E2
{
V3,
V4
};

template <typename T1, typename T2>
bool operator==(T1 t1,T2 t2)
{
float a = "asd";
}

template <typename T1, typename T2>
bool operator!=(T1 t1,T2 t2)
{
float a = "asd";
}

int main()
{
E1 e1=V1;
E2 e2=V3;

if (e1==V2)
std::cout<<"+\n";
if (e1==V3)
std::cout<<"-\n";
if (e1!=e2)
std::cout<<"-\n";
if (e2==V4)
std::cout<<"+\n";
if (e2!=V2)
std::cout<<"-\n";
if (e2==e1)
std::cout<<"-\n";

return 0;
}

в строках где разнотипное сравнение VS2003 дает ошибку типа
main.cpp(235) : error C2440: 'initializing' : cannot convert from 'const char [4]' to 'float'
There is no context in which this conversion is possible
main.cpp(251) : see reference to function template instantiation 'bool operator !=<E2,E1>(T1,T2)' being compiled
with
[
T1=E2,
T2=E1
]
болдовая строка - как раз место сравнения
Если же разнотипных сравнений уже нет - все будет компилироваться без ошибок

по словам henic@lj-а решение оказалось эффективным: "Оппа... Какой паровоз других не совсем корректных сравнений эта штука мне нашла. :)"

понедельник, 14 декабря 2009 г.

Google Wave

Кстати инвайты на Google Wave никому не надо?

воскресенье, 6 декабря 2009 г.

Снова заработал rss-2-lj.
Для этого убрал ссылку из сообщений на собственно http://rss2lj.service42.com/. Я так понимаю, что это так ЖЖ продолжает воювать со спамерами. Поэтому нет никаких гарантий, что в любой момент опять что-нибудь не сломается :(