никакой такой пакет не мог быть найден. Вероятно, это - потому что я использую ubuntu 12.04.
The, которой соответствующая версия для Ubuntu 12.04, с этой даты, должна быть
1.16.1.2ubuntu7
.
ia32-libs : Depends: ia32-libs-multiarch but it is not installable
Это ссылка к
ia32-libs-multiarch
страница, где можно загрузить .deb файл. Используйтеdpkg -i filename.deb
, чтобы вручную установить его, и, если успешный, попробовать склонный - добираются снова. В противном случае обновите с dpkg ошибкой.я установил ia32 на тесте x86_64 система и получил следующее для содержания триггерного Файла и содержания giomodule.cache. Проверьте, чтобы видеть, как ваши отличаются:
izx@myprecise:~$ grep libglib /var/lib/dpkg/triggers/File /usr/lib/x86_64-linux-gnu/gio/modules libglib2.0-0 /usr/lib/gio/modules libglib2.0-0 /usr/share/glib-2.0/schemas libglib2.0-0 /usr/lib/i386-linux-gnu/gio/modules libglib2.0-0:i386 /usr/lib/gio/modules libglib2.0-0:i386 /usr/share/glib-2.0/schemas libglib2.0-0:i386 izx@myprecise:~$ ls /usr/lib/x86_64-linux-gnu/gio/modules giomodule.cache libgiognutls.so libgvfsdbus.so libdconfsettings.so libgiolibproxy.so libgiognomeproxy.so libgioremote-volume-monitor.so izx@myprecise:~$ cat /usr/lib/x86_64-linux-gnu/gio/modules/giomodule.cache libgiognutls.so: gio-tls-backend libgioremote-volume-monitor.so: gio-native-volume-monitor,gio-volume-monitor libgvfsdbus.so: gio-vfs,gio-volume-monitor libgiolibproxy.so: gio-proxy-resolver libdconfsettings.so: gsettings-backend libgiognomeproxy.so: gio-proxy-resolver
из часто задаваемых вопросов по C #.
http://blogs.msdn.com/CSharpFAQ/archive/2004/03/09/86979.aspx
Почему C # не поддерживает макросы #define? В C ++ я могу определить макрос, например:
#define PRODUCT (x, y, z) x * y * z
, а затем использовать его в коде:
int a = PRODUCT (3, 2 , 1);
C # не позволяет этого делать. Почему?
На это есть несколько причин. Первая - это удобочитаемость.
Одна из наших основных целей разработки C # - сделать код легко читаемым. Возможность писать макросы дает программисту возможность создавать свой собственный язык, который не обязательно имеет какое-либо отношение к тому, что находится под кодом. Чтобы понять, что делает код, пользователь должен не только понимать, как работает язык, но и понимать все макросы #define, которые действуют в данный момент. Это значительно затрудняет чтение кода.
В C # вы можете использовать методы вместо макросов, и в большинстве случаев JIT встроит их, давая вам тот же аспект производительности.
Есть также несколько более тонкий вопрос. Макросы выполняются в текстовом виде, что означает, что если я напишу:
int y = PRODUCT (1 + 2, 3 + 4, 5 + 6)
, я ожидаю получить что-то, что дает мне
3 * 7 * 11 = 231
, но на самом деле расширение, как я определил, дает:
int y = 1 + 2 * 3 + 4 * 5 + 6;
, что дает мне 33. Я могу получить вокруг этого разумным применением скобок, но очень легко написать макрос, который работает в одних ситуациях и не работает в других.
Хотя C #, строго говоря, не имеет препроцессора, в нем есть условные символы компиляции, которые можно использовать для воздействия на компиляцию. Их можно определить в коде или с помощью параметров компилятора. Директивы «предварительной обработки» в C # (названы исключительно для согласованности с C / C ++, Используется для определения и отмены определения символов условной компиляции
#if, #elif, #else и #endif
Используется для условного пропуска разделов исходного кода
#line
Используется для управления номерами строк, выдаваемых для ошибок и предупреждений.
# ошибка и # предупреждение
Используется для выдачи ошибок и предупреждений.
#region и #endregion
Используются для явной пометки частей исходного кода.
См. Раздел 9.5 спецификации ECMA для получения дополнительной информации по вышеизложенному. Условная компиляция также может быть достигнута с помощью атрибута Conditional в методе, так что вызовы метода будут компилироваться только тогда, когда будет определен соответствующий символ. См. Раздел 24.4.2 спецификации ECMA для получения дополнительной информации об этом.
Автор: Эрик Ганнерсон
В этой статье сравниваются макросы perl и lisp, но суть остается прежней: макросы текстового уровня (perl / c ++) вызывают серьезные проблемы по сравнению с макросами исходного уровня (lisp)
http: / /lists.warhead.org.uk/pipermail/iwe/2005-July/000130.html
Более смелые люди, чем я, свернули свою собственную систему макросов в C # http://www.codeproject.com/KB /recipes/prepro.aspx
Макросы в C / C ++ использовались для определения констант, создания небольших встроенных функций и для различных вещей, непосредственно связанных с компиляцией кода (#ifdef) .
В C # у вас есть строго типизированные константы, достаточно умный компилятор для встраивания функций, когда это необходимо, и вы знаете, как правильно компилировать материал (никакой ерунды с предварительно скомпилированными заголовками).
Но нет особой причины, по которой вы не могли бы сначала запустить свой CS-файл через препроцессор C, если вы действительно этого хотели:)
Макросы в стиле C ++, по моему опыту, добавляют огромную сложность без соответствующих преимуществ. Я точно не пропустил их ни на C #, ни на Java. (Я вообще редко использую символы препроцессора в C #, но иногда рад, что они есть.)
Теперь разные люди призывали к макросам в стиле Lisp , о которых я мало знаю, но определенно звучат приятнее, чем в стиле C ++.
Что конкретно вы хотите сделать с макросами? Возможно, мы сможем помочь вам мыслить более идиоматично в стиле C # ...
Макросы чрезмерно используются в C ++
, но они все еще имеют свое применение , однако большинство из этих применений не актуально в C #
за счет отражения и лучшего интегрированного использования исключений для сообщения об ошибках.
Макросы - это инструмент для тех дней, когда большинство программистов были умнее компилятора. В C / C ++ все еще есть случаи, когда это так.
В настоящее время большинство программистов не так умны, как компилятор / среда выполнения C #.
Можно использовать геоип
драгоценный камень.
environment.rb
config.gem 'geoip'
Загрузить GeoIP.dat.gz
из http://www.maxmind.com/app/geolitecountry
. распакуйте файл. Ниже предполагается, что в разделе # {RAILS _ ROOT }/db
dir.
@geoip ||= GeoIP.new("#{RAILS_ROOT}/db/GeoIP.dat")
remote_ip = request.remote_ip
if remote_ip != "127.0.0.1" #todo: check for other local addresses or set default value
location_location = @geoip.country(remote_ip)
if location_location != nil
@model.country = location_location[2]
end
end
-121--1311398- int _ fast # _ t
из < stdint.h > или < boost/cstdint.hpp > .
Это означает, что вы откажетесь от простоты и непротиворечивости (эти типы могут быть символьным типом, например, которые являются целыми типами в C/C + +, и это может привести к неожиданным резолюциям функции) вместо того, чтобы просто использовать int.
Вы увидите гораздо более значительные преимущества производительности, сосредоточившись на других областях, таких как алгоритмическая сложность и узоры доступа.
Он будет использоваться на процессоре x86 и храниться полностью в оперативной памяти. Достаточно большое количество должно быть сохранено (50 000 +), поэтому процессор кэширует и это необходимо учитывать.
Вы все еще должны беспокоиться о кэше ( после вы находитесь на этом уровне оптимизации), даже если все данные не будут кэшированы. Например, доступ к каждому предмету осуществляется последовательно? непредсказуемо? или только одно поле из каждого предмета в последовательности? Сравните структуру {int a, b;} данных [N];
с int data_a[N], data_b[N];
. (Представьте, что вам нужны все «а» сразу, но вы можете игнорировать другой, в каком пути более дружественный кэш?) Опять же, это не похоже на основную область, на которой следует сосредоточиться.
Чтобы вам было интересно вводить ЭТО снова и снова.
// Windows presetation foundation dependency property.
public class MyStateControl : ButtonBase
{
public MyStateControl() : base() { }
public Boolean State
{
get { return (Boolean)this.GetValue(StateProperty); }
set { this.SetValue(StateProperty, value); }
}
public static readonly DependencyProperty StateProperty = DependencyProperty.Register(
"State", typeof(Boolean), typeof(MyStateControl),new PropertyMetadata(false));
}
Очевидно, что разработчики C # и .NET никогда не используют библиотеки или рамки, которые они создают. Если бы они это сделали, то поняли бы, что какая-то форма гигенной синтаксической макросистемы определенно в порядке вещей.
Не позволяйте недостаткам хромых макросов C и C++ замять вас силой компиляции кода, разрешенного по времени. Компиляция временного разрешения и генерации кода позволяет более эффективно выражать ЗНАЧЕНИЕ и НАМЕРЕНИЕ кода без необходимости прописывать все детали niggling исходного кода. Например, что если бы можно было заменить вышесказанное на следующее:
public class MyStateControl : ButtonBase
{
public MyStateControl() : base() { }
[DependencyProperty(DefaultValue=true)]
bool State { get; set; }
}
у Бу они есть, у ОкамМЛ (по крайней мере, Мета МЛ), а у C и C++ - (в противной форме, но лучше, чем вообще не иметь). C # - нет.