Articles of sobrecarga

SFINAE funciona de manera diferente en los casos de tipo y parámetros de plantilla sin tipo

Por qué funciona este código: template< typename T, std::enable_if_t<std::is_same::value, T>* = nullptr> void Add(T) {} template< typename T, std::enable_if_t<!std::is_same::value, T>* = nullptr> void Add(T) {} y puede distinguir correctamente entre estas dos llamadas: Add(1); Add(1.0); mientras que el siguiente código, si se comstack, ¿da como resultado la redefinición del error Add () ? template< typename […]

¿Por qué el autoboxing no invalida las varargs cuando se usa la sobrecarga de métodos en Java 7?

Tenemos un LogManager de clase en nuestro proyecto Java que se ve así: public class LogManager { public void log(Level logLevel, Object… args) { // do something } public void log(Level logLevel, int value, Object… args) { // do something else } } Al comstackr el proyecto con OpenJDK 6 en Debian todo funciona bien. […]

Resolución de sobrecarga con la función std ::

Considera este ejemplo de código: #include #include typedef std::function func1_t; typedef std::function func2_t; struct X { X (func1_t f) { } X (func2_t f) { } }; int main ( ) { X x([](){ std::cout << "Hello, world!\n"; }); } Estaba seguro de que no debería comstackrse, porque el comstackdor no debería poder elegir uno […]

¿Constructor de sobrecarga para las clases de casos de Scala?

En Scala 2.8, ¿hay alguna manera de sobrecargar a los constructores de una clase de caso? En caso afirmativo, por favor ponga un fragmento para explicar, si no, ¿por qué?

funciones ‘amigo’ y << sobrecarga del operador: ¿cuál es la forma correcta de sobrecargar un operador para una clase?

En un proyecto en el que estoy trabajando, tengo una clase de Score , que se define a continuación en score.h . Estoy tratando de sobrecargarlo así que, cuando se realiza una operación << , se _points + ” ” + _name . Esto es lo que traté de hacer: ostream & Score::operator<< (ostream & […]

¿Pueden las macros estar sobrecargadas por el número de argumentos?

¿Cómo funciona esto ? ¿Cómo se puede implementar una macro variadica C99 / C ++ 11 para expandirse a diferentes cosas sobre la única base de cuántos argumentos se le otorgan?

C ++ problema con la sobrecarga de funciones en una clase heredada

Posiblemente sea una pregunta novato, lo siento. Me enfrenté a un problema raro recientemente cuando trataba de meterme con algunas cosas de alto nivel en C ++, sobrecarga de funciones y herencia. Mostraré un ejemplo simple, solo para demostrar el problema; Hay dos clases, classA y classB , como a continuación; class classA{ public: void […]

Resolución de sobrecarga entre objeto, referencia de valor real, referencia de referencia

Dadas las tres funciones, esta llamada es ambigua. int f( int ); int f( int && ); int f( int const & ); int q = f( 3 ); La eliminación de f( int ) hace que tanto Clang como GCC prefieran la referencia rvalue sobre la referencia lvalue. Pero en su lugar, eliminar cualquiera […]

¿Por qué el comstackdor Scala no permite métodos sobrecargados con argumentos predeterminados?

Si bien puede haber casos válidos donde tales sobrecargas de métodos podrían volverse ambiguas, ¿por qué el comstackdor desautoriza el código que no es ambiguo ni en tiempo de comstackción ni en tiempo de ejecución? Ejemplo: // This fails: def foo(a: String)(b: Int = 42) = a + b def foo(a: Int) (b: Int = […]

cómo sobrecargar un operador de asignación en swift

Me gustaría sobrescribir el operador ‘=’ para un CGFloat como el siguiente bash: func = (inout left: CGFloat, right: Float) { left=CGFloat(right) } Entonces podría hacer lo siguiente: var A:CGFloat=1 var B:Float=2 A=B Se puede hacer esto ? Obtengo el error Explicitly discard the result of the closure by assigning to ‘_’