пятница, 28 марта 2008 г.
Переносимый код
Прислали сегодня ссылку на перевод статьи на тему переносимости кода. Там высказываются интересные мысли, но, как показывает опыт, если в ближайших планах компании не значится переход на какую-либо новую платформу, то усилия на поддержку совместимости не окупаются.
Posted by
Kirill V. Lyadvinsky
обновлено:
2008-03-28T14:33:57Z
Labels:
programming
среда, 26 марта 2008 г.
fun code
Today I've found funny code somewhere in the big project. It looks like the following:
class T
{
public:
// ... some declarations
bool operator ==( T& t )
{
bool b = false;
if ( t == *this ) b = true;
return b;
}
}
Posted by
Kirill V. Lyadvinsky
обновлено:
2013-09-09T11:58:18Z
Семинар Эдварда Йордона в Москве
Вчера пришло письмо из OZON'a про семинар Эдварда Йордона, который будет проходить в Москве и Питере (дают, кстати, скидку 10% + 5% за предоплату).
Возможно стоит съездить, но есть опасения, что будет просто пересказ книги...
Возможно стоит съездить, но есть опасения, что будет просто пересказ книги...
Posted by
Kirill V. Lyadvinsky
обновлено:
2008-05-13T09:34:56Z
Labels:
разное
пятница, 21 марта 2008 г.
avi copy with cut function
I've updated avi cut© function. Now it can be used standalone completly. Function
main
implemented just for test to compile working exe file and do not use all functionality range of CopyAvi
function.
Posted by
Kirill V. Lyadvinsky
обновлено:
2013-09-09T11:58:18Z
среда, 19 марта 2008 г.
X или x в структуре/классе ?
Думали тут с коллегой как автоматически определять какие x,y в структуре (ну т.е. большие или маленькие). Это нужно для написания, например, шаблонной функции определения площади многоугольника - чтобы туда можно было передать точки типа POINT с x,y (в GDI) или Point с X,Y (как в GDI+). На каком-то этапе возник код такого вида:
Кстати в MSVC++ компилируется и такой код:
template<int> struct TT {typedef int type;}; template<class P> bool Check_x(P p, typename TT<sizeof(&P::x)>::type b = 0) { return true; } template<class P> bool Check_x(P p, typename TT<sizeof(&P::X)>::type b = 0) { return false; } struct P1 {int x; }; struct P2 {int X; }; int main() { P1 p1 = {1}; P2 p2 = {1}; Check_x(p1); // must return true Check_x(p2); // must return false return 0; }И он не компилируется в Visual Studio (проверено на 2005SP1). Не принимается sizeof в шаблоне, хотя стандарт это позволяет. Баг был послан в Microsoft. Подробнее про баг тут. Кстати сказать, проверка в GNU C++ показала хороший результат - это работает. Зато не сработает код такого вида:
template<class P> bool Check_x(P p, typename TT<&P::x==&P::x>::type b = 0) { return true; }это, видимо, тоже баг, но уже в g++. Вторая конструкция была как раз использована для обхода проблемы в компиляторе от микрософт (там, правда, возникли другие проблемы).
Кстати в MSVC++ компилируется и такой код:
template<class P> bool Check_x(P p, typename TT<!(&P::x)>::type b = 0) { return true; }Кто нибудь знает что он означает? По идее должна выдаваться ошибка на этапе компиляции...
Posted by
Kirill V. Lyadvinsky
обновлено:
2013-09-10T07:13:16Z
пятница, 14 марта 2008 г.
Syntax highlight in blog
Eventually I have found a script for C++ syntax highlighting in the Blogger. Thanks to developers. Everyone could find it at here. It's very easy to use. Now all my code snippets are looks pretty good.
The key feature of the above highlihter is that the script permanently hosted at http://softwaremaniacs.org/, so that make it possible is to use the script on blogger.com.
The key feature of the above highlihter is that the script permanently hosted at http://softwaremaniacs.org/, so that make it possible is to use the script on blogger.com.
Posted by
Kirill V. Lyadvinsky
обновлено:
2015-04-17T12:54:27Z
Labels:
разное
четверг, 13 марта 2008 г.
Cut, copy and union video files without recompression
Here is the function (fast and furious) that can be used to copy, cut and union video files without recompression. It uses the Video for Windows (VFW) technology. You can pass a pointer to a callback function lpfnProgress to get an information about the copying progress. Additionally there is the main function in the code to show how to use it.
Posted by
Kirill V. Lyadvinsky
обновлено:
2016-02-11T12:45:23Z
Подписаться на:
Сообщения
(
Atom
)