Forum: Mikrocontroller und Digitale Elektronik Welche Programmiersprache auf µC


von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Wilhelm M. schrieb:
> Originär hier im Wiki zu schreiben, ist für mich zu umständlich.

In einem Wiki nützt es aber nicht viel, wenn du ein PDF nur hinlegst.
(Verlinken kannst du es natürlich.)

Von asciidoc nach Wiki sollte man nahezu automatisiert übersetzen
können.  Wenn du das nicht selbst tun willst, wird sich sicher jemand
finden, der es macht.

von Wilhelm M. (wimalopaan)


Lesenswert?

Jörg W. schrieb:
> Wilhelm M. schrieb:
>> Originär hier im Wiki zu schreiben, ist für mich zu umständlich.
>
> In einem Wiki nützt es aber nicht viel, wenn du ein PDF nur hinlegst.
> (Verlinken kannst du es natürlich.)
>
> Von asciidoc nach Wiki sollte man nahezu automatisiert übersetzen
> können.

Mmh, muss mal schauen, wie das dann mit den ganzen Code-Snippets gehen 
könnte.

Beitrag #5054046 wurde von einem Moderator gelöscht.
von Christopher J. (christopher_j23)


Lesenswert?

Jörg W. schrieb:
> Von asciidoc nach Wiki sollte man nahezu automatisiert übersetzen
> können.  Wenn du das nicht selbst tun willst, wird sich sicher jemand
> finden, der es macht.

Pandoc kann leider nicht asciidoc direkt lesen aber mit Asciidoctor von 
asciidoc nach docbook und dann mit pandoc von docbook nach Mediawiki 
sollte gehen.

Unter http://pandoc.org gibt es mehr Infos.

Beitrag #5054785 wurde von einem Moderator gelöscht.
Beitrag #5055979 wurde von einem Moderator gelöscht.
Beitrag #5056167 wurde von einem Moderator gelöscht.
Beitrag #5056189 wurde vom Autor gelöscht.
Beitrag #5056192 wurde von einem Moderator gelöscht.
Beitrag #5056889 wurde von einem Moderator gelöscht.
Beitrag #5057381 wurde von einem Moderator gelöscht.
Beitrag #5057562 wurde von einem Moderator gelöscht.
Beitrag #5057579 wurde von einem Moderator gelöscht.
Beitrag #5058929 wurde von einem Moderator gelöscht.
Beitrag #5059534 wurde von einem Moderator gelöscht.
Beitrag #5059856 wurde von einem Moderator gelöscht.
Beitrag #5060132 wurde von einem Moderator gelöscht.
Beitrag #5060974 wurde von einem Moderator gelöscht.
Beitrag #5061241 wurde von einem Moderator gelöscht.
Beitrag #5061252 wurde von einem Moderator gelöscht.
Beitrag #5062131 wurde von einem Moderator gelöscht.
Beitrag #5062135 wurde von einem Moderator gelöscht.
Beitrag #5065385 wurde von einem Moderator gelöscht.
Beitrag #5066648 wurde von einem Moderator gelöscht.
Beitrag #5067022 wurde von einem Moderator gelöscht.
Beitrag #5067923 wurde von einem Moderator gelöscht.
Beitrag #5069122 wurde von einem Moderator gelöscht.
Beitrag #5069367 wurde von einem Moderator gelöscht.
Beitrag #5070212 wurde von einem Moderator gelöscht.
Beitrag #5070331 wurde von einem Moderator gelöscht.
Beitrag #5071493 wurde von einem Moderator gelöscht.
Beitrag #5071497 wurde von einem Moderator gelöscht.
Beitrag #5072279 wurde von einem Moderator gelöscht.
Beitrag #5073655 wurde von einem Moderator gelöscht.
Beitrag #5073920 wurde von einem Moderator gelöscht.
Beitrag #5073936 wurde von einem Moderator gelöscht.
Beitrag #5076855 wurde von einem Moderator gelöscht.
Beitrag #5077745 wurde von einem Moderator gelöscht.
Beitrag #5078549 wurde von einem Moderator gelöscht.
Beitrag #5079815 wurde von einem Moderator gelöscht.
Beitrag #5082164 wurde von einem Moderator gelöscht.
Beitrag #5085190 wurde von einem Moderator gelöscht.
Beitrag #5085209 wurde von einem Moderator gelöscht.
von Vincent H. (vinci)


