В GDI+ внутри Graphics.DrawImage лочится критическая секция. Поэтому заводить более одного рабочего потока для рисования -- бессмысленно. А если еще и гуй отрисовывается картинками, то вообще фигня получается.
2013-12-03
2013-11-25
Dot syntax in Objective C
По рсс приползло прекрасное (или ужасное, как посмотреть).
Люди делают в Objective-C вызов метода через точку. К примеру, a.plus(b) вместо [a plus:b] :
Заводят рид-онли свойство plus, которое возвращает блок (ака лямбда), который зовет у self метод plus: с переданным параметром.
Получается (a.plus)(b).
PS. Смотреть тут
Люди делают в Objective-C вызов метода через точку. К примеру, a.plus(b) вместо [a plus:b] :
Заводят рид-онли свойство plus, которое возвращает блок (ака лямбда), который зовет у self метод plus: с переданным параметром.
Получается (a.plus)(b).
PS. Смотреть тут
2013-11-20
о посредниках.
Чтобы Visual Studio 2013 увидела 2008-ю как toolset (IDE от 2013, компилятор от 2008), нужно установить 2010-ю.
2013-10-18
Разработчики openSUSE -- <нехорошее слово>.
Есть программа, назовем ее abc, плагины к которой на других системах находятся в /usr/lib/abc (c погрешностью до /usr/lib64/abc или /usr/lib/x86_64-linux-gnu/abc).
В сусе эти плагины ВНЕЗАПНО лежат в /usr/lib64/libabc-1_0.
PS. Project Owner заменил мой код (беру из `ldd abc` путь к libabc.so, к нему добавляю "/abc") на другой костыль: вызов abc с несуществующим плагином и парсинг пути из сообщения об ошибке.
2013-07-22
Заменил Caps Lock на Ctrl.
Собственно, сабж.
Если кому интересно:
Если кому интересно:
[HKEY_CURRENT_USER\Keyboard Layout] "Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,1d,00,3a,00,00,00,00,00
2013-06-21
Способ реализации "приватного" АПИ
Интересный трюк:
template < typename T >
class access_key {
private:
friend T;
access_key() {}
};
class repairmen;
class elevator {
public:
void fix( access_key<repairman> );
};
class repairman {
public:
void fix_elevator( elevator & e ) {
e.fix( access_key<repairman>() );
}
}
увидел тут2013-05-08
Много видал я извращений с макросами, но такого ...
Cello is a GNU99 C library which brings higher level programming to C.
Ссылки на примеры:
Пример программы:
На что только люди не пойдут, чтоб на С++ не писать.
Interfaces allow for structured design;
Duck Typing allows for generic functions;
Exceptions control error handling;
Constructors/Destructors aid memory management;
Ссылки на примеры:
Пример программы:
#include "Cello.h"
int main(int argc, char** argv) {
/* Tables require "Eq" and "Hash" on key type */
var prices = new(Table, String, Int);
put(prices, $(String, "Apple"), $(Int, 12));
put(prices, $(String, "Banana"), $(Int, 6));
put(prices, $(String, "Pear"), $(Int, 55));
/* Tables also supports iteration */
foreach (key in prices) {
var price = get(prices, key);
print("Price of %$ is %$\n", key, price);
}
/* "with" automatically closes file at end of scope. */
with (file in open($(File, NULL), "prices.bin", "wb"))) {
/* First class function object */
lambda(write_pair, args) {
/* Run time type-checking with "cast" */
var key = cast(at(args, 0), String);
var val = cast(get(prices, key), Int);
try {
print_to(file, 0, "%$ :: %$\n", key, val);
} catch (e in IOError) {
println("Could not write to file - got %$", e)
}
return None;
};
/* Higher order functions */
map(prices, write_pair);
}
delete(prices);
}
На что только люди не пойдут, чтоб на С++ не писать.
2013-04-18
продолжаем извращаться
Еще один вариант "типизированных" коллекций в Objective C
#define NSArray_(T) NSArray #define NSDictionary_(K,V) NSDictionary NSArray_(NSString) * strings = … NSDictionary_(NSString,NSString) * dict =
Подписаться на:
Сообщения (Atom)