Contar el número de argumentos en una macro variádica

Tengo una macro que, partiendo de una serie de identificadores, me genera una clase con una enum y un std::bitset< > del tamaño necesario para acomodar 1 bit por cada posible valor de la enum:

#include <bitset> #include <iostream>  template< typename... ARGS > constexpr size_t CountVariadicNumber( ARGS... args ) { return sizeof...( args ); }  #define DECLARE_BITMASK( IDENT, ... ) \   class IDENT { \   public: \     enum { __VA_ARGS__ }; \     std::bitset< CountVariadicNumber( __VA_ARGS__ ) > _bitsValues; \   public: \     IDENT( ) = default; \     IDENT( const IDENT & ) = default; \   };  DECLARE_BITMASK( Prueba, ALL, SINGLE, SOME )  int main( ) {   Prueba p;    std::cout << "Num: " << p._bitsValues.size( ) << '\n';    return 0; } 

Funciona bien, pero no me gusta la necesidad de una función plantilla CountVariadicNumbers( ) externa a la clase. Polucionar el espacio de nombres para algo de uso exclusivo de la clase … no me parece correcto.

He intentado colocarla dentro de la clase:

#define DECLARE_BITMASK( IDENT, ... ) \   class IDENT { \   public: \     enum { __VA_ARGS__ }; \   private: \     template< int... VALS > static constexpr size_t CountVariadicNumbers( VALS... vals ) { return sizeof...( vals ); } \     std::bitset< CountVariadicNumbers< __VA_ARGS__ > _bitsValues; \   public: \     IDENT( ) = default; \     IDENT( const IDENT & ) = default; \   }; 

Pero no le hizo mucha gracia al compilador:

error: VALS is not a type:
template< int... VALS > static constexpr size_t CountVariadicNumbers( VALS... vals ) { return sizeof...( vals ); } \
error: expansion pattern int contains no argument packs
template< int... VALS > static constexpr size_t CountVariadicNumbers( VALS... vals ) { return sizeof...( vals ); } \

¿ Como puedo contar el número de argumentos que recibo en una macro variádica y utilizarlo en mi clase ?

Que argumentos debe tener la funcion que maneja transaction en laravel 5.8

espero me puedan ayudar, no se como usar la transacción, lo estoy haciendo desde el registerControler que te genera Auth.

La transacción funciona cuando hay un error, como por ejemplo matricula o correo repetido, y la información del formulario nunca llega a la base de datos, el problema es cuando la información si esta toda correcta, me general el siguiente error.

“Cannot use object of type Illuminate\Database\MySqlConnection as array”

Entonces aquí mi problema es que no estoy pasando correctamente los datos, CREO…

Espero me puedan ayudar, gracias.

protected function create(array $  data) {     DB::transaction(function ($  data) {          return usuarios::create([             'matricula' => $  data['matricula'],             'nombres' => $  data['nombres'],             'email' => $  data['email'],             'apellPat' => $  data['apellPat'],             'apellMat' => $  data['apellMat'],             'facultad' => $  data['facultad'],             'areaCono' => RegisterController::buscarArea($  data['facultad']),             'genero' => $  data['genero'],             'tipoUsuario' => 2,             'password' => Hash::make($  data['password']),         ]);     }); } 

Como criar uma função no Arduino com argumentos opcionais

Gostaria de criar uma função que recebe dois argumentos: StatusPino(nPino,Valor) Porém gostaria de, quando enviar somente o número do pino, a função ler o valor lógico do pino e quando eu informar o número do pino COM UM VALOR, a função gravar o valor atual no pino. Ex: If StatusPino(Sensor1); // Se o Sensor1 tiver valor HIGH, retorna true // Sensor Ativado Else // Sensor Desativado

ou

StatusPino(Sensor1,LOW); // Seta o Sensor1 para LOW e retorna LOW

Não encontrei nenhuma função parecida.

Sim, eu poderia fazer 2 funções LerStatusPino() e GravarStatusPino(), porém estou querendo evitar justamente isso.

Obrigado.

Como soluciono el error de C/C++ ninguna instancia del constructor coincide con la lista de argumentos

No se cual sea por que me marca este error: ninguna instancia del constructor “Serial::Serial” coincide con la lista de argumentos. Los tipos de argumento son: (const char [5])

#include "pch.h" #include <iostream> #include <Windows.h> #include "SerialClass.h"  using namespace std;  int main() {     Serial* Arduino = new Serial("COM6"); //El error se marca en esta linea de codigo      while (Arduino->IsConnected()) {         char palabra[] = "";         scanf("%d", &palabra);         if (palabra != NULL) {             cout << palabra << endl;             Arduino->WriteData(palabra, sizeof(palabra) - 1);         }     } } 

