cppx wie jsx



  • Manchen hier ist vielleicht jsx bekannt, indem html in javascript eingebettet ist, zum beispiel in React.

    const myComponent = () => {
       return <div>
        {JSON.stringify({bla: 2})}
       </div>
    }
    

    Ich arbeite gerade an ein C++ library mit der Web UIs umgesetzt werden können und die syntax ist gerade diese:

    div{
      id = "hi",
      onMouseEnter = [](auto const& event){/*...*/}
    }(
      button{},
      div{}(myString),
      // ...
      div{}(
        observe(variable),
        [](){
          return div{id = variable}(variable.toString());
        }
      )
    )
    

    Aber ich bin stark daran interessiert die datei vorzuverarbeiten sodass ich html-like schreiben kann und meine syntax rauskommt.

    auto my Component = /* irgendwas was indicated dass cppx kommt? */
    <div id="hi" onMouseEnter=[](auto const& event){/*c++ here*/}>
      <button />
      <div>
        myString
      </div>
    </div>
    
    // weiter c++ ab hier
    body.appendElement(myComponent);
    

    Ich wollte Ideen sammeln wie ihr sowas angehen würdet das so schmerzfrei für nutzer umzusetzen. Und gut intergrierbar mit cmake.
    Mir fällt bisher nur extremer overkill ein oder viel zu große Ansätze.


  • Mod

    Warum schreibst Du nicht den html-like Code in einen String und verarbeitest das ganze mit einem printf-aehnlichen variadischen Funktionstemplate, wobei die Callbacks als %1, %2 etc. notiert werden?

    Die cpp Datei vorzuverarbeiten klingt IMO nach einer inkommensurablen Arbeit.



  • Das würde mir nicht genügen, dass würde sich nicht gut anfühlen, da sich alles in einem string literal dann befindet.


Anmelden zum Antworten