Я не могу понять эту строку - разыменование адреса переменной члена парламента, не занимающего официального поста или что?

  1. В данный момент - не влияет на него так очень, чтобы быть честным. Я нахожусь больше на 'этапе подготовки', узнавая о технологиях и функциях языка, которые делают это возможным.
  2. у меня нет одного конкретного домена, но я встретился, домены как математика (где многоядерный важно), вид/поиск данных (где делят & завоюйте на многоядерном, полезно) и мультикомпьютерные требования (например, требование, чтобы вычислительная мощность резервной станции была используется для чего-то).
  3. Это зависит, над каким языком я работаю. Очевидно, в C#, мои руки связываются еще готовой реализацией Параллельных Расширений, которая, действительно кажется, повышает производительность, пока Вы не начинаете сравнивать те же алгоритмы с OpenMP (возможно, не справедливое сравнение). Таким образом на.NET это будет легкой поездкой с [приблизительно 110] → Parallel.For рефакторинги и т.п..
    то, Где вещи становятся действительно интересными, с C++, потому что производительность, которую можно сжать из вещей как OpenMP, колеблется по сравнению с.NET. На самом деле OpenMP удивил меня много, потому что я не ожидал, что он будет работать так эффективно. Ну, я предполагаю, что у его разработчиков было много времени для полировки его. Мне также нравится этот, это доступно в Visual Studio out-of-the-box, в отличие от TBB, за который необходимо заплатить.
    Что касается MPI, я использую PureMPI.net для небольших домашних проектов (у меня есть LAN) дурачиться с вычислениями, которые не может вполне взять одна машина. Я никогда не использовал MPI коммерчески, но я действительно знаю, что MKL имеет некоторые MPI-оптимизированные функции, которые могли бы быть интересны посмотреть на для любого нуждающегося в них.
  4. я планирую сделать 'несерьезное вычисление', т.е. использовать дополнительные ядра для предварительного вычисления результатов, которые могли бы или не могли бы быть необходимы - разрешение RAM, конечно. Я также намереваюсь копаться в дорогостоящих алгоритмах и подходах, которые прямо сейчас не могут обработать машины большинства конечных пользователей.
  5. Что касается доменов, не извлекающих выгоду из распараллеливания... хорошо, можно всегда находить что-то. Одна вещь I касавшаяся, достойная поддержка в.NET, хотя, к сожалению, я оставил надежду, что могут быть достигнуты скорости, подобные C++.
7
задан Community 23 May 2017 в 12:12
поделиться

1 ответ

Думайте об этом так:

(q).*(&HackedQueue::c);

Во-первых, у вас есть HackedQueue :: c, который является просто именем переменной-члена. Затем вы берете & HackedQueue :: c, который является указателем на эту переменную-член. Затем вы берете q , который является просто ссылкой на объект. Затем вы используете оператор «привязать указатель к члену по ссылке» . * , чтобы связать переменную-член, на которую ссылается указатель на член-переменную, используя q как this ].

Что касается проблемы с закрытым членом, priority_queue :: c только защищено, а не закрыто, поэтому неудивительно, что когда вы производите от priority_queue , это вы можете получить доступ к его защищенным членам.

12
ответ дан 6 December 2019 в 21:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: