Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Allow list initializer as function argument.

Abierto
#1,906 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
42/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
cpp
Área
compilers

Línea de trabajo

El reproducer está en test.osl y se compila mediante oslc; empieza ejecutando el comando indicado para confirmar el diagnóstico del argumento entre llaves. Sigue cómo el compilador gestiona los casos de initializer-list que funcionan frente al argumento de la llamada a la función y, después, confirma que el ejemplo se compila correctamente con el argumento de vector entre llaves.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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
Lenguaje dominante
C++
Estrellas
2.3k
Forks
415
Merge medio
2 d 10 h
PR fusionados (30 d)
14

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de AcademySoftwareFoundation/OpenShadingLanguage

Todos los issues de AcademySoftwareFoundation/OpenShadingLanguage

Issues similares

Más issues de C++

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.