Lesenswert?

Wilhelm M. schrieb:
> Vincent H. schrieb:
>> Aktuell verwende ich eben SFINAE um diverse (statische) Methoden im
>> Template zu deaktivieren, sollte jenes Feature in der entsprechenden
>> Peripherie nicht vorhanden sein. Leider artet das bei komplexen Dingen
>> wie etwa den STM Timern in sehr mühsame Arbeit aus... Da gibts aktuell
>> glaub ich 5-6 verschiedene Timer Implementierungen, die alle ein klein
>> wenig anders sind. Wie gehst du mit sowas um?
>
> Irgendeiner muss die Arbeit ja machen, wenn die HW-Struktur so ... ist.
> Und in solchen Fällen eine akzeptable Lösung zu finden, ist wirklich
> eine Kärrnerarbeit.
>
> Also ich persönlich finde SFINAE zwar nützlich, aber eigentlich nur bei
> freien Funktionstemplates sinnvoll, um Überladungen für bestimmten Typen
> zu aktivieren. Der Klassiker ist hier wohl im µC-Bereich, dass man für
> die Bits der Kontrollregister scoped enums einführt, und dann gezielt
> mit einem Trait die Operatoren (etwa |) einschaltet (type safe
> registers), die man zulassen möchte.
>
> Überladungen in Klassentemplates per SFINAE ein/auszuschalten finde ich
> nicht so "schön".  Die Alternative, Template-Spezialisierungen zu
> verwenden (full-specializations) ist auch unpraktisch, weil ich gerne
> header-only Bibliotheken möchte (dann muss man sich nicht um das Bauen
> der Bibliotheken kümmern), und dass dann ggf. zu ODR-Problemen führt.
>
> Die m.E. gangbare Variante ist es, über Constraints
> Klassentemplatespezialisierungen einzuführen und ggf. gemeinsame Anteile
> als CRTP / mixin zu bauen. Der Vorteil hier ist, dass man ein Concept
> schreiben kann, dass wie eine vollst. Spezialisierung wirkt, aber zu
> keinen ODR-Problemen führt, und das es sehr kompakt formuliert werden
> kann. Andernfalls hat man ja im(!) Template x-fach dieses SFINAE
> Gewurschtel drin.
> Dies bedeutet zugegebener Maßen, dass Du einen Compiler brauchst, der
> Concepts unterstützt (wie etwa gcc ab 6.1).


Ein wenig späte Antwort, jedoch bin ich eben draufgekommen, dass Jason 
Turner (emptycrate.com) offensichtlich vor einem ähnlichen Problem 
stand. In seinem Chaiscript dürfte jede Menge historischer SFINAE Code 
stehen, den er in folgender C++ Weekly Episode

http://articles.emptycrate.com/2016/07/08/using-c++17s-constexpr-if.html

durch constexpr-if ersetzt. Das ist mehr oder weniger ein 1:1 Fix, mit 
dem man ohne viel Nachdenken die häßlichen Signatures los wird.

Beitrag #5087823 wurde von einem Moderator gelöscht.
Beitrag #5092797 wurde von einem Moderator gelöscht.
Beitrag #5096826 wurde von einem Moderator gelöscht.
Beitrag #5096830 wurde von einem Moderator gelöscht.
Beitrag #5115652 wurde von einem Moderator gelöscht.
Beitrag #5115670 wurde von einem Moderator gelöscht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.