C++ :: Named Parameter Idiom?
Sep 8, 2013What is the "Named Parameter Idiom" in c++?
View 3 RepliesWhat is the "Named Parameter Idiom" in c++?
View 3 Replies1. How can I save a text file using a parameter which the user entered?
For example, the user enters the word "Johnny". The program will create a new text file "johnny.txt"
2. How do I search the directory for a text file after the user entered a keyword?
For example, the user enters the word "johnny". The program will search the directory and recover the text document "johnny.txt".
My errors are at the end of the program in two function calls within the definition of the InsertByValue function. g++ does not seem to recognize NumArray as a valid parameter.
#include <iostream>
#include <assert.h>
using namespace std;
const int CAPACITY = 20;
/* Displays the content of an int array, both the array and the size of array will be passed as parameters to the function
@param array: gives the array to be displayed
@param array_size: gives the number of elements in the array */
void DisplayArray (int array[], int array_size);
[Code] ....
I am developing new project in Qt with existing MFC project . SO in MFC I have a function which uses SYSTEMTime and return CString.
example
CString getTimestampString( void )
{
SYSTEMTIME systemTime;
CString datestr;
[Code]....
PS -> I cant able to make any changes in lib_know as this library is being used by many other projects..
I am trying to implement some kind of named class. It would look something like this:
class MyClass {
virtual std::string getName() = 0;
};
And now (what doesn't pass the compilation)
template <std::string NAME> class MyNamedClass {
std::string getName() { return NAME;}
};
And so every time I would like to have a class with a name, I could just do the following:
FinalClass : public MyNamedClass<"FinalClass">{};
The idea is not to have to always reimplement getName(), and just do it concisely in the declaration.
I've go this code that I need to use a Named Constant for the price of a t-shirt.
I've already done the code from a previous lab for college and I'm not sure how to proceed.
Here is the code:
int main()
{
int tno, price=12,cost;
float discount;
[Code].....
not asking to have this done for me just a hint at where to put the Named Constant
I understand why you cant define them but why cant you name them. Or is it that you must always define them in order to name them?
Why do I have to always use a pointer???
Or is it that dynamically allocated variables on allocate space for a type to be stored and not really the variable itself so you must use a pointer???
I keep getting an error saying ui.h:30: error: 'class BTree<Word>' has no member named 'prntInOrder'
I have no line 30 in my ui.h but if i count the lines from the .cpp as if they were attached to the .h i find the call to the BTree printInOrder()
here is my ui.h
Code:
#pragma once
#include "btree.h"
#include <fstream>
#include <iostream>
using namespace std;
[Code].....
As you can see the printInOrder() function is there so would it not see it?
Error:
Code:
ui.h: In member function 'void UI::go(std::string)':
ui.h:30: error: 'class BTree<Word>' has no member named 'printInOrder'
Was missing the '.s'
I'm getting this error in the 'my_free' function here "bp->s.size += p->s.ptr->s.size;" and "p->s.size += bp->s.size;" here. This doesn't make sense to me because it seems to be the correct way to access the union, and In the "my_malloc" function I use a similar call "p->s.size = nunits;" and that works fine.
// gcc -o malloctest -Wall -g -ldl main.c
// ./malloctest
#include <stdbool.h>
[Code].....
How to open a file which its name is unicode letters ? usually :
Code:
basic_ifstream<wchar_t> src("source.txt");
Work well to read file with unicode content not filename, so that example doesn't work :
Code:
basic_ifstream<wchar_t> src(L"source.txt");
Also, I have seen some alternatives for using open function but it doesn't work as well.
Code:
basic_ifstream<wchar_t> src;
src.open(L"source.txt");
I use g++ compiler.
I am trying to test out stoi() function found in the link below.
[URL] ....
but I got the error "No Member named stoi in namespace std." ...
Im writing a scientific software where I like to sent a 2D array (5x4) over a named pipe from a server to a client. When im sending a static array (i.e., double res[5][4];), all goes fine and it works perfect, but when I allocate a dynamic array, it provides some nonsense numbers at the client side. I feel it might be caused because I point to a memory that cannot be shared through a pipe. Am I right and how can I pass the dynamic allocated array itself over the pipe.
//Server program
// Create a pipe to send/receive data
HANDLE pipe = CreateNamedPipe(
"\.pipemy_pipe", // name of the pipe
PIPE_ACCESS_DUPLEX, // 2-way pipe -- send and read
PIPE_TYPE_BYTE, // send data as a byte stream
1, // only allow 1 instance of this pipe
0, // no outbound buffer
[Code] .....
// this program gives random number output
#include <iostream>
#include <cstdlib>// contains function protype for rand
#include <iomanip>// for setw
using namespace std;
[code]....
what is the effect on output of program of different numbers input to the int data type named seed*/
I am trying to create a loop to call in the entries from the text file named Set. The entries of Set.txtare :
1 2 3
2 4 5
and so on .. (64 such combinations)[/CODE]
It basically means the first combination for testing is 1 2 3 and next has to be 2 4 5 and so i have 64 such entries defined in set
My test files are located in D://data// and are named tst_data1 to tst_data64.
I created a loop for test set but its incorrect
Code:
// loop for test samples
char basefilename[] = "D://data//";
char , testFilen[160], numiChar[10];
for (int i=1; i<=64; i++) {
strcpy(basefilenme, "D://data//");
strcat(testfilename, Set[]);
[Code] .....
How can i call the Set .txt and how to define it.
I'm trying to write to a named pipe created by a service, as we all know the session 0 isolation implemented in vista and forward makes this task a bit complicated.
well at this point i managed to make almost all to work but my real problem comes when i try to write on the named pipe from my GUI application with no administrator rights
If i run the GUI application with admin rights it works 100% but, I don't need that application to require the user admin rights and for security reasons i rather to leave it without admin...
so i started my research and i found that there is a way to achieve this by calling CreateNamedPipe() with a low integrity security attributes...
well how to implement but i finally made it, the problem is that it gets worse than passing null security attributes, it works with admin rights with NULL security attributes, but when i pass the low integrity security attributes it gives "access denied" even when using admin rights, so i guess im passing the wrong security attributes but how to manually create the security descriptor string.
This is the code:
Service (session0) SERVER
Code:
DWORD WINAPI PipeThreadRSVS(void* pParameter){
LPTSTR _PIPE_NAME = "\.pipeRSVHPipeIn";
bool Break=false;
char Received_Buffer[BlockSize+16];
DWORD BytesRead = 0;
[Code] ....
I have a class as below:
// RemoteControlMonitor.H
typedef void (*keyaction)(unsigned int key);
class RemoteControlMonitor {
private:
keyaction rph;
keyaction rrh;
[Code] .....
But I got compile error as below:
RemoteControlMonitor.H:58: invalid type `void *' for default argument to `void (*)(unsigned int)'
rcx1.C: In function `void __static_initialization_and_destruction_0(int, int)':
rcx1.C:54: ANSI C++ forbids implicit conversion from `void *' in default argument
What can I do?
Code:
#include <stdio.h>
void ASCII_to_EBCDIC( size_t, unsigned char *);
void EBCDIC_to_ASCII( size_t, unsigned char *);
void to_ASCII(unsigned char *);
void to_EBCDIC(unsigned char *);
/* conversion tables */
static unsigned char
[Code] ....
The above snippet is for a buffer/string, where as i want to pass file name as a parameter and want function to process the file line by line?
How I can delete a parameter in a function .
int *buildTrail(int antIndex, int start, double *pheromones) {
int *trail = new int[tabu];
bool *visited = new bool[tabu];
trail[0] = start;
visited[start] = true;
[Code] ....
If I comment all lines includes visited word , no exception occurs , Otherwise , exception throws.
Simply put , How can i delete visited parameter as long as its role has been finished?
.
.
.
delete visited ;
return trail;
Unless I'm missing something, it's now possible(ish)? A little concept is below, very rough around the edges. Still though, if this is valid by standard C++, why can't we have built-in support for float / double template parameters?
#include <iostream>
#include <tuple>
template<int Numerator, int Denominator>
struct Float {
constexpr static float value()
[Code] ....
I have run into a problem which is mostly just an annoyance. I need to know if i can have pass a derived class to a function which has the base class as its parameter. For example i have been creating a program but i have a function which needs to work for multiple classes all derived from the BaseObject class
Code :
class folder : public BaseObject
{}
class BaseObject
{void function(BaseObject B)}
how would i get the following to work:
function(folder)
#include <cstdlib>
#include <iostream>
struct tax_node {
char form; // tax form letter
int version; // tax form number
[Code] ....
I cannot seem to get why function print_contents will not work. The couts at the end of the program is just to test that it printed correctly. But, if I need it to print the contents such when print_contents(ptr2) is called. I think it should be tax_ptr in the parameter list but I am not quite sure.
I want to have a function that has a pointer to an int/double/string so I thought I'd use a void pointer like so:
int someFnc(int a, int b, const void *key){
// take care of converting key into appropriate type in here
}
And when I want to use this function I'd like to be able to do something like this:
main{
...
int myKey;
someFnc(1,2,myKey);
]
But I get a compiler error telling me:
invalid conversion from 'int' to 'const void' -[fpermissive]
Do I need to convert myKey into a void pointer before passing it as an argument?
Why does passing myKey like this work?
someFnc(1,2,&myKey);
In my raytracer-project I have the following function:
bool hitObjects(Ray &ray, std::vector<Object *> &objects, Vector3& normal, Material *mat) {
double tmin = K_HUGE_VALUE;
double t;
[Code]....
When I try to run this, I only get the message "Material pointer is null". So, somehow the pointer is null after the hitObjects-function is called, even though it isn't inside that function.
gcc v.8.3 -std=gnu++11
[URL]
I'm trying to pass a function as a parameter and failing. It seems simple, until I get the error messages.
Here is the code:
class MinimalSolver {
typedef double (*func)(double sum, double char);
void driver();
[Code]....
I want to create events and then, functions which are subscribed to the event can access information about the event. For example, in Class 2 below, I want it to be able to access things such as touch.position, etc. of class 1.
Class 1:
public delegate void TouchEventHandler (EventArgs e);
public event TouchEventHandler TouchBegan;
public Vector2 touchPosition;
void Update () {
if (Input.touchCount > 0) {
[Code] ...
Class 2:
void OnTouchBegan (EventArgs e) {
Debug.Log ("Ran");
}