Recuperar argumentos de um array javascript

Eu tenho um pagina que me retorna os dados da seguinte forma:

“teste,123mudar,IMPEXPROS,sarmento:172.20.1.1,172.20.1.2,172.20.1.3,172.20.1.4,172.20.1.5,172.20.1.6,255.255.255.0,192.168.1.1,192.168.1.140:”

estou fazendo uma outra pagina para manipular estes dados. Primeiramente eu recebo os dados com esta função:

const getDados = async () => {   let url = 'http://' + host + '/dados';   xhttp.onreadystatechange = () => {       if (xhttp.readyState == 4 && xhttp.status == 200) {           var data = xhttp.responseText;           prepareListDados(data);       }   }   await xhttp.open("GET", url, true);   await xhttp.send(); } 

Apos pegar os dados eu separo eles desta forma:

const prepareListDados = (dados) => {   let arrParams = dados.split(':');   let nomes = arrParams[0].split(',');   let ips = arrParams[1].split(',');   let arrDados = [];    arrDados.push({     ssidAP: nomes[0],     senhaAP: nomes[1],     ssidSTA: nomes[2],     senhaSTA: nomes[3],     ipLocal: ips[0],     ipmodulo1: ips[1],     ipmodulo2: ips[2],     ipmodulo3: ips[3],     ipmodulo4: ips[4],     ipmodulo5: ips[5],     mascaraAP: ips[6],     gatewaySTA: ips[7],     localSTA: ips[8],     mascaraSTA: ips[5],     servidorSTA: ips[5],   });   texto1(arrDados);   texto2(arrDados); } 

após isso eu envio o array para um funcao e queria manipular os valores desse array arrDados. Coloquei desta forma mas nao esta funcionando:

const texto1 = (arrDados) =>{   let a = setSSIDAP();   let b = setSSIDSTA();    if (a == "null" && b == "null"){     return "null";   }   if(b == "null" && a != "null"){     return a + ","+ arrDados.ssidSTA + "," + arrDados.senhaSTA;   }   if(a == "null" && b != "null"){     return arrDados.ssidAP + "," + arrDados.senhaAP + "," + b;   }   if (a != "null" && b != "null"){     return a + b;   } } 

Remetendo ao seguinte error:

Unhandled Promise Rejection: TypeError: undefined is not an object (evaluating ‘arrDados.ssidSTA’)

Nao sei se estou separando certo os valores, pois podem notar que estão separados por “,” e separados os blocos por “:”

¿ Que me muestra error de argumentos Visual Studio?

Hola tengo el archivo App.js que se creó al hacer una aplicación por defecto en React Native react-native init aplicación . El caso es que Visual Studio me muestra error de argumentos.

Este es el archivo:

/**  * Sample React Native App  * https://github.com/facebook/react-native  *  * @format  * @flow  */  import React, {Component} from 'react'; import {Platform, StyleSheet, Text, View} from 'react-native';  const instructions = Platform.select({   ios: 'Press Cmd+R to reload,\n' + 'Cmd+D or shake for dev menu',   android:     'Double tap R on your keyboard to reload,\n' +     'Shake or press menu button for dev menu', });  type Props = {}; export default class App extends Component<Props> {   render() {     return (       <View style={styles.container}>         <Text style={styles.welcome}>Welcome to React Native!</Text>         <Text style={styles.instructions}>To get started, edit App.js</Text>         <Text style={styles.instructions}>{instructions}</Text>       </View>     );   } }  const styles = StyleSheet.create({   container: {     flex: 1,     justifyContent: 'center',     alignItems: 'center',     backgroundColor: '#F5FCFF',   },   welcome: {     fontSize: 20,     textAlign: 'center',     margin: 10,   },   instructions: {     textAlign: 'center',     color: '#333333',     marginBottom: 5,   }, });

Me muestra dos errores en la siguiente sección, en el Props

type Props/* aqui muestra error*/ = {}; export default class App extends Component<Props> /* aquí tambien muestra error*/{   render() {     return (       <View style={styles.container}>         <Text style={styles.welcome}>Welcome to React Native!</Text>         <Text style={styles.instructions}>To get started, edit App.js</Text>         <Text style={styles.instructions}>{instructions}</Text>       </View>     );   } }

Y los errores son los siguientes:

“type aliases” solo se puede usar en un archivo .ts. [19, 6]

“type arguments” solo se puede usar en un archivo .ts. {20, 44}

Mi pregunta es, ¿ Por que se muestran estos errores?

¿ Debo instalar extensiones en Visual Studio para trabajar mejor en React Native?

Los archivos .ts van relacionados con el audio y video, por lo que he podido leer. ¿ Pueden ayudarme con esto ?

Gracias