Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Allow list initializer as function argument.

Aperta
#1,906 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
42/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
cpp
Ambito
compilers

Direzione di ricerca

Il reproducer si trova in test.osl e viene compilato tramite oslc; inizia eseguendo il comando riportato per confermare la diagnostica relativa all’argomento tra parentesi graffe. Traccia il modo in cui il compilatore gestisce i casi funzionanti di initializer-list rispetto all’argomento della chiamata di funzione, quindi conferma che l’esempio venga compilato correttamente con l’argomento vector tra parentesi graffe.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Problem

Initializer lists are not allowed as function arguments, would be nice if they were, and would possibly simplify some of the MaterialX code base for OSL code generation.

struct vector2
{
    float x;
    float y;
};

void NG_switch_vector2I(vector2 in1, vector2 in2, vector2 in3, output vector2 out)
{
    out = in1;
}

shader test_shader
(
    vector2 input = {1,2},              // this works
    output float out = 0
)
{
    vector2 outVec;
    vector2 in1 = {0,1};                // this works

    NG_switch_vector2I(
        in1,                            // this works
        vector2(0.000000, 0.000000),    // this works
        {0.000000, 0.000000},           // this doesn't work
        outVec);

    out = outVec.x;
}

Expected behavior:
I expected this to compile just fine...

Actual behavior:
But it didn't... I get the following compile error.

 > oslc test.osl
test.osl:24: error: Cannot construct type 'unknown'
FAILED test.osl
Steps to Reproduce
  1. Compile the shader code above
  2. Get compile error
Versions
  • OSL branch/version: 1.13.8.0
  • OS: MacOS Sequoia
  • C++ compiler:
  • LLVM version: 17.0.6
  • OIIO version: 2.5.9.0
Lingua principale
C++
Stelle
2.3k
Fork
415
Merge medio
2g 10h
PR unite (30g)
14

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di AcademySoftwareFoundation/OpenShadingLanguage

Tutte le issue di AcademySoftwareFoundation/OpenShadingLanguage

Issue simili

Altre issue su C++

